diff --git a/nova/scheduler/client/report.py b/nova/scheduler/client/report.py index 7b0f70edfa..fa5041e664 100644 --- a/nova/scheduler/client/report.py +++ b/nova/scheduler/client/report.py @@ -442,7 +442,7 @@ class SchedulerReportClient(object): if allocations is None: allocations = {} - instance_dict = {instance.uuid: instance + instance_dict = {instance['uuid']: instance for instance in instance_uuids} removed_instances = set(allocations.keys()) - set(instance_dict.keys()) diff --git a/nova/tests/unit/scheduler/client/test_report.py b/nova/tests/unit/scheduler/client/test_report.py index 085351f49a..8209007964 100644 --- a/nova/tests/unit/scheduler/client/test_report.py +++ b/nova/tests/unit/scheduler/client/test_report.py @@ -769,9 +769,14 @@ class SchedulerReportClientTestCase(test.NoDBTestCase): inst2.uuid: fake_allocations, } } + + # One instance still on the node, dict form as the + # RT tracks it + inst3 = {'uuid': 'foo'} + mock_delete.return_value = True with mock.patch.object(self.client, '_allocations'): - self.client.remove_deleted_instances(cn, []) + self.client.remove_deleted_instances(cn, [inst3]) mock_get.assert_called_once_with( '/resource_providers/%s/allocations' % cn.uuid) expected_calls = [