skip deleted instance when creating datamodel
Change-Id: Ic2ae4cb758eba32f1b1529a24d12a57ca93a2a82 Closes-Bug: #1844949
This commit is contained in:
@@ -382,6 +382,10 @@ class NovaModelBuilder(base.BaseModelBuilder):
|
||||
instances = self.call_retry(f=self.nova_helper.get_instance_list,
|
||||
filters=filters, limit=limit)
|
||||
for inst in instances:
|
||||
# skip deleted instance
|
||||
if getattr(inst, "OS-EXT-STS:vm_state") == (
|
||||
element.InstanceState.DELETED.value):
|
||||
continue
|
||||
# Add Node
|
||||
instance = self._build_instance_node(inst)
|
||||
self.model.add_instance(instance)
|
||||
|
||||
@@ -175,11 +175,26 @@ class TestNovaModelBuilder(base.TestCase):
|
||||
model_builder.model = mock.MagicMock()
|
||||
mock_node = mock.MagicMock()
|
||||
mock_host = mock_node.service["host"]
|
||||
mock_instances = [mock.MagicMock()]
|
||||
inst1 = mock.MagicMock(
|
||||
id='ef500f7e-dac8-470f-960c-169486fce711',
|
||||
tenant_id='ff560f7e-dbc8-771f-960c-164482fce21b')
|
||||
setattr(inst1, 'OS-EXT-STS:vm_state', 'deleted')
|
||||
setattr(inst1, 'name', 'instance1')
|
||||
inst2 = mock.MagicMock(
|
||||
id='ef500f7e-dac8-470f-960c-169486fce722',
|
||||
tenant_id='ff560f7e-dbc8-771f-960c-164482fce21b')
|
||||
setattr(inst2, 'OS-EXT-STS:vm_state', 'active')
|
||||
setattr(inst2, 'name', 'instance2')
|
||||
mock_instances = [inst1, inst2]
|
||||
model_builder.nova_helper.get_instance_list.return_value = (
|
||||
mock_instances)
|
||||
model_builder.add_instance_node(mock_node, mock_instances)
|
||||
# verify that when len(instances) <= 1000, limit == len(instance).
|
||||
model_builder.nova_helper.get_instance_list.assert_called_once_with(
|
||||
filters={'host': mock_host}, limit=1)
|
||||
filters={'host': mock_host}, limit=2)
|
||||
fake_instance = model_builder._build_instance_node(inst2)
|
||||
model_builder.model.add_instance.assert_called_once_with(
|
||||
fake_instance)
|
||||
|
||||
# verify that when len(instances) > 1000, limit == -1.
|
||||
mock_instance = mock.Mock()
|
||||
|
||||
Reference in New Issue
Block a user