summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2017-09-21 11:38:51 -0400
committerTim Rozet <trozet@redhat.com>2017-09-22 15:00:30 +0000
commit8cafb288943dd0ad9a29c6e7b3d7b22710a10f89 (patch)
treeda79b8da24bd2a1686b4f87384c5f2adb5ca23c9
parentf9d02c076974168677bf5fdb02f26caf73924fb8 (diff)
Fixes removing inventory keys
Inventory keys that we want to delete were not being removed for instackenv.json. Also fixes unit tests. Change-Id: I7d6c752342db050d651953633f18e236f60334e3 Signed-off-by: Tim Rozet <trozet@redhat.com> (cherry picked from commit 17d5b541e93f5d88ff958372cdf0b0b184bdbc27)
-rw-r--r--apex/deploy.py2
-rw-r--r--apex/inventory/inventory.py20
-rw-r--r--apex/tests/config/inventory-virt-1-node.yaml13
-rw-r--r--apex/tests/config/inventory-virt.yaml25
-rw-r--r--apex/tests/test_apex_inventory.py33
5 files changed, 66 insertions, 27 deletions
diff --git a/apex/deploy.py b/apex/deploy.py
index 9ebc3f62..37429773 100644
--- a/apex/deploy.py
+++ b/apex/deploy.py
@@ -83,7 +83,7 @@ def build_vms(inventory, network_settings,
name, volume_path,
baremetal_interfaces=network_settings.enabled_network_list,
memory=node['memory'], cpus=node['cpu'],
- macs=[node['mac_address']],
+ macs=node['mac'],
template_dir=template_dir)
virt_utils.host_setup({name: node['pm_port']})
diff --git a/apex/inventory/inventory.py b/apex/inventory/inventory.py
index 71f8e528..3483e577 100644
--- a/apex/inventory/inventory.py
+++ b/apex/inventory/inventory.py
@@ -40,7 +40,7 @@ class Inventory(dict):
# move ipmi_* to pm_*
# make mac a list
- def munge_nodes(node):
+ def munge_node(node):
node['pm_addr'] = node['ipmi_ip']
node['pm_password'] = node['ipmi_pass']
node['pm_user'] = node['ipmi_user']
@@ -54,23 +54,21 @@ class Inventory(dict):
for i in ('ipmi_ip', 'ipmi_pass', 'ipmi_user', 'mac_address',
'disk_device'):
- if i == 'disk_device' and 'disk_device' in node.keys():
- self.root_device = node[i]
- else:
- continue
- del node[i]
+ if i in node.keys():
+ if i == 'disk_device':
+ self.root_device = node[i]
+ del node[i]
return node
-
- super().__init__({'nodes': list(map(munge_nodes, init_dict['nodes']))})
+ super().__init__({'nodes': list(map(munge_node, init_dict['nodes']))})
# verify number of nodes
- if ha and len(self['nodes']) < 5 and not virtual:
+ if ha and len(self['nodes']) < 5:
raise InventoryException('You must provide at least 5 '
- 'nodes for HA baremetal deployment')
+ 'nodes for HA deployment')
elif len(self['nodes']) < 2:
raise InventoryException('You must provide at least 2 nodes '
- 'for non-HA baremetal deployment')
+ 'for non-HA deployment')
if virtual:
self['host-ip'] = '192.168.122.1'
diff --git a/apex/tests/config/inventory-virt-1-node.yaml b/apex/tests/config/inventory-virt-1-node.yaml
new file mode 100644
index 00000000..3e4b8dc4
--- /dev/null
+++ b/apex/tests/config/inventory-virt-1-node.yaml
@@ -0,0 +1,13 @@
+nodes:
+ node0:
+ arch: x86_64
+ capabilities: profile:control
+ cpu: 4
+ disk: 41
+ ipmi_ip: 192.168.122.1
+ ipmi_pass: password
+ ipmi_user: admin
+ mac_address: 00:a8:58:29:f9:99
+ memory: 10240
+ pm_port: 6230
+ pm_type: pxe_ipmitool
diff --git a/apex/tests/config/inventory-virt.yaml b/apex/tests/config/inventory-virt.yaml
new file mode 100644
index 00000000..36184ea5
--- /dev/null
+++ b/apex/tests/config/inventory-virt.yaml
@@ -0,0 +1,25 @@
+nodes:
+ node0:
+ arch: x86_64
+ capabilities: profile:control
+ cpu: 4
+ disk: 41
+ ipmi_ip: 192.168.122.1
+ ipmi_pass: password
+ ipmi_user: admin
+ mac_address: 00:a8:58:29:f9:99
+ memory: 10240
+ pm_port: 6230
+ pm_type: pxe_ipmitool
+ node1:
+ arch: x86_64
+ capabilities: profile:compute
+ cpu: 4
+ disk: 41
+ ipmi_ip: 192.168.122.1
+ ipmi_pass: password
+ ipmi_user: admin
+ mac_address: 00:9d:c8:10:d9:64
+ memory: 8192
+ pm_port: 6231
+ pm_type: pxe_ipmitool
diff --git a/apex/tests/test_apex_inventory.py b/apex/tests/test_apex_inventory.py
index cca8068b..87e7d50b 100644
--- a/apex/tests/test_apex_inventory.py
+++ b/apex/tests/test_apex_inventory.py
@@ -16,7 +16,10 @@ from nose.tools import (
from apex import Inventory
from apex.inventory.inventory import InventoryException
-from apex.tests.constants import TEST_CONFIG_DIR
+from apex.tests.constants import (
+ TEST_CONFIG_DIR,
+ TEST_DUMMY_CONFIG
+)
inventory_files = ('intel_pod2_settings.yaml',
'nokia_pod1_settings.yaml',
@@ -40,26 +43,26 @@ class TestInventory:
def teardown(self):
"""This method is run once after _each_ test method is executed"""
- def test_init(self):
+ def test_inventory_baremetal(self):
for f in inventory_files:
i = Inventory(os.path.join(files_dir, f))
assert_equal(i.dump_instackenv_json(), None)
- # test virtual
- i = Inventory(i, virtual=True)
- assert_equal(i.dump_instackenv_json(), None)
+ def test_inventory_invalid_ha_count(self):
+ assert_raises(InventoryException, Inventory,
+ os.path.join(TEST_DUMMY_CONFIG, 'inventory-virt.yaml'),
+ virtual=True, ha=True)
- # Remove nodes to violate HA node count
- while len(i['nodes']) >= 5:
- i['nodes'].pop()
- assert_raises(InventoryException,
- Inventory, i)
+ def test_inventory_invalid_noha_count(self):
+ assert_raises(InventoryException, Inventory,
+ os.path.join(TEST_DUMMY_CONFIG,
+ 'inventory-virt-1-node.yaml'),
+ virtual=True, ha=False)
- # Remove nodes to violate non-HA node count
- while len(i['nodes']) >= 2:
- i['nodes'].pop()
- assert_raises(InventoryException,
- Inventory, i, ha=False)
+ def test_inventory_virtual(self):
+ i = Inventory(os.path.join(TEST_DUMMY_CONFIG, 'inventory-virt.yaml'),
+ virtual=True, ha=False)
+ assert_equal(i.dump_instackenv_json(), None)
def test_exception(self):
e = InventoryException("test")