)]}'
{"ironic/conductor/task_manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f506f4c354482959a2248af08fb207c94071a98f","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                        have any fallback or built-in retry mechanism, such as"},{"line_number":191,"context_line":"                        finalizing a state transition during deploy/clean."},{"line_number":192,"context_line":"                        The default retry behavior is to retry a configured"},{"line_number":193,"context_line":"                        number of times and then give up. Default: False."},{"line_number":194,"context_line":"        :param load_driver: whether to load the ``driver`` object. Set this to"},{"line_number":195,"context_line":"                            False if loading the driver is undesired or"},{"line_number":196,"context_line":"                            impossible."}],"source_content_type":"text/x-python","patch_set":4,"id":"e086aa08_bb5c3bf6","line":193,"updated":"2020-11-24 09:58:29.000000000","message":"maybe we could reuse retry\u003d\u0027always\u0027? just an idea.","commit_id":"98ae6c38225679030e534c3f916812e910ef5ae0"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"4085413772454c808a3d5d940e169438cdac6981","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                        have any fallback or built-in retry mechanism, such as"},{"line_number":191,"context_line":"                        finalizing a state transition during deploy/clean."},{"line_number":192,"context_line":"                        The default retry behavior is to retry a configured"},{"line_number":193,"context_line":"                        number of times and then give up. Default: False."},{"line_number":194,"context_line":"        :param load_driver: whether to load the ``driver`` object. Set this to"},{"line_number":195,"context_line":"                            False if loading the driver is undesired or"},{"line_number":196,"context_line":"                            impossible."}],"source_content_type":"text/x-python","patch_set":4,"id":"5d02047b_360a63d4","line":193,"in_reply_to":"e086aa08_bb5c3bf6","updated":"2020-11-24 15:46:06.000000000","message":"Thank you -- can you point me to where else that convention is used? I could not find it. I think adhering to precedence can make sense in this case, but my preference is to be more explicit, especially as, when overloading boolean values, it\u0027s pretty easy to mess up and assume a truthiness check is all you need.","commit_id":"98ae6c38225679030e534c3f916812e910ef5ae0"}],"ironic/tests/unit/conductor/test_manager.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"    @mock.patch(\u0027ironic.conductor.manager.ConductorManager._spawn_worker\u0027,"},{"line_number":1788,"context_line":"                autospec\u003dTrue)"},{"line_number":1789,"context_line":"    def test_continue_node_deploy_locked(self, mock_spawn):"},{"line_number":1790,"context_line":"        \"\"\"Test that continuing a deploy via RPC cannot fail due to locks."},{"line_number":1791,"context_line":"        \"\"\""},{"line_number":1792,"context_line":"        max_attempts \u003d 3"},{"line_number":1793,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_30aa83d1","line":1790,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":1788,"context_line":"                autospec\u003dTrue)"},{"line_number":1789,"context_line":"    def test_continue_node_deploy_locked(self, mock_spawn):"},{"line_number":1790,"context_line":"        \"\"\"Test that continuing a deploy via RPC cannot fail due to locks."},{"line_number":1791,"context_line":"        \"\"\""},{"line_number":1792,"context_line":"        max_attempts \u003d 3"},{"line_number":1793,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"},{"line_number":1794,"context_line":"        prv_state \u003d states.DEPLOYWAIT"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_90b9d72f","line":1791,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":1799,"context_line":"                                          last_error\u003dNone,"},{"line_number":1800,"context_line":"                                          deploy_step\u003dself.deploy_steps[0])"},{"line_number":1801,"context_line":"        self._start_service()"},{"line_number":1802,"context_line":"        with mock.patch.object(objects.Node, \u0027reserve\u0027, autospec\u003dTrue) as _mock:"},{"line_number":1803,"context_line":"            _mock.side_effect \u003d ("},{"line_number":1804,"context_line":"                ([exception.NodeLocked(node\u003d\u0027foo\u0027, host\u003d\u0027foo\u0027)] * max_attempts)"},{"line_number":1805,"context_line":"                 + [node])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_70b4fb35","line":1802,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":1802,"context_line":"        with mock.patch.object(objects.Node, \u0027reserve\u0027, autospec\u003dTrue) as _mock:"},{"line_number":1803,"context_line":"            _mock.side_effect \u003d ("},{"line_number":1804,"context_line":"                ([exception.NodeLocked(node\u003d\u0027foo\u0027, host\u003d\u0027foo\u0027)] * max_attempts)"},{"line_number":1805,"context_line":"                 + [node])"},{"line_number":1806,"context_line":"            self.service.continue_node_deploy(self.context, node.uuid)"},{"line_number":1807,"context_line":"        self._stop_service()"},{"line_number":1808,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d084ef60","line":1805,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: E131 continuation line unaligned for hanging indent","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":2607,"context_line":"    @mock.patch(\u0027ironic.conductor.manager.ConductorManager._spawn_worker\u0027,"},{"line_number":2608,"context_line":"                autospec\u003dTrue)"},{"line_number":2609,"context_line":"    def test_continue_node_clean_locked(self, mock_spawn):"},{"line_number":2610,"context_line":"        \"\"\"Test that continuing a clean via RPC cannot fail due to locks."},{"line_number":2611,"context_line":"        \"\"\""},{"line_number":2612,"context_line":"        max_attempts \u003d 3"},{"line_number":2613,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_b087b361","line":2610,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":2608,"context_line":"                autospec\u003dTrue)"},{"line_number":2609,"context_line":"    def test_continue_node_clean_locked(self, mock_spawn):"},{"line_number":2610,"context_line":"        \"\"\"Test that continuing a clean via RPC cannot fail due to locks."},{"line_number":2611,"context_line":"        \"\"\""},{"line_number":2612,"context_line":"        max_attempts \u003d 3"},{"line_number":2613,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"},{"line_number":2614,"context_line":"        driver_info \u003d {\u0027clean_steps\u0027: [self.clean_steps[0]],"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_107f8767","line":2611,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":2620,"context_line":"            target_provision_state\u003dtgt_prov_state, last_error\u003dNone,"},{"line_number":2621,"context_line":"            driver_internal_info\u003ddriver_info, clean_step\u003dself.clean_steps[0])"},{"line_number":2622,"context_line":"        self._start_service()"},{"line_number":2623,"context_line":"        with mock.patch.object(objects.Node, \u0027reserve\u0027, autospec\u003dTrue) as _mock:"},{"line_number":2624,"context_line":"            _mock.side_effect \u003d ("},{"line_number":2625,"context_line":"                ([exception.NodeLocked(node\u003d\u0027foo\u0027, host\u003d\u0027foo\u0027)] * max_attempts)"},{"line_number":2626,"context_line":"                 + [node])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_f0812b4c","line":2623,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":2623,"context_line":"        with mock.patch.object(objects.Node, \u0027reserve\u0027, autospec\u003dTrue) as _mock:"},{"line_number":2624,"context_line":"            _mock.side_effect \u003d ("},{"line_number":2625,"context_line":"                ([exception.NodeLocked(node\u003d\u0027foo\u0027, host\u003d\u0027foo\u0027)] * max_attempts)"},{"line_number":2626,"context_line":"                 + [node])"},{"line_number":2627,"context_line":"            self.service.continue_node_clean(self.context, node.uuid)"},{"line_number":2628,"context_line":"        self._stop_service()"},{"line_number":2629,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_5098dfbe","line":2626,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: E131 continuation line unaligned for hanging indent","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"804e4760ae2e9279149165ed331ece112209d797","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"    @mock.patch(\u0027ironic.conductor.manager.ConductorManager._spawn_worker\u0027,"},{"line_number":1788,"context_line":"                autospec\u003dTrue)"},{"line_number":1789,"context_line":"    def test_continue_node_deploy_locked(self, mock_spawn):"},{"line_number":1790,"context_line":"        \"\"\"Test that continuing a deploy via RPC cannot fail due to locks."},{"line_number":1791,"context_line":"        \"\"\""},{"line_number":1792,"context_line":""},{"line_number":1793,"context_line":"        max_attempts \u003d 3"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_b2b3174d","line":1790,"updated":"2020-11-09 23:36:56.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"804e4760ae2e9279149165ed331ece112209d797","unresolved":false,"context_lines":[{"line_number":1788,"context_line":"                autospec\u003dTrue)"},{"line_number":1789,"context_line":"    def test_continue_node_deploy_locked(self, mock_spawn):"},{"line_number":1790,"context_line":"        \"\"\"Test that continuing a deploy via RPC cannot fail due to locks."},{"line_number":1791,"context_line":"        \"\"\""},{"line_number":1792,"context_line":""},{"line_number":1793,"context_line":"        max_attempts \u003d 3"},{"line_number":1794,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_12864b67","line":1791,"updated":"2020-11-09 23:36:56.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"804e4760ae2e9279149165ed331ece112209d797","unresolved":false,"context_lines":[{"line_number":2608,"context_line":"    @mock.patch(\u0027ironic.conductor.manager.ConductorManager._spawn_worker\u0027,"},{"line_number":2609,"context_line":"                autospec\u003dTrue)"},{"line_number":2610,"context_line":"    def test_continue_node_clean_locked(self, mock_spawn):"},{"line_number":2611,"context_line":"        \"\"\"Test that continuing a clean via RPC cannot fail due to locks."},{"line_number":2612,"context_line":"        \"\"\""},{"line_number":2613,"context_line":""},{"line_number":2614,"context_line":"        max_attempts \u003d 3"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_f28aaf67","line":2611,"updated":"2020-11-09 23:36:56.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"804e4760ae2e9279149165ed331ece112209d797","unresolved":false,"context_lines":[{"line_number":2609,"context_line":"                autospec\u003dTrue)"},{"line_number":2610,"context_line":"    def test_continue_node_clean_locked(self, mock_spawn):"},{"line_number":2611,"context_line":"        \"\"\"Test that continuing a clean via RPC cannot fail due to locks."},{"line_number":2612,"context_line":"        \"\"\""},{"line_number":2613,"context_line":""},{"line_number":2614,"context_line":"        max_attempts \u003d 3"},{"line_number":2615,"context_line":"        self.config(node_locked_retry_attempts\u003dmax_attempts, group\u003d\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_527c4371","line":2612,"updated":"2020-11-09 23:36:56.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"}],"ironic/tests/unit/conductor/test_task_manager.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # Fail on the first 3 attempts, succeed on the fourth."},{"line_number":234,"context_line":"        reserve_mock.side_effect \u003d (([exception.NodeLocked(node\u003d\u0027foo\u0027,"},{"line_number":235,"context_line":"                                                         host\u003d\u0027foo\u0027)] * 3) +"},{"line_number":236,"context_line":"                                    [self.node])"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        task_manager.TaskManager(self.context, \u0027fake-node-id\u0027, patient\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_f0a80bdc","line":235,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # Fail on the first 3 attempts, succeed on the fourth."},{"line_number":234,"context_line":"        reserve_mock.side_effect \u003d (([exception.NodeLocked(node\u003d\u0027foo\u0027,"},{"line_number":235,"context_line":"                                                         host\u003d\u0027foo\u0027)] * 3) +"},{"line_number":236,"context_line":"                                    [self.node])"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        task_manager.TaskManager(self.context, \u0027fake-node-id\u0027, patient\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_50af3fe2","line":235,"updated":"2020-11-05 21:42:57.000000000","message":"pep8: W504 line break after binary operator","commit_id":"4c3afedb967da7a8a6c184610232f5f0dea0b5d1"}]}
