)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":6443,"context_line":"        filters \u003d {\u0027task_state\u0027: task_states.DELETING, \u0027host\u0027: self.host}"},{"line_number":6444,"context_line":"        attrs \u003d [\u0027info_cache\u0027, \u0027metadata\u0027]"},{"line_number":6445,"context_line":"        instances_in_deleting \u003d objects.InstanceList.get_by_filters("},{"line_number":6446,"context_line":"            context, filters, expected_attrs\u003dattrs, use_slave\u003dTrue)"},{"line_number":6447,"context_line":""},{"line_number":6448,"context_line":"        timeout \u003d CONF.delete_instance_stuck_in_deleting_interval / 6"},{"line_number":6449,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_b205f346","line":6446,"updated":"2016-09-27 08:38:56.000000000","message":"Instances for deleting can be fetched from DB without the additional filtering. There is changes-since option for filtering. It will be better in terms of the traffic reducing.","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"a5a3c18f5b081a262f61438ddb477a9732c2db5a","unresolved":false,"context_lines":[{"line_number":6443,"context_line":"        filters \u003d {\u0027task_state\u0027: task_states.DELETING, \u0027host\u0027: self.host}"},{"line_number":6444,"context_line":"        attrs \u003d [\u0027info_cache\u0027, \u0027metadata\u0027]"},{"line_number":6445,"context_line":"        instances_in_deleting \u003d objects.InstanceList.get_by_filters("},{"line_number":6446,"context_line":"            context, filters, expected_attrs\u003dattrs, use_slave\u003dTrue)"},{"line_number":6447,"context_line":""},{"line_number":6448,"context_line":"        timeout \u003d CONF.delete_instance_stuck_in_deleting_interval / 6"},{"line_number":6449,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_617729a0","line":6446,"in_reply_to":"5a8bc5a2_b205f346","updated":"2016-10-03 10:32:11.000000000","message":"IMO we need to filter all instances, which are stuck in deleting task state, no matter since when they stuck.\n\nIf we would use changes-since, then we have to provide a timestamp after which if there is any state/action change, then that will be added to the returned list, which I think is not required, as it will not take each stuck instance into account.\n\nPlease correct me, if I am wrong.","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":6445,"context_line":"        instances_in_deleting \u003d objects.InstanceList.get_by_filters("},{"line_number":6446,"context_line":"            context, filters, expected_attrs\u003dattrs, use_slave\u003dTrue)"},{"line_number":6447,"context_line":""},{"line_number":6448,"context_line":"        timeout \u003d CONF.delete_instance_stuck_in_deleting_interval / 6"},{"line_number":6449,"context_line":""},{"line_number":6450,"context_line":"        for instance in instances_in_deleting:"},{"line_number":6451,"context_line":"            if timeutils.is_older_than(instance.updated_at, timeout):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_72436b6c","line":6448,"updated":"2016-09-27 08:38:56.000000000","message":"It isn\u0027t clear for me why magic number (6) appears here.","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"a5a3c18f5b081a262f61438ddb477a9732c2db5a","unresolved":false,"context_lines":[{"line_number":6445,"context_line":"        instances_in_deleting \u003d objects.InstanceList.get_by_filters("},{"line_number":6446,"context_line":"            context, filters, expected_attrs\u003dattrs, use_slave\u003dTrue)"},{"line_number":6447,"context_line":""},{"line_number":6448,"context_line":"        timeout \u003d CONF.delete_instance_stuck_in_deleting_interval / 6"},{"line_number":6449,"context_line":""},{"line_number":6450,"context_line":"        for instance in instances_in_deleting:"},{"line_number":6451,"context_line":"            if timeutils.is_older_than(instance.updated_at, timeout):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_41b4ed33","line":6448,"in_reply_to":"5a8bc5a2_72436b6c","updated":"2016-10-03 10:32:11.000000000","message":"The default value for config param \u0027delete_instance_stuck_in_deleting_interval\u0027 is 1 hour, so I thought that if a instance is stuck in deleting task state for more-than 10 min, then if should be eligible to be considered as stuck in deleting state.\n\nThere is no specific reason to choose number (6), if you could provide better suggestion, you are welcome.","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"}],"nova/conf/compute.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":435,"context_line":"               default\u003d3600,"},{"line_number":436,"context_line":"               help\u003d\u0027Interval in seconds for deleting instances stuck \u0027"},{"line_number":437,"context_line":"                    \u0027in deleting task_state. Set to -1 to disable. \u0027"},{"line_number":438,"context_line":"                    \u0027Setting this to 0 will run at default rate.\u0027,),"},{"line_number":439,"context_line":"    cfg.IntOpt(\u0027block_device_allocate_retries_interval\u0027,"},{"line_number":440,"context_line":"               default\u003d3,"},{"line_number":441,"context_line":"               help\u003d\u0027Waiting time interval (seconds) between block\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_d07a7723","line":438,"updated":"2016-09-27 08:38:56.000000000","message":"If it\u0027s an option for user I think it\u0027s worth to mention it in release notes (tox -e venv -- reno new).","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":867,"context_line":"        mock_set_instance_error_state.assert_called_once_with("},{"line_number":868,"context_line":"            self.context, instance)"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    @mock.patch.object(timeutils, \u0027is_older_than\u0027)"},{"line_number":871,"context_line":"    @mock.patch.object(manager.ComputeManager,"},{"line_number":872,"context_line":"                       \u0027_delete_instance\u0027)"},{"line_number":873,"context_line":"    @mock.patch.object(manager.ComputeManager,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_507f47df","line":870,"updated":"2016-09-27 08:38:56.000000000","message":"Don\u0027t sure why timeutils is mocked.\nIMO we should mock as mininum as possible.","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":874,"context_line":"                       \u0027_set_instance_obj_error_state\u0027)"},{"line_number":875,"context_line":"    @mock.patch.object(manager.ComputeManager,"},{"line_number":876,"context_line":"                       \u0027_create_reservations\u0027)"},{"line_number":877,"context_line":"    @mock.patch.object(objects.Instance, \u0027get_by_uuid\u0027)"},{"line_number":878,"context_line":"    @mock.patch.object(objects.InstanceList, \u0027get_by_filters\u0027)"},{"line_number":879,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_instance_uuid\u0027)"},{"line_number":880,"context_line":"    def _test_periodic_task_delete_instance_stuck_in_deleting("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_0bfe6ead","line":877,"updated":"2016-09-27 08:38:56.000000000","message":"Is this mock necessary?","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9c1df8c4684c3c4b3936edf52f8c3fc61b4d9b6d","unresolved":false,"context_lines":[{"line_number":918,"context_line":"        self._test_periodic_task_delete_instance_stuck_in_deleting(False)"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"    def test_periodic_task_delete_instance_stuck_in_deleting_raises_exc(self):"},{"line_number":921,"context_line":"        self._test_periodic_task_delete_instance_stuck_in_deleting(True)"},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"    def _test_init_instance_reverts_crashed_migrations(self,"},{"line_number":924,"context_line":"                                                       old_vm_state\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_4b64f6b7","line":921,"updated":"2016-09-27 08:38:56.000000000","message":"It would be nice to have cases when the instance deleting is disabled (delete_instance_stuck_in_deleting_interval \u003d -1).","commit_id":"a4f1eab795e4305e408cddbfeb2deadd821f7375"}]}
