Create test nodes for test_baremetal_nodes

This test currently relies on pre-existing resources and races if run
in parallel to other baremetal tests.  This adds creation of 3 test
nodes directly in Ironic to be tested via the Nova API extension.

This also tags said test with the 'baremetal' test attribute.

Closes-bug: #1425258

Change-Id: I4dbd37bdb2019b6eb0140d46a605d5c8392323f4
This commit is contained in:
Adam Gandelman 2015-03-09 14:41:36 -07:00
parent 2b7373dbb1
commit 118cd39c61
2 changed files with 21 additions and 9 deletions

View File

@ -31,14 +31,26 @@ class BaremetalNodesAdminTestJSON(base.BaseV2ComputeAdminTest):
skip_msg = ('%s skipped as Ironic is not available' % cls.__name__)
raise cls.skipException(skip_msg)
cls.client = cls.os_adm.baremetal_nodes_client
cls.ironic_client = cls.os_adm.baremetal_client
@test.attr(type='smoke')
@test.attr(type=['smoke', 'baremetal'])
@test.idempotent_id('e475aa6e-416d-4fa4-b3af-28d5e84250fb')
def test_list_baremetal_nodes(self):
# List all baremetal nodes.
baremetal_nodes = self.client.list_baremetal_nodes()
self.assertNotEmpty(baremetal_nodes, "No baremetal nodes found.")
def test_list_get_baremetal_nodes(self):
# Create some test nodes in Ironic directly
test_nodes = []
for i in range(0, 3):
_, node = self.ironic_client.create_node()
test_nodes.append(node)
self.addCleanup(self.ironic_client.delete_node, node['uuid'])
for node in baremetal_nodes:
baremetal_node = self.client.get_baremetal_node(node['id'])
self.assertEqual(node['id'], baremetal_node['id'])
# List all baremetal nodes and ensure our created test nodes are
# listed
bm_node_ids = set([n['id'] for n in
self.client.list_baremetal_nodes()])
test_node_ids = set([n['uuid'] for n in test_nodes])
self.assertTrue(test_node_ids.issubset(bm_node_ids))
# Test getting each individually
for node in test_nodes:
baremetal_node = self.client.get_baremetal_node(node['uuid'])
self.assertEqual(node['uuid'], baremetal_node['id'])

View File

@ -131,7 +131,7 @@ class BaremetalClientJSON(base.BaremetalClient):
return self._show_request('drivers', driver_name)
@base.handle_errors
def create_node(self, chassis_id, **kwargs):
def create_node(self, chassis_id=None, **kwargs):
"""
Create a baremetal node with the specified parameters.