)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a14b3ffc4bdbf41b0edb580261c3c8bb2567b0fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b02f8594_caa2b8e9","updated":"2022-12-19 14:49:46.000000000","message":"recheck","commit_id":"973d3b6ea671b15583925eaa93ea988d16734499"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"24b9e759e182b870f2061d8d00df34fa626d5b62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"98c64b8d_7f691542","updated":"2023-01-05 08:30:03.000000000","message":"recheck pipeline fixed","commit_id":"973d3b6ea671b15583925eaa93ea988d16734499"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"7201cc7f470b99d866710eee133a9061d6557728","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0040f373_82c76eb3","updated":"2023-01-06 09:06:48.000000000","message":"recheck ssh port closed for instance","commit_id":"973d3b6ea671b15583925eaa93ea988d16734499"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"50cb06e8dc60045c86635d30c963eb4674b4aa10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2be59583_2d2740ec","updated":"2022-12-07 11:34:26.000000000","message":"recheck zuul retries","commit_id":"973d3b6ea671b15583925eaa93ea988d16734499"}],"ironic/common/swift.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":221,"context_line":"            raise exception.SwiftOperationError(operation\u003doperation, error\u003de)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def store_introspection_data(node_id, inventory_data, plugin_data):"},{"line_number":225,"context_line":"    \"\"\"Uploads introspection data to Swift."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    :param data: data to store in Swift"}],"source_content_type":"text/x-python","patch_set":4,"id":"2d3c8ab8_bbe795d8","line":224,"updated":"2022-12-06 13:34:53.000000000","message":"nit: I\u0027d be inclined to place this function in inspector.py since it\u0027s more inspector-specific than swift-specific in my mind.","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            raise exception.SwiftOperationError(operation\u003doperation, error\u003de)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def store_introspection_data(node_id, inventory_data, plugin_data):"},{"line_number":225,"context_line":"    \"\"\"Uploads introspection data to Swift."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    :param data: data to store in Swift"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ce62cb3_a5c254fa","line":224,"in_reply_to":"2d3c8ab8_bbe795d8","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"}],"ironic/conf/inspector.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":39,"context_line":"                       \u0027managed by ironic. Set this to True if your \u0027"},{"line_number":40,"context_line":"                       \u0027installation of ironic-inspector does not have a \u0027"},{"line_number":41,"context_line":"                       \u0027separate PXE boot environment.\u0027)),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027store_inventory_data\u0027, default\u003d\u0027none\u0027,"},{"line_number":43,"context_line":"               help\u003d_(\u0027The storage backend for storing introspection data. \u0027"},{"line_number":44,"context_line":"                      \u0027Possible values are: \\\u0027none\\\u0027, \\\u0027database\\\u0027 and \u0027"},{"line_number":45,"context_line":"                      \u0027\\\u0027swift\\\u0027. If set to \\\u0027none\\\u0027, introspection data will \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"6e68df8f_a8cdbd9f","line":42,"updated":"2022-12-06 13:34:53.000000000","message":"1) I\u0027d call it inventory_data_backend for clarity (something starting with a verb feels like it should be yes/no).\n\n2) While none matches the default in inspector, I\u0027m somewhat inclined to use \u0027database\u0027, so that we don\u0027t end up with API that is not functional by default.","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                       \u0027managed by ironic. Set this to True if your \u0027"},{"line_number":40,"context_line":"                       \u0027installation of ironic-inspector does not have a \u0027"},{"line_number":41,"context_line":"                       \u0027separate PXE boot environment.\u0027)),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027store_inventory_data\u0027, default\u003d\u0027none\u0027,"},{"line_number":43,"context_line":"               help\u003d_(\u0027The storage backend for storing introspection data. \u0027"},{"line_number":44,"context_line":"                      \u0027Possible values are: \\\u0027none\\\u0027, \\\u0027database\\\u0027 and \u0027"},{"line_number":45,"context_line":"                      \u0027\\\u0027swift\\\u0027. If set to \\\u0027none\\\u0027, introspection data will \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"720f9b7b_0a7ced7e","line":42,"in_reply_to":"6e68df8f_a8cdbd9f","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":40,"context_line":"                       \u0027installation of ironic-inspector does not have a \u0027"},{"line_number":41,"context_line":"                       \u0027separate PXE boot environment.\u0027)),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027store_inventory_data\u0027, default\u003d\u0027none\u0027,"},{"line_number":43,"context_line":"               help\u003d_(\u0027The storage backend for storing introspection data. \u0027"},{"line_number":44,"context_line":"                      \u0027Possible values are: \\\u0027none\\\u0027, \\\u0027database\\\u0027 and \u0027"},{"line_number":45,"context_line":"                      \u0027\\\u0027swift\\\u0027. If set to \\\u0027none\\\u0027, introspection data will \u0027"},{"line_number":46,"context_line":"                      \u0027not be stored.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"6fe75cae_e63a236e","line":43,"updated":"2022-12-06 13:34:53.000000000","message":"Possible values should be provided via choices argument (find examples in this directory)","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                       \u0027installation of ironic-inspector does not have a \u0027"},{"line_number":41,"context_line":"                       \u0027separate PXE boot environment.\u0027)),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027store_inventory_data\u0027, default\u003d\u0027none\u0027,"},{"line_number":43,"context_line":"               help\u003d_(\u0027The storage backend for storing introspection data. \u0027"},{"line_number":44,"context_line":"                      \u0027Possible values are: \\\u0027none\\\u0027, \\\u0027database\\\u0027 and \u0027"},{"line_number":45,"context_line":"                      \u0027\\\u0027swift\\\u0027. If set to \\\u0027none\\\u0027, introspection data will \u0027"},{"line_number":46,"context_line":"                      \u0027not be stored.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ba616d1_23cbbdb4","line":43,"in_reply_to":"6fe75cae_e63a236e","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"}],"ironic/drivers/modules/inspector.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":368,"context_line":"        _clean_up(task)"},{"line_number":369,"context_line":"        # If store_data \u003d\u003d \u0027none\u0027, do not store the data"},{"line_number":370,"context_line":"        store_data \u003d CONF.inspector.store_inventory_data"},{"line_number":371,"context_line":"        if store_data \u003d\u003d \u0027none\u0027:"},{"line_number":372,"context_line":"            LOG.debug(\u0027Introspection data storage is disabled, the data will \u0027"},{"line_number":373,"context_line":"                      \u0027not be saved for node %(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":374,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"a6f0160a_49edab1b","line":371,"updated":"2022-12-06 13:34:53.000000000","message":"nit: Eventually, I\u0027d prefer a plugin system like in inspector. This can wait.","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        _clean_up(task)"},{"line_number":369,"context_line":"        # If store_data \u003d\u003d \u0027none\u0027, do not store the data"},{"line_number":370,"context_line":"        store_data \u003d CONF.inspector.store_inventory_data"},{"line_number":371,"context_line":"        if store_data \u003d\u003d \u0027none\u0027:"},{"line_number":372,"context_line":"            LOG.debug(\u0027Introspection data storage is disabled, the data will \u0027"},{"line_number":373,"context_line":"                      \u0027not be saved for node %(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":374,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"fc11415e_7782c2af","line":371,"in_reply_to":"a6f0160a_49edab1b","updated":"2022-12-06 15:21:09.000000000","message":"Ack","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":382,"context_line":"                inventory_data\u003dinventory_data,"},{"line_number":383,"context_line":"                plugin_data\u003dplugin_data).create()"},{"line_number":384,"context_line":"            LOG.info(\u0027Introspection data was stored in database for node \u0027"},{"line_number":385,"context_line":"                     \u0027%(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":386,"context_line":"        if store_data \u003d\u003d \u0027swift\u0027:"},{"line_number":387,"context_line":"            swift_object_name \u003d swift.store_introspection_data("},{"line_number":388,"context_line":"                node_id\u003dnode.id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"493fc1c6_381007b3","line":385,"updated":"2022-12-06 13:34:53.000000000","message":"Please log node.uuid, node.id is not visible for users (it\u0027s an internal number)","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                inventory_data\u003dinventory_data,"},{"line_number":383,"context_line":"                plugin_data\u003dplugin_data).create()"},{"line_number":384,"context_line":"            LOG.info(\u0027Introspection data was stored in database for node \u0027"},{"line_number":385,"context_line":"                     \u0027%(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":386,"context_line":"        if store_data \u003d\u003d \u0027swift\u0027:"},{"line_number":387,"context_line":"            swift_object_name \u003d swift.store_introspection_data("},{"line_number":388,"context_line":"                node_id\u003dnode.id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0569aaea_aabe3a8a","line":385,"in_reply_to":"493fc1c6_381007b3","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":385,"context_line":"                     \u0027%(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":386,"context_line":"        if store_data \u003d\u003d \u0027swift\u0027:"},{"line_number":387,"context_line":"            swift_object_name \u003d swift.store_introspection_data("},{"line_number":388,"context_line":"                node_id\u003dnode.id,"},{"line_number":389,"context_line":"                inventory_data\u003dinventory_data,"},{"line_number":390,"context_line":"                plugin_data\u003dplugin_data)"},{"line_number":391,"context_line":"            LOG.info(\u0027Introspection data was stored for node %(node)s in Swift\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"d5b094f4_b537f2d1","line":388,"updated":"2022-12-06 13:34:53.000000000","message":"node.uuid for similar reasons","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":385,"context_line":"                     \u0027%(node)s\u0027, {\u0027node\u0027: node.id})"},{"line_number":386,"context_line":"        if store_data \u003d\u003d \u0027swift\u0027:"},{"line_number":387,"context_line":"            swift_object_name \u003d swift.store_introspection_data("},{"line_number":388,"context_line":"                node_id\u003dnode.id,"},{"line_number":389,"context_line":"                inventory_data\u003dinventory_data,"},{"line_number":390,"context_line":"                plugin_data\u003dplugin_data)"},{"line_number":391,"context_line":"            LOG.info(\u0027Introspection data was stored for node %(node)s in Swift\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ebbfb763_29e9ae92","line":388,"in_reply_to":"d5b094f4_b537f2d1","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":390,"context_line":"                plugin_data\u003dplugin_data)"},{"line_number":391,"context_line":"            LOG.info(\u0027Introspection data was stored for node %(node)s in Swift\u0027"},{"line_number":392,"context_line":"                     \u0027 object %(obj_name)s-inventory and %(obj_name)s-plugin\u0027,"},{"line_number":393,"context_line":"                     {\u0027node\u0027: node.id, \u0027obj_name\u0027: swift_object_name})"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"def _clean_up(task):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ae546ea7_3d290bcd","line":393,"updated":"2022-12-06 13:34:53.000000000","message":"Same re node.uuid.","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                plugin_data\u003dplugin_data)"},{"line_number":391,"context_line":"            LOG.info(\u0027Introspection data was stored for node %(node)s in Swift\u0027"},{"line_number":392,"context_line":"                     \u0027 object %(obj_name)s-inventory and %(obj_name)s-plugin\u0027,"},{"line_number":393,"context_line":"                     {\u0027node\u0027: node.id, \u0027obj_name\u0027: swift_object_name})"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"def _clean_up(task):"}],"source_content_type":"text/x-python","patch_set":4,"id":"16021440_bdbaa770","line":393,"in_reply_to":"ae546ea7_3d290bcd","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"}],"ironic/tests/unit/drivers/modules/test_inspector.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"82c721f244788edf5bff80ab6c5bccb06963c9f6","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                                          error\u003dNone,"},{"line_number":587,"context_line":"                                          spec\u003d[\u0027is_finished\u0027, \u0027error\u0027])"},{"line_number":588,"context_line":"        mock_get_data \u003d mock_client.return_value.get_introspection_data"},{"line_number":589,"context_line":"        mock_inventory_data \u003d {\"cpu\": \"amd\"}"},{"line_number":590,"context_line":"        mock_plugin_data \u003d {\"disks\": [{\"name\": \"/dev/vda\"}]}"},{"line_number":591,"context_line":"        mock_get_data.return_value \u003d {"},{"line_number":592,"context_line":"            \"inventory\": mock_inventory_data, **mock_plugin_data}"}],"source_content_type":"text/x-python","patch_set":4,"id":"b52b349d_fe775246","line":589,"updated":"2022-12-06 13:34:53.000000000","message":"nit: let\u0027s not call mock_something variables that are not Mock. use fake_ or omit the prefix.","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"9b6809ff93c370eaee778973d711cea8b6e66a7a","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                                          error\u003dNone,"},{"line_number":587,"context_line":"                                          spec\u003d[\u0027is_finished\u0027, \u0027error\u0027])"},{"line_number":588,"context_line":"        mock_get_data \u003d mock_client.return_value.get_introspection_data"},{"line_number":589,"context_line":"        mock_inventory_data \u003d {\"cpu\": \"amd\"}"},{"line_number":590,"context_line":"        mock_plugin_data \u003d {\"disks\": [{\"name\": \"/dev/vda\"}]}"},{"line_number":591,"context_line":"        mock_get_data.return_value \u003d {"},{"line_number":592,"context_line":"            \"inventory\": mock_inventory_data, **mock_plugin_data}"}],"source_content_type":"text/x-python","patch_set":4,"id":"8e772424_093b4f53","line":589,"in_reply_to":"b52b349d_fe775246","updated":"2022-12-06 15:21:09.000000000","message":"Done","commit_id":"e20d927db34ab3aa9a0ff05a8a2f74aa829a553c"}]}
