Merge "register-nodes: add support for node capabilites"

This commit is contained in:
Jenkins 2015-07-23 00:48:46 +00:00 committed by Gerrit Code Review
commit 09c3ec1069
2 changed files with 18 additions and 4 deletions

View File

@ -112,6 +112,10 @@ def register_ironic_node(service_host, node, client=None, blocking=True):
"cpu_arch": node["arch"]}
driver_info = _extract_driver_info(node)
if 'capabilities' in node:
properties.update({"capabilities":
six.text_type(node.get('capabilities'))})
create_map = {"driver": node["pm_type"],
"properties": properties,
"driver_info": driver_info}
@ -230,6 +234,9 @@ def _update_or_register_ironic_node(service_host, node, node_map, client=None,
if "name" in node:
massage_map.update({'name': '/name'})
if "capabilities" in node:
massage_map.update({'capabilities': '/properties/capabilities'})
if node_uuid:
ironic_node = client.node.get(node_uuid)
else:

View File

@ -29,7 +29,8 @@ class NodesTest(base.TestCase):
def _get_node(self):
return {'cpu': '1', 'memory': '2048', 'disk': '30', 'arch': 'amd64',
'mac': ['aaa'], 'pm_addr': 'foo.bar', 'pm_user': 'test',
'pm_password': 'random', 'pm_type': 'pxe_ssh', 'name': 'node1'}
'pm_password': 'random', 'pm_type': 'pxe_ssh', 'name': 'node1',
'capabilities': 'num_nics:6'}
@mock.patch('os_cloud_config.nodes.using_ironic', return_value=False)
def test_register_all_nodes_nova_bm(self, ironic_mock):
@ -218,7 +219,8 @@ class NodesTest(base.TestCase):
node_properties = {"cpus": "1",
"memory_mb": "2048",
"local_gb": "30",
"cpu_arch": "amd64"}
"cpu_arch": "amd64",
"capabilities": "num_nics:6"}
ironic = mock.MagicMock()
nodes.register_all_nodes('servicehost', node_list, client=ironic)
pxe_node_driver_info = {"ssh_address": "foo.bar",
@ -243,7 +245,8 @@ class NodesTest(base.TestCase):
node_properties = {"cpus": "1",
"memory_mb": "2048",
"local_gb": "30",
"cpu_arch": "amd64"}
"cpu_arch": "amd64",
"capabilities": "num_nics:6"}
ironic = mock.MagicMock()
glance = mock.MagicMock()
image = collections.namedtuple('image', ['id'])
@ -308,6 +311,7 @@ class NodesTest(base.TestCase):
{'path': '/properties/local_gb', 'value': '30'},
{'path': '/properties/cpu_arch', 'value': 'amd64'},
{'path': '/properties/cpus', 'value': '1'},
{'path': '/properties/capabilities', 'value': 'num_nics:6'},
{'path': '/driver_info/ssh_username', 'value': 'test'}]
for key in update_patch:
key['op'] = 'replace'
@ -355,6 +359,7 @@ class NodesTest(base.TestCase):
{'path': '/properties/local_gb', 'value': '30'},
{'path': '/properties/cpu_arch', 'value': 'amd64'},
{'path': '/properties/cpus', 'value': '1'},
{'path': '/properties/capabilities', 'value': 'num_nics:6'},
{'path': '/driver_info/ssh_username', 'value': 'test'}]
for key in update_patch:
key['op'] = 'replace'
@ -382,7 +387,8 @@ class NodesTest(base.TestCase):
node_properties = {"cpus": "1",
"memory_mb": "2048",
"local_gb": "30",
"cpu_arch": "amd64"}
"cpu_arch": "amd64",
"capabilities": "num_nics:6"}
node = self._get_node()
node['cpu'] = 1
node['memory'] = 2048
@ -411,6 +417,7 @@ class NodesTest(base.TestCase):
{'path': '/properties/local_gb', 'value': '30'},
{'path': '/properties/cpu_arch', 'value': 'amd64'},
{'path': '/properties/cpus', 'value': '1'},
{'path': '/properties/capabilities', 'value': 'num_nics:6'},
{'path': '/driver_info/ssh_username', 'value': 'test'}]
for key in update_patch:
key['op'] = 'replace'