Merge "remove baremetal nodes when building CDM"
This commit is contained in:
@@ -263,6 +263,10 @@ class ModelBuilder(object):
|
|||||||
detailed=True)
|
detailed=True)
|
||||||
if cnode:
|
if cnode:
|
||||||
node_info = cnode[0]
|
node_info = cnode[0]
|
||||||
|
# filter out baremetal node
|
||||||
|
if node_info.hypervisor_type == 'ironic':
|
||||||
|
LOG.debug("filtering out baremetal node: %s", node_name)
|
||||||
|
continue
|
||||||
self.add_compute_node(node_info)
|
self.add_compute_node(node_info)
|
||||||
# node.servers is a list of server objects
|
# node.servers is a list of server objects
|
||||||
# New in nova version 2.53
|
# New in nova version 2.53
|
||||||
|
|||||||
@@ -173,3 +173,61 @@ class TestModelBuilder(base.BaseTestCase):
|
|||||||
'hosttwo', servers=True, detailed=True)
|
'hosttwo', servers=True, detailed=True)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
m_nova.return_value.get_compute_node_by_name.call_count, 2)
|
m_nova.return_value.get_compute_node_by_name.call_count, 2)
|
||||||
|
|
||||||
|
@mock.patch.object(nova_helper, 'NovaHelper')
|
||||||
|
def test_add_physical_layer_with_baremetal_node(self, m_nova):
|
||||||
|
""""""
|
||||||
|
|
||||||
|
m_nova.return_value.get_aggregate_list.return_value = \
|
||||||
|
[mock.Mock(id=1, name='example'),
|
||||||
|
mock.Mock(id=5, name='example', hosts=['hostone', 'hosttwo'])]
|
||||||
|
|
||||||
|
m_nova.return_value.get_service_list.return_value = \
|
||||||
|
[mock.Mock(zone='av_b', host='hostthree'),
|
||||||
|
mock.Mock(zone='av_a', host='hostone')]
|
||||||
|
|
||||||
|
compute_node = mock.Mock(
|
||||||
|
id='796fee99-65dd-4262-aa-fd2a1143faa6',
|
||||||
|
hypervisor_hostname='hostone',
|
||||||
|
hypervisor_type='QEMU',
|
||||||
|
state='TEST_STATE',
|
||||||
|
status='TEST_STATUS',
|
||||||
|
memory_mb=333,
|
||||||
|
free_disk_gb=222,
|
||||||
|
local_gb=111,
|
||||||
|
vcpus=4,
|
||||||
|
servers=[
|
||||||
|
{'name': 'fake_instance',
|
||||||
|
'uuid': 'ef500f7e-dac8-470f-960c-169486fce71b'}
|
||||||
|
],
|
||||||
|
service={'id': 123, 'host': 'hostone',
|
||||||
|
'disabled_reason': ''},
|
||||||
|
)
|
||||||
|
|
||||||
|
baremetal_node = mock.Mock(
|
||||||
|
id='5f2d1b3d-4099-4623-b9-05148aefd6cb',
|
||||||
|
hypervisor_hostname='hosttwo',
|
||||||
|
hypervisor_type='ironic',
|
||||||
|
state='TEST_STATE',
|
||||||
|
status='TEST_STATUS',
|
||||||
|
)
|
||||||
|
|
||||||
|
m_nova.return_value.get_compute_node_by_name.side_effect = [
|
||||||
|
[compute_node], [baremetal_node]]
|
||||||
|
|
||||||
|
m_scope = [{"compute": [
|
||||||
|
{"host_aggregates": [{"id": 5}]},
|
||||||
|
{"availability_zones": [{"name": "av_a"}]}
|
||||||
|
]}]
|
||||||
|
|
||||||
|
t_nova_cluster = nova.ModelBuilder(mock.Mock())
|
||||||
|
model = t_nova_cluster.execute(m_scope)
|
||||||
|
|
||||||
|
compute_nodes = model.get_all_compute_nodes()
|
||||||
|
self.assertEqual(1, len(compute_nodes))
|
||||||
|
m_nova.return_value.get_compute_node_by_name.assert_any_call(
|
||||||
|
'hostone', servers=True, detailed=True)
|
||||||
|
m_nova.return_value.get_compute_node_by_name.assert_any_call(
|
||||||
|
'hosttwo', servers=True, detailed=True)
|
||||||
|
self.assertEqual(
|
||||||
|
m_nova.return_value.get_compute_node_by_name.call_count, 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user