Merge "Ironic nodes with instance_uuid are not available"
This commit is contained in:
@@ -665,14 +665,20 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
# a node in deleted
|
# a node in deleted
|
||||||
{'uuid': uuidutils.generate_uuid(),
|
{'uuid': uuidutils.generate_uuid(),
|
||||||
'power_state': ironic_states.POWER_ON,
|
'power_state': ironic_states.POWER_ON,
|
||||||
'provision_state': ironic_states.DELETED}
|
'provision_state': ironic_states.DELETED},
|
||||||
|
# a node in AVAILABLE with an instance uuid
|
||||||
|
{'uuid': uuidutils.generate_uuid(),
|
||||||
|
'instance_uuid': uuidutils.generate_uuid(),
|
||||||
|
'power_state': ironic_states.POWER_OFF,
|
||||||
|
'provision_state': ironic_states.AVAILABLE}
|
||||||
]
|
]
|
||||||
for n in node_dicts:
|
for n in node_dicts:
|
||||||
node = ironic_utils.get_test_node(**n)
|
node = ironic_utils.get_test_node(**n)
|
||||||
self.assertTrue(self.driver._node_resources_unavailable(node))
|
self.assertTrue(self.driver._node_resources_unavailable(node))
|
||||||
|
|
||||||
for ok_state in (ironic_states.AVAILABLE, ironic_states.NOSTATE):
|
for ok_state in (ironic_states.AVAILABLE, ironic_states.NOSTATE):
|
||||||
# these are both ok and should present as available
|
# these are both ok and should present as available as they
|
||||||
|
# have no instance_uuid
|
||||||
avail_node = ironic_utils.get_test_node(
|
avail_node = ironic_utils.get_test_node(
|
||||||
power_state=ironic_states.POWER_OFF,
|
power_state=ironic_states.POWER_OFF,
|
||||||
provision_state=ok_state)
|
provision_state=ok_state)
|
||||||
|
|||||||
@@ -179,7 +179,9 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
ironic_states.AVAILABLE, ironic_states.NOSTATE]
|
ironic_states.AVAILABLE, ironic_states.NOSTATE]
|
||||||
return (node_obj.maintenance or
|
return (node_obj.maintenance or
|
||||||
node_obj.power_state in bad_power_states or
|
node_obj.power_state in bad_power_states or
|
||||||
node_obj.provision_state not in good_provision_states)
|
node_obj.provision_state not in good_provision_states or
|
||||||
|
(node_obj.provision_state in good_provision_states and
|
||||||
|
node_obj.instance_uuid is not None))
|
||||||
|
|
||||||
def _node_resources_used(self, node_obj):
|
def _node_resources_used(self, node_obj):
|
||||||
"""Determine whether the node's resources are currently used.
|
"""Determine whether the node's resources are currently used.
|
||||||
|
|||||||
Reference in New Issue
Block a user