Merge "remove baremetal nodes from hypversior list"

This commit is contained in:
Zuul
2019-07-09 08:38:46 +00:00
committed by Gerrit Code Review
2 changed files with 29 additions and 1 deletions

View File

@@ -45,7 +45,11 @@ class NovaHelper(object):
self.glance = self.osc.glance()
def get_compute_node_list(self):
return self.nova.hypervisors.list()
hypervisors = self.nova.hypervisors.list()
# filter out baremetal nodes from hypervisors
compute_nodes = [node for node in hypervisors if
node.hypervisor_type != 'ironic']
return compute_nodes
def get_compute_node_by_name(self, node_name, servers=False,
detailed=False):

View File

@@ -61,6 +61,7 @@ class TestNovaHelper(base.TestCase):
service_dict = {"host": args[1]}
hypervisor.service = service_dict
hypervisor.hypervisor_hostname = args[1]
hypervisor.hypervisor_type = kwargs.pop('hypervisor_type', 'QEMU')
return hypervisor
@@ -667,3 +668,26 @@ class TestNovaHelper(base.TestCase):
# is not in the expected status.
result = nova_util.confirm_resize(instance, "fake_status")
self.assertFalse(result)
def test_get_compute_node_list(
self, mock_glance, mock_cinder, mock_neutron, mock_nova):
nova_util = nova_helper.NovaHelper()
hypervisor1_id = utils.generate_uuid()
hypervisor1_name = "fake_hypervisor_1"
hypervisor1 = self.fake_hypervisor(
hypervisor1_id, hypervisor1_name, hypervisor_type="QEMU")
hypervisor2_id = utils.generate_uuid()
hypervisor2_name = "fake_ironic"
hypervisor2 = self.fake_hypervisor(
hypervisor2_id, hypervisor2_name, hypervisor_type="ironic")
nova_util.nova.hypervisors.list.return_value = [hypervisor1,
hypervisor2]
compute_nodes = nova_util.get_compute_node_list()
# baremetal node should be removed
self.assertEqual(1, len(compute_nodes))
self.assertEqual(hypervisor1_name,
compute_nodes[0].hypervisor_hostname)