)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ac18157632a0b3c55ab11dc2be1c1d3562fc843f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     He Jie Xu \u003chejie.xu@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-16 14:17:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Claim and unclaim deivces when spawn and destory the instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Invokes the new interfaces `claim/unclaim_for_instance` for the"},{"line_number":10,"context_line":"`ResourceTracker.instance_claim` and `ResourceTracker.abort_instance_claim`."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_1799b477","line":7,"range":{"start_line":7,"start_character":41,"end_line":7,"end_character":48},"updated":"2019-07-16 10:49:25.000000000","message":"destroy","commit_id":"52376530a1d6d2fcb16433ed746a795b42b1e5a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ac18157632a0b3c55ab11dc2be1c1d3562fc843f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     He Jie Xu \u003chejie.xu@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-16 14:17:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Claim and unclaim deivces when spawn and destory the instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Invokes the new interfaces `claim/unclaim_for_instance` for the"},{"line_number":10,"context_line":"`ResourceTracker.instance_claim` and `ResourceTracker.abort_instance_claim`."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_f79bb86f","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":25},"updated":"2019-07-16 10:49:25.000000000","message":"devices","commit_id":"52376530a1d6d2fcb16433ed746a795b42b1e5a3"}],"nova/compute/claims.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a886cf3d903402724a405206be2e20be27a8c136","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \"\"\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, context, instance, nodename, tracker, resources,"},{"line_number":77,"context_line":"                 pci_requests, allocations, overhead\u003dNone, limits\u003dNone):"},{"line_number":78,"context_line":"        super(Claim, self).__init__()"},{"line_number":79,"context_line":"        # Stash a copy of the instance at the current point of time"},{"line_number":80,"context_line":"        self.instance \u003d instance.obj_clone()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_8fdfc838","line":77,"range":{"start_line":77,"start_character":31,"end_line":77,"end_character":42},"updated":"2019-07-16 13:41:29.000000000","message":"I needn\u0027t this anymore. Since the unclaim interface needn\u0027t this parameter anymore, I forget to remove it.","commit_id":"52376530a1d6d2fcb16433ed746a795b42b1e5a3"}],"nova/compute/manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41fbb622bad918b39ef89ffc0503708556b21766","unresolved":false,"context_lines":[{"line_number":816,"context_line":""},{"line_number":817,"context_line":"    def _complete_deletion(self, context, instance):"},{"line_number":818,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":819,"context_line":"        self.driver.unclaim_for_instance(instance)"},{"line_number":820,"context_line":"        self.reportclient.delete_allocation_for_instance(context,"},{"line_number":821,"context_line":"                                                         instance.uuid)"},{"line_number":822,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_2e9a20b8","line":819,"updated":"2019-07-19 10:36:37.000000000","message":"same concern that in the RT, we need to check whether the virt driver supports this method instead of silently saying \"heh yeah, done\"","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34ad74d45648294de5a8d1e311e37edd33b9bc92","unresolved":false,"context_lines":[{"line_number":816,"context_line":""},{"line_number":817,"context_line":"    def _complete_deletion(self, context, instance):"},{"line_number":818,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":819,"context_line":"        self.driver.unclaim_for_instance(instance)"},{"line_number":820,"context_line":"        self.reportclient.delete_allocation_for_instance(context,"},{"line_number":821,"context_line":"                                                         instance.uuid)"},{"line_number":822,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_33d848ed","line":819,"in_reply_to":"7faddb67_2e9a20b8","updated":"2019-07-19 13:21:24.000000000","message":"In this case what would we be doing?\n\n try:\n     unclaim_for_instance()\n except:\n     pass\n\nright? If the driver didn\u0027t implement anything, it means there\u0027s nothing to do.","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41fbb622bad918b39ef89ffc0503708556b21766","unresolved":false,"context_lines":[{"line_number":5316,"context_line":"        # terminate all the connections with the volume server and the host"},{"line_number":5317,"context_line":"        self._terminate_volume_connections(context, instance, bdms)"},{"line_number":5318,"context_line":""},{"line_number":5319,"context_line":"        self.driver.unclaim_for_instance(instance)"},{"line_number":5320,"context_line":"        # Free up the resource allocations in the placement service."},{"line_number":5321,"context_line":"        # This should happen *before* the vm_state is changed to"},{"line_number":5322,"context_line":"        # SHELVED_OFFLOADED in case client-side code is polling the API to"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_ae861065","line":5319,"updated":"2019-07-19 10:36:37.000000000","message":"FWIW, instead of directly call the virt driver here for unclaiming, I\u0027d prefer to call the RT like we do for all the other move operations with a contextmanager, eg. L5430, ie. calling abort_instance_claim().\nThat said, changing this could be a bit difficult, so maybe a follow-up","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"35a651bd0c2e9edf9f5cd80cfa5116f1fa5bef8a","unresolved":false,"context_lines":[{"line_number":5316,"context_line":"        # terminate all the connections with the volume server and the host"},{"line_number":5317,"context_line":"        self._terminate_volume_connections(context, instance, bdms)"},{"line_number":5318,"context_line":""},{"line_number":5319,"context_line":"        self.driver.unclaim_for_instance(instance)"},{"line_number":5320,"context_line":"        # Free up the resource allocations in the placement service."},{"line_number":5321,"context_line":"        # This should happen *before* the vm_state is changed to"},{"line_number":5322,"context_line":"        # SHELVED_OFFLOADED in case client-side code is polling the API to"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6fbb21c4","line":5319,"in_reply_to":"7faddb67_ae861065","updated":"2019-07-22 03:35:12.000000000","message":"Good point, you are right, I should call it inside RT. There is a call for RT at line 5338, I move it to here.","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41fbb622bad918b39ef89ffc0503708556b21766","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        instance_numa_topology \u003d claim.claimed_numa_topology"},{"line_number":220,"context_line":"        instance.numa_topology \u003d instance_numa_topology"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        self.driver.claim_for_instance(instance, allocations)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self._set_instance_host_and_node(instance, nodename)"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_ee48885c","line":222,"updated":"2019-07-19 10:36:37.000000000","message":"here we should then check the NotImplemented exception that would be provided if the virt driver doesn\u0027t support it.","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41fbb622bad918b39ef89ffc0503708556b21766","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                                 limits\u003dlimits)"},{"line_number":330,"context_line":"        claim.migration \u003d migration"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        self.driver.claim_for_instance(instance, allocations)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        claimed_pci_devices_objs \u003d []"},{"line_number":335,"context_line":"        if self.pci_tracker:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8e71d4aa","line":332,"updated":"2019-07-19 10:36:37.000000000","message":"that only works because the allocations are about the target. Maybe a comment would be nice since the source node will still have the existing allocations be about the migration UUID and no longer the instance.","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"35a651bd0c2e9edf9f5cd80cfa5116f1fa5bef8a","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                                 limits\u003dlimits)"},{"line_number":330,"context_line":"        claim.migration \u003d migration"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        self.driver.claim_for_instance(instance, allocations)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        claimed_pci_devices_objs \u003d []"},{"line_number":335,"context_line":"        if self.pci_tracker:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_efc6314a","line":332,"in_reply_to":"7faddb67_8e71d4aa","updated":"2019-07-22 03:35:12.000000000","message":"Yes, for the src node, we have allocation for the migration UUID. Just to be clear, we still claim the device on src node by the instance UUID.","commit_id":"b1afb2ce5c018768428b8eb66b104e7c9293d607"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7b83b3025a79ca7b517aec17aa135f1ae9ef141b","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        claim.migration \u003d migration"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        self.driver.claim_for_instance(instance, allocations,"},{"line_number":335,"context_line":"                                       new_instance_type)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        claimed_pci_devices_objs \u003d []"},{"line_number":338,"context_line":"        if self.pci_tracker:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_3b30e107","line":335,"updated":"2019-07-24 12:04:56.000000000","message":"Alex has asked that I review this with a vmware virt driver eye, because it is one of the drivers (perhaps the only) that allows move operations to the same host, notably a cold resize to the same host.\n\nAlex has that the third argument here is used to make distinctions between the source and destination host, but I\u0027m not seeing further in the stack how this is really used, so haven\u0027t got a concrete understanding for the how and why the distinguishing is used and required.\n\nIt is theoretically possible to cause a resize to the same host and not actually resize (use the same flavor) but I haven\u0027t dug far enough to know if this will actually do anything.\n\nSo basically: I need to know more about how flavor arg is going to be used before I can really comment with any confidence.","commit_id":"dbe73553ce59f00bdb2a9127f1236b9631ec4d3b"}],"nova/tests/unit/compute/test_shelve.py":[{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"c412facf934d4fa7d28a3501f4062622efdaddc9","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                                                   self.compute.host)"},{"line_number":470,"context_line":"        mock_instance_claim.assert_called_once_with(self.context, instance,"},{"line_number":471,"context_line":"                                                    test_compute.NODENAME,"},{"line_number":472,"context_line":"                                                    limits, {})"},{"line_number":473,"context_line":"        mock_spawn.assert_called_once_with(self.context, instance,"},{"line_number":474,"context_line":"                test.MatchType(objects.ImageMeta),"},{"line_number":475,"context_line":"                injected_files\u003d[], admin_password\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_1c1a096e","line":472,"range":{"start_line":472,"start_character":52,"end_line":472,"end_character":62},"updated":"2019-08-06 02:41:17.000000000","message":"allocations {} should not be the last argument as it\u0027s the 4th argument in fake_claim above.","commit_id":"847f55730d61cf7f8d4426dd9fab3917340e9eeb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f1ae7cb1e054a4e432dcd07be7410c9a92ec15cf","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                                                   self.compute.host)"},{"line_number":470,"context_line":"        mock_instance_claim.assert_called_once_with(self.context, instance,"},{"line_number":471,"context_line":"                                                    test_compute.NODENAME,"},{"line_number":472,"context_line":"                                                    limits, {})"},{"line_number":473,"context_line":"        mock_spawn.assert_called_once_with(self.context, instance,"},{"line_number":474,"context_line":"                test.MatchType(objects.ImageMeta),"},{"line_number":475,"context_line":"                injected_files\u003d[], admin_password\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_7738f6d1","line":472,"range":{"start_line":472,"start_character":52,"end_line":472,"end_character":62},"in_reply_to":"7faddb67_1c1a096e","updated":"2019-08-06 04:10:39.000000000","message":"thanks, I will update","commit_id":"847f55730d61cf7f8d4426dd9fab3917340e9eeb"},{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"c412facf934d4fa7d28a3501f4062622efdaddc9","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                                                   self.compute.host)"},{"line_number":556,"context_line":"        mock_instance_claim.assert_called_once_with(self.context, instance,"},{"line_number":557,"context_line":"                                                    test_compute.NODENAME,"},{"line_number":558,"context_line":"                                                    {}, limits)"},{"line_number":559,"context_line":"        mock_spawn.assert_called_once_with("},{"line_number":560,"context_line":"            self.context, instance, test.MatchType(objects.ImageMeta),"},{"line_number":561,"context_line":"            injected_files\u003d[], admin_password\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_1cc76966","line":558,"range":{"start_line":558,"start_character":52,"end_line":558,"end_character":56},"updated":"2019-08-06 02:41:17.000000000","message":"this one should be the last argument.","commit_id":"847f55730d61cf7f8d4426dd9fab3917340e9eeb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f1ae7cb1e054a4e432dcd07be7410c9a92ec15cf","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                                                   self.compute.host)"},{"line_number":556,"context_line":"        mock_instance_claim.assert_called_once_with(self.context, instance,"},{"line_number":557,"context_line":"                                                    test_compute.NODENAME,"},{"line_number":558,"context_line":"                                                    {}, limits)"},{"line_number":559,"context_line":"        mock_spawn.assert_called_once_with("},{"line_number":560,"context_line":"            self.context, instance, test.MatchType(objects.ImageMeta),"},{"line_number":561,"context_line":"            injected_files\u003d[], admin_password\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b7574e01","line":558,"range":{"start_line":558,"start_character":52,"end_line":558,"end_character":56},"in_reply_to":"7faddb67_1cc76966","updated":"2019-08-06 04:10:39.000000000","message":"I probably should correct the fake claim","commit_id":"847f55730d61cf7f8d4426dd9fab3917340e9eeb"}]}
