)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8811c880255e8610c4a5ab6935e677d4295da3bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bce688e3_d5de683f","updated":"2021-12-07 18:16:15.000000000","message":"recheck let\u0027s hope it\u0027s transient","commit_id":"ff93c7799f472354745657c05075090779d310fb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fe284183eac276ea3dd30d5fcd197c5209d4bf3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"41ccc6cd_8b591175","updated":"2021-12-08 12:55:02.000000000","message":"recheck should be fixed now","commit_id":"ff93c7799f472354745657c05075090779d310fb"}],"api-ref/source/introspection-api-versions.inc":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a4ef0e469b463c71ea1542bec4902d5bbe2b8403","unresolved":true,"context_lines":[{"line_number":108,"context_line":"* **1.16** adds ``scope`` field to introspection rule."},{"line_number":109,"context_line":"* **1.17** adds ``GET /v1/introspection/\u003cnode\u003e/data/unprocessed``."},{"line_number":110,"context_line":"* **1.18** adds state selector ``GET /v1/introspection?state\u003d"},{"line_number":111,"context_line":"  [starting, waiting, processing, finished, error, reapplying, enrolling]``."}],"source_content_type":"text/x-c++src","patch_set":5,"id":"8a6b14d5_1c28d4d4","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":76},"updated":"2021-09-14 14:46:24.000000000","message":"Does this really need to be a list?  I guess I\u0027m okay with it, just seems like extra complexity.","commit_id":"9a222648456521f0e0783b32ffdfff885fa4f1af"}],"ironic_inspector/api_tools.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d838ffa2637fec4d2654ece35f5b420beeff88ab","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    value \u003d value.split(\u0027,\u0027)"},{"line_number":97,"context_line":"    invalid_states \u003d [state for state in value if state not in states]"},{"line_number":98,"context_line":"    assert not invalid_states, \\"},{"line_number":99,"context_line":"        _(\u0027State(s) \"%s\" are not valid\u0027) % \u0027,\u0027.join(invalid_states)"},{"line_number":100,"context_line":"    return value"}],"source_content_type":"text/x-python","patch_set":4,"id":"55df82e3_c9c9004a","line":99,"updated":"2021-09-08 10:29:57.000000000","message":"nit: \u0027, \u0027 (note the space after ,)","commit_id":"7106be836c38241e6ade97e2be9605721434b75e"}],"ironic_inspector/main.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d838ffa2637fec4d2654ece35f5b420beeff88ab","unresolved":false,"context_lines":[{"line_number":44,"context_line":"LOG \u003d utils.getProcessingLogger(__name__)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"MINIMUM_API_VERSION \u003d (1, 0)"},{"line_number":47,"context_line":"CURRENT_API_VERSION \u003d (1, 17)"},{"line_number":48,"context_line":"DEFAULT_API_VERSION \u003d CURRENT_API_VERSION"},{"line_number":49,"context_line":"_LOGGING_EXCLUDED_KEYS \u003d (\u0027logs\u0027,)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9b0ea02e_410c4379","line":47,"updated":"2021-09-08 10:29:57.000000000","message":"You need to increase this and update the documentation","commit_id":"7106be836c38241e6ade97e2be9605721434b75e"}],"ironic_inspector/node_cache.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a50b122b5ab108f0a6feee071e104a71022a6c7e","unresolved":true,"context_lines":[{"line_number":985,"context_line":"    :param ironic: optional ironic client instance"},{"line_number":986,"context_line":"    :param marker: pagination marker (an UUID or None)"},{"line_number":987,"context_line":"    :param limit: pagination limit; None for default CONF.api_max_limit"},{"line_number":988,"context_line":"    :param state: state filter"},{"line_number":989,"context_line":"    :returns: a list of NodeInfo instances."},{"line_number":990,"context_line":"    \"\"\""},{"line_number":991,"context_line":"    if marker is not None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"0808e438_6926bfd9","line":988,"range":{"start_line":988,"start_character":18,"end_line":988,"end_character":30},"updated":"2021-09-23 21:09:26.000000000","message":"I would expand this to make it more clear","commit_id":"fd4361beb3d6ab69164d69a66c8db61c8c9f8d7a"}],"ironic_inspector/test/unit/test_api_tools.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dc5867bc46ac8ef97e9f945aaf24e76486948426","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    @mock_test_field(return_value\u003d\u0027error\u0027)"},{"line_number":147,"context_line":"    def test_single_state(self, get_mock):"},{"line_number":148,"context_line":"        value \u003d api_tools.state_field()"},{"line_number":149,"context_line":"        self.assertEqual(get_mock.return_value.split(\u0027,\u0027), value)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @mock_test_field(return_value\u003d\u0027error,finished\u0027)"},{"line_number":152,"context_line":"    def test_multiple_state(self, get_mock):"}],"source_content_type":"text/x-python","patch_set":7,"id":"320fcf40_2fed65c0","line":149,"updated":"2021-12-07 12:16:47.000000000","message":"nit: I\u0027d rather use an explicit value than get it from the mock (so [\u0027error\u0027])","commit_id":"ff93c7799f472354745657c05075090779d310fb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dc5867bc46ac8ef97e9f945aaf24e76486948426","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    @mock_test_field(return_value\u003d\u0027error,finished\u0027)"},{"line_number":152,"context_line":"    def test_multiple_state(self, get_mock):"},{"line_number":153,"context_line":"        value \u003d api_tools.state_field()"},{"line_number":154,"context_line":"        self.assertEqual(get_mock.return_value.split(\u0027,\u0027), value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @mock_test_field(return_value\u003d\u0027error,invalid\u0027)"},{"line_number":157,"context_line":"    def test_invalid_state(self, get_mock):"}],"source_content_type":"text/x-python","patch_set":7,"id":"75ad38e9_5b41f014","line":154,"updated":"2021-12-07 12:16:47.000000000","message":"same","commit_id":"ff93c7799f472354745657c05075090779d310fb"}],"releasenotes/notes/add-list-introspection-state-selector-3bbb37dd08e35d09.yaml":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"1c55b3c740838be896b02d629aba548613d36f57","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    See `story 1625183"},{"line_number":6,"context_line":"    \u003chttps://storyboard.openstack.org/#!/story/1625183\u003e`_."},{"line_number":7,"context_line":"    * ``GET /v1/introspection?state\u003d[starting, waiting, processing,"},{"line_number":8,"context_line":"                                     finished, error, reapplying, enrolling]``"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"c1a36e25_6da51dc9","line":8,"updated":"2021-09-08 08:10:14.000000000","message":"Reno complains about the indentation in this line, you need to align with the *\n\nto check if the releasenote is in the right format you can run locally \ntox -e releasenotes","commit_id":"6e38f65c9f1b8838efd426827b47e956629aaf3e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d838ffa2637fec4d2654ece35f5b420beeff88ab","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for state in list introspection API."},{"line_number":5,"context_line":"    See `story 1625183"},{"line_number":6,"context_line":"    \u003chttps://storyboard.openstack.org/#!/story/1625183\u003e`_."},{"line_number":7,"context_line":"    * ``GET /v1/introspection?state\u003d[starting, waiting, processing,"},{"line_number":8,"context_line":"    finished, error, reapplying, enrolling]``"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"0775491e_f6870433","line":7,"updated":"2021-09-08 10:29:57.000000000","message":"This does not render correctly, in rst you need an empty line before a list: https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_432/807578/4/check/build-openstack-releasenotes/4324786/docs/unreleased.html#new-features","commit_id":"7106be836c38241e6ade97e2be9605721434b75e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a50b122b5ab108f0a6feee071e104a71022a6c7e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support for state in list introspection API."},{"line_number":5,"context_line":"    See `story 1625183"},{"line_number":6,"context_line":"    \u003chttps://storyboard.openstack.org/#!/story/1625183\u003e`_."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"43ec60be_2e01c6d6","line":4,"updated":"2021-09-23 21:09:26.000000000","message":"filter by state?","commit_id":"fd4361beb3d6ab69164d69a66c8db61c8c9f8d7a"}]}
