)]}'
{"nova/compute/api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":1525,"context_line":"        project_id, user_id \u003d quotas_obj.ids_from_instance(context, instance)"},{"line_number":1526,"context_line":""},{"line_number":1527,"context_line":"        # At these states an instance has a snapshot associate."},{"line_number":1528,"context_line":"        if instance.vm_state in (vm_states.SHELVED,"},{"line_number":1529,"context_line":"                                 vm_states.SHELVED_OFFLOADED):"},{"line_number":1530,"context_line":"            snapshot_id \u003d instance.system_metadata.get(\u0027shelved_image_id\u0027)"},{"line_number":1531,"context_line":"            LOG.info(_(\"Working on deleting snapshot %s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_6e3e17ba","line":1528,"updated":"2015-04-18 11:59:34.000000000","message":"AFAIK, instances are dicts in Juno. Instance objects were introduced in Kilo.","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"}],"nova/tests/compute/test_compute_api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":573,"context_line":"    def _test_downed_host_part(self, inst, updates, delete_time, delete_type):"},{"line_number":574,"context_line":"        inst.info_cache.delete()"},{"line_number":575,"context_line":"        compute_utils.notify_about_instance_usage("},{"line_number":576,"context_line":"                self.compute_api.notifier, self.context, inst,"},{"line_number":577,"context_line":"                \u0027%s.start\u0027 % delete_type)"},{"line_number":578,"context_line":"        self.context.elevated().AndReturn(self.context)"},{"line_number":579,"context_line":"        self.compute_api.network_api.deallocate_for_instance("}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_0e4d5b72","line":576,"updated":"2015-04-18 11:59:34.000000000","message":"in the original commit, those 2 lines are unindented for some reason. Try to keep the backport as close to the original as possible, even if the original change did not make sense. :)","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":576,"context_line":"                self.compute_api.notifier, self.context, inst,"},{"line_number":577,"context_line":"                \u0027%s.start\u0027 % delete_type)"},{"line_number":578,"context_line":"        self.context.elevated().AndReturn(self.context)"},{"line_number":579,"context_line":"        self.compute_api.network_api.deallocate_for_instance("},{"line_number":580,"context_line":"                self.context, inst)"},{"line_number":581,"context_line":"        state \u003d (\u0027soft\u0027 in delete_type and vm_states.SOFT_DELETED or"},{"line_number":582,"context_line":"                vm_states.DELETED)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_ee510710","line":579,"updated":"2015-04-18 11:59:34.000000000","message":"ditto","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                            constraint\u003dNone).AndReturn(fake_inst)"},{"line_number":593,"context_line":"        compute_utils.notify_about_instance_usage("},{"line_number":594,"context_line":"                self.compute_api.notifier,"},{"line_number":595,"context_line":"                self.context, inst, \u0027%s.end\u0027 % delete_type,"},{"line_number":596,"context_line":"                system_metadata\u003dinst.system_metadata)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    def _test_delete(self, delete_type, **attrs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_ce564306","line":595,"updated":"2015-04-18 11:59:34.000000000","message":"ditto","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":683,"context_line":"                                inst.host !\u003d \u0027down-host\u0027)"},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"            if (inst.host \u003d\u003d \u0027down-host\u0027 or"},{"line_number":686,"context_line":"                    inst.vm_state \u003d\u003d vm_states.SHELVED_OFFLOADED):"},{"line_number":687,"context_line":"                self._test_downed_host_part(inst, updates, delete_time,"},{"line_number":688,"context_line":"                                            delete_type)"},{"line_number":689,"context_line":"                cast \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_2e1a5f6f","line":686,"updated":"2015-04-18 11:59:34.000000000","message":"please insert a new line here. In the original commit, there is a new line here.","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"b0e8d0d35ea0163301a159956d0f1acba6cf259d","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        for vm_state in self._get_vm_states():"},{"line_number":777,"context_line":"            if vm_state in (vm_states.SHELVED, vm_states.SHELVED_OFFLOADED):"},{"line_number":778,"context_line":"                self._test_delete(\u0027delete\u0027, vm_state\u003dvm_state,"},{"line_number":779,"context_line":"                                  system_metadata\u003dfake_sys_meta)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"    def test_delete_fast_if_host_not_set(self):"},{"line_number":782,"context_line":"        inst \u003d self._create_instance_obj()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fabf19d9_830ca443","line":779,"updated":"2015-04-18 11:59:34.000000000","message":"it appears to me that this method is not like the one on Kilo. In Kilo, there are 2 calls to self._test_delete. This is missing:\n\n    self._test_delete(delete_types.FORCE_DELETE, vm_state\u003dvm_state)","commit_id":"acf3b89db29e2481357c5ade56638261aca4c50d"}]}
