)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"68c956e412e7ede7b0917909dee6e1122722a0f5","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        try:"},{"line_number":346,"context_line":"            self._update_usage_from_instance(context, instance)"},{"line_number":347,"context_line":"        finally:"},{"line_number":348,"context_line":"            instance.vm_state \u003d real_vm_state"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        instance.clear_numa_topology()"},{"line_number":351,"context_line":"        self._set_instance_host_and_node(instance, clear\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_7bd4f4ea","line":348,"updated":"2016-03-07 10:35:58.000000000","message":"Nit: This feels messy, can\u0027t we just modify _update_usage_from_instance, to say \"remove_usage\u003dTrue\" or something like that?","commit_id":"e9796a9a1a4a360147f6833e9866b5181b474fd5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fbd2c0242bf5b701181eaf66282009afaf6ba619","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        try:"},{"line_number":346,"context_line":"            self._update_usage_from_instance(context, instance)"},{"line_number":347,"context_line":"        finally:"},{"line_number":348,"context_line":"            instance.vm_state \u003d real_vm_state"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        instance.clear_numa_topology()"},{"line_number":351,"context_line":"        self._set_instance_host_and_node(instance, clear\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_5acbd472","line":348,"in_reply_to":"7af24918_7bd4f4ea","updated":"2016-03-07 11:20:12.000000000","message":"or add a \"_remove_usage_from_instance\" function? :)","commit_id":"e9796a9a1a4a360147f6833e9866b5181b474fd5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"68c956e412e7ede7b0917909dee6e1122722a0f5","unresolved":false,"context_lines":[{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        uuid \u003d instance[\u0027uuid\u0027]"},{"line_number":871,"context_line":"        is_new_instance \u003d uuid not in self.tracked_instances"},{"line_number":872,"context_line":"        is_removed_instance \u003d instance[\u0027vm_state\u0027] in _REMOVED_STATES"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"        if is_new_instance:"},{"line_number":875,"context_line":"            self.tracked_instances[uuid] \u003d obj_base.obj_to_primitive(instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_1bb210e5","line":872,"range":{"start_line":872,"start_character":54,"end_line":872,"end_character":69},"updated":"2016-03-07 10:35:58.000000000","message":"Nit: From above, it feels like we should really just pass in is_removed\u003dTrue, or something, to over-ride the vm_state check?","commit_id":"e9796a9a1a4a360147f6833e9866b5181b474fd5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"020ee9843d5fb197b1af96a9d8cd1cd89ff8c9e6","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        migration.status \u003d \u0027pre-migrating\u0027"},{"line_number":327,"context_line":"        migration.save()"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _set_instance_host_and_node(self, instance, clear\u003dFalse):"},{"line_number":330,"context_line":"        \"\"\"Tag the instance as belonging to this host.  This should be done"},{"line_number":331,"context_line":"        while the COMPUTE_RESOURCES_SEMAPHORE is held so the resource claim"},{"line_number":332,"context_line":"        will not be lost if the audit process starts."},{"line_number":333,"context_line":"        \"\"\""},{"line_number":334,"context_line":"        instance.host \u003d None if clear else self.host"},{"line_number":335,"context_line":"        if not clear:"},{"line_number":336,"context_line":"            instance.launched_on \u003d self.host"},{"line_number":337,"context_line":"        instance.node \u003d None if clear else self.nodename"},{"line_number":338,"context_line":"        instance.save()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":341,"context_line":"    def abort_instance_claim(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_3a0fe8e2","line":338,"range":{"start_line":329,"start_character":0,"end_line":338,"end_character":23},"updated":"2016-03-07 11:18:50.000000000","message":"IMO this would be so much easier to understand if you added an \u0027_unset_instance_host_and_node\u0027 function instead of the \"clear\" parameter.","commit_id":"c7a6673fd5621d1c121c20376634ec49644fae59"}]}
