)]}'
{"ironic_inspector/node_cache.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6d6de050559f522efb71d14af6eab8c1620f38ab","unresolved":false,"context_lines":[{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    :param node_id: node UUID or name."},{"line_number":785,"context_line":"    :param ironic: optional ironic client instance"},{"line_number":786,"context_line":"    :param locked: if True, get a lock on node before fetching its data"},{"line_number":787,"context_line":"    :returns: structure NodeInfo."},{"line_number":788,"context_line":"    \"\"\""},{"line_number":789,"context_line":"    if uuidutils.is_uuid_like(node_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_00d3ee61","line":786,"updated":"2019-06-07 11:40:33.000000000","message":"Not needed","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"bde58c24561ed82dc77b57198f50004c6909464f","unresolved":false,"context_lines":[{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    :param node_id: node UUID or name."},{"line_number":785,"context_line":"    :param ironic: optional ironic client instance"},{"line_number":786,"context_line":"    :param locked: if True, get a lock on node before fetching its data"},{"line_number":787,"context_line":"    :returns: structure NodeInfo."},{"line_number":788,"context_line":"    \"\"\""},{"line_number":789,"context_line":"    if uuidutils.is_uuid_like(node_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_0078b78d","line":786,"in_reply_to":"9fb8cfa7_00d3ee61","updated":"2019-06-10 02:16:44.000000000","message":"Done","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6d6de050559f522efb71d14af6eab8c1620f38ab","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                          \u0027while introspection in \"%s\" state\u0027,"},{"line_number":910,"context_line":"                          node_info.state,"},{"line_number":911,"context_line":"                          node_info\u003dnode_info)"},{"line_number":912,"context_line":"            if node_info.acquire_lock(blocking\u003dFalse):"},{"line_number":913,"context_line":"                node_info.finished("},{"line_number":914,"context_line":"                    istate.Events.timeout, error\u003d\u0027Introspection timeout\u0027)"},{"line_number":915,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_20d63251","line":912,"updated":"2019-06-07 11:40:33.000000000","message":"I think all verifications should happen after acquiring a lock, otherwise we may have a race.","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"bde58c24561ed82dc77b57198f50004c6909464f","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                          \u0027while introspection in \"%s\" state\u0027,"},{"line_number":910,"context_line":"                          node_info.state,"},{"line_number":911,"context_line":"                          node_info\u003dnode_info)"},{"line_number":912,"context_line":"            if node_info.acquire_lock(blocking\u003dFalse):"},{"line_number":913,"context_line":"                node_info.finished("},{"line_number":914,"context_line":"                    istate.Events.timeout, error\u003d\u0027Introspection timeout\u0027)"},{"line_number":915,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_00be77d4","line":912,"in_reply_to":"9fb8cfa7_20d63251","updated":"2019-06-10 02:16:44.000000000","message":"Done","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6d6de050559f522efb71d14af6eab8c1620f38ab","unresolved":false,"context_lines":[{"line_number":911,"context_line":"                          node_info\u003dnode_info)"},{"line_number":912,"context_line":"            if node_info.acquire_lock(blocking\u003dFalse):"},{"line_number":913,"context_line":"                node_info.finished("},{"line_number":914,"context_line":"                    istate.Events.timeout, error\u003d\u0027Introspection timeout\u0027)"},{"line_number":915,"context_line":"            else:"},{"line_number":916,"context_line":"                locked_uuids.append(u)"},{"line_number":917,"context_line":"                LOG.warning(\u0027Failed to acquire lock when updating node state\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_c0ccf6bd","line":914,"updated":"2019-06-07 11:40:33.000000000","message":"nit: would be a bit more intuitive to add uuid to locked_uuids here and then just return locked_uuids","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"bde58c24561ed82dc77b57198f50004c6909464f","unresolved":false,"context_lines":[{"line_number":911,"context_line":"                          node_info\u003dnode_info)"},{"line_number":912,"context_line":"            if node_info.acquire_lock(blocking\u003dFalse):"},{"line_number":913,"context_line":"                node_info.finished("},{"line_number":914,"context_line":"                    istate.Events.timeout, error\u003d\u0027Introspection timeout\u0027)"},{"line_number":915,"context_line":"            else:"},{"line_number":916,"context_line":"                locked_uuids.append(u)"},{"line_number":917,"context_line":"                LOG.warning(\u0027Failed to acquire lock when updating node state\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_20c37b5f","line":914,"in_reply_to":"9fb8cfa7_c0ccf6bd","updated":"2019-06-10 02:16:44.000000000","message":"Done","commit_id":"3e1ee9dd7f06842ebe93282ac3c1212325d32651"}],"ironic_inspector/test/unit/test_node_cache.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e532744981b918eb3bdbc33c26c056d171428d77","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    @mock.patch.object(node_cache, \u0027_delete_node\u0027)"},{"line_number":108,"context_line":"    def test_delete_nodes_not_in_list(self, mock__delete_node,"},{"line_number":109,"context_line":"                                      mock__list_node_uuids,"},{"line_number":110,"context_line":"                                      mock__get_lock_ctx):"},{"line_number":111,"context_line":"        uuid2 \u003d uuidutils.generate_uuid()"},{"line_number":112,"context_line":"        uuids \u003d {self.uuid}"},{"line_number":113,"context_line":"        mock__list_node_uuids.return_value \u003d {self.uuid, uuid2}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_c904a417","line":110,"range":{"start_line":110,"start_character":38,"end_line":110,"end_character":56},"updated":"2019-06-14 14:51:41.000000000","message":"this should be changed to avoid confusion as we don\u0027t have _get_lock_ctx anymore","commit_id":"d57179411d3423cf2d359ff83023201d5dbddfb9"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e532744981b918eb3bdbc33c26c056d171428d77","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    @mock.patch.object(node_cache.NodeInfo, \u0027acquire_lock\u0027, autospec\u003dTrue)"},{"line_number":367,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":368,"context_line":"    def test_timeout(self, time_mock, lock_mock):"},{"line_number":369,"context_line":"        # Add a finished node to confirm we don\u0027t try to timeout it"},{"line_number":370,"context_line":"        time_mock.return_value \u003d self.started_at"},{"line_number":371,"context_line":"        session \u003d db.get_writer_session()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_4e22faba","line":368,"range":{"start_line":368,"start_character":38,"end_line":368,"end_character":47},"updated":"2019-06-14 14:51:41.000000000","message":"nit: acquire_lock_mock ?","commit_id":"d57179411d3423cf2d359ff83023201d5dbddfb9"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e532744981b918eb3bdbc33c26c056d171428d77","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    @mock.patch.object(node_cache.NodeInfo, \u0027acquire_lock\u0027, autospec\u003dTrue)"},{"line_number":419,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":420,"context_line":"    def test_timeout_lock_failed(self, time_mock, get_lock_mock):"},{"line_number":421,"context_line":"        time_mock.return_value \u003d self.started_at"},{"line_number":422,"context_line":"        CONF.set_override(\u0027timeout\u0027, 1)"},{"line_number":423,"context_line":"        get_lock_mock.return_value \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_0e288294","line":420,"range":{"start_line":420,"start_character":50,"end_line":420,"end_character":63},"updated":"2019-06-14 14:51:41.000000000","message":"nit: acquire_lock_mock ?","commit_id":"d57179411d3423cf2d359ff83023201d5dbddfb9"}]}
