summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-11-04 07:36:09 +0000
committerGerrit Code Review <review@openstack.org>2013-11-04 07:36:09 +0000
commit657bb1f6bc4d3c03a2df3a7b15beea76652298c7 (patch)
tree1faf2dd2de42f45b476952da2c54f94fd3523624
parent1af5a9809864b67c43f1d5a688f82e2bdb2e067e (diff)
parent10f428eb765b894f4c2403f8b5def8f4b3a5df5d (diff)
downloadtuskar-ui-657bb1f6bc4d3c03a2df3a7b15beea76652298c7.tar.gz
Merge "Rename "node" variables and methods to tuskar_node or baremetal_node"
-rw-r--r--tuskar_ui/api.py116
-rw-r--r--tuskar_ui/infrastructure/resource_management/nodes/tables.py15
-rw-r--r--tuskar_ui/infrastructure/resource_management/nodes/tabs.py6
-rw-r--r--tuskar_ui/infrastructure/resource_management/nodes/tests.py63
-rw-r--r--tuskar_ui/infrastructure/resource_management/nodes/views.py29
-rw-r--r--tuskar_ui/infrastructure/resource_management/racks/tabs.py6
-rw-r--r--tuskar_ui/infrastructure/resource_management/racks/tests.py54
-rw-r--r--tuskar_ui/infrastructure/resource_management/racks/views.py16
-rw-r--r--tuskar_ui/infrastructure/resource_management/racks/workflows.py78
-rw-r--r--tuskar_ui/infrastructure/resource_management/resource_classes/tests.py5
-rw-r--r--tuskar_ui/infrastructure/resource_management/tabs.py7
-rw-r--r--tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html84
-rw-r--r--tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/detail.html6
-rw-r--r--tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html4
-rw-r--r--tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_index_table.html2
-rw-r--r--tuskar_ui/infrastructure/resource_management/templates/resource_management/resource_classes/_detail_overview.html2
-rw-r--r--tuskar_ui/infrastructure/resource_management/tests.py27
-rw-r--r--tuskar_ui/test/api_tests/tuskar_tests.py130
-rw-r--r--tuskar_ui/test/test_data/tuskar_data.py65
19 files changed, 364 insertions, 351 deletions
diff --git a/tuskar_ui/api.py b/tuskar_ui/api.py
index 2f1aef91..5d981a4f 100644
--- a/tuskar_ui/api.py
+++ b/tuskar_ui/api.py
@@ -172,47 +172,49 @@ class BaremetalNode(StringIdAPIResourceWrapper):
terminal_port = kwargs['terminal_port']
if terminal_port == '':
terminal_port = None
- node = baremetalclient(request).create(kwargs['service_host'],
- kwargs['cpus'],
- kwargs['memory_mb'],
- kwargs['local_gb'],
- kwargs['prov_mac_address'],
- kwargs['pm_address'] or None,
- kwargs['pm_user'] or None,
- kwargs['pm_password'],
- terminal_port)
- return cls(node)
+ baremetal_node = baremetalclient(request).create(
+ kwargs['service_host'],
+ kwargs['cpus'],
+ kwargs['memory_mb'],
+ kwargs['local_gb'],
+ kwargs['prov_mac_address'],
+ kwargs['pm_address'] or None,
+ kwargs['pm_user'] or None,
+ kwargs['pm_password'],
+ terminal_port)
+ return cls(baremetal_node)
@classmethod
- def get(cls, request, node_id):
- node = cls(baremetalclient(request).get(node_id))
- node.request = request
+ def get(cls, request, baremetal_node_id):
+ baremetal_node = cls(baremetalclient(request).get(baremetal_node_id))
+ baremetal_node.request = request
try:
# Nova instance info will be added to baremetal node attributes
nova_instance = nova.server_get(request,
- node.instance_uuid)
+ baremetal_node.instance_uuid)
except Exception:
nova_instance = None
LOG.debug("Couldn't obtain nova.server_get instance for "
- "baremetal node %s" % node_id)
+ "baremetal node %s" % baremetal_node_id)
if nova_instance:
# If baremetal is provisioned, there is a nova instance.
addresses = nova_instance._apiresource.addresses.get('ctlplane')
if addresses:
- node.ip_address_other = (", "
- .join([addr['addr'] for addr in addresses]))
- node.status = (nova_instance._apiresource.
- _info['OS-EXT-STS:vm_state'])
- node.power_management = ""
- if node.pm_user:
- node.power_management = node.pm_user + "/********"
+ baremetal_node.ip_address_other = ", ".join(
+ [addr['addr'] for addr in addresses])
+ baremetal_node.status = nova_instance._apiresource._info[
+ 'OS-EXT-STS:vm_state']
+ baremetal_node.power_management = ""
+ if baremetal_node.pm_user:
+ baremetal_node.power_management = (
+ baremetal_node.pm_user + "/********")
else:
# If baremetal is unprovisioned, there is no nova instance.
- node.status = 'unprovisioned'
+ baremetal_node.status = 'unprovisioned'
# Returning baremetal node containing nova instance info
- return node
+ return baremetal_node
@classmethod
def list(cls, request):
@@ -222,10 +224,12 @@ class BaremetalNode(StringIdAPIResourceWrapper):
@classmethod
def list_unracked(cls, request):
try:
- racked_node_ids = [node.nova_baremetal_node_id
- for node in Node.list(request)]
- return [bn for bn in BaremetalNode.list(request)
- if bn.id not in racked_node_ids]
+ racked_baremetal_node_ids = [
+ tuskar_node.nova_baremetal_node_id
+ for tuskar_node in TuskarNode.list(request)]
+ return [baremetal_node
+ for baremetal_node in BaremetalNode.list(request)
+ if baremetal_node.id not in racked_baremetal_node_ids]
except requests.ConnectionError:
return []
@@ -261,18 +265,16 @@ class BaremetalNode(StringIdAPIResourceWrapper):
return []
-class Node(StringIdAPIResourceWrapper):
- """
- Wrapper for the Node object returned by the
- dummy model.
- """
+class TuskarNode(StringIdAPIResourceWrapper):
+ """Wrapper for the TuskarNode object returned by the dummy model."""
+
_attrs = ['id', 'nova_baremetal_node_id']
@classmethod
- def get(cls, request, node_id):
- node = cls(tuskarclient(request).nodes.get(node_id))
- node.request = request
- return node
+ def get(cls, request, tuskar_node_id):
+ tuskar_node = cls(tuskarclient(request).nodes.get(tuskar_node_id))
+ tuskar_node.request = request
+ return tuskar_node
@classmethod
def list(cls, request):
@@ -370,28 +372,32 @@ class Rack(StringIdAPIResourceWrapper):
"""Wrapper for the Rack object returned by the
dummy model.
"""
+
_attrs = ['id', 'name', 'location', 'subnet', 'nodes', 'state',
'capacities']
@classmethod
def create(cls, request, **kwargs):
- nodes = kwargs.get('nodes', [])
+ baremetal_node_ids = kwargs.get('baremetal_nodes', [])
## FIXME: set nodes here
rack = tuskarclient(request).racks.create(
name=kwargs['name'],
location=kwargs['location'],
subnet=kwargs['subnet'],
- nodes=nodes,
+ nodes=baremetal_node_ids,
resource_class={'id': kwargs['resource_class_id']},
slots=0)
return cls(rack)
@classmethod
def update(cls, request, rack_id, rack_kwargs):
- ## FIXME: set nodes here
rack_args = copy.copy(rack_kwargs)
# remove rack_id from kwargs (othervise it is duplicated)
rack_args.pop('rack_id', None)
+ ## FIXME: set nodes here
+ baremetal_node_ids = rack_args.pop('baremetal_nodes', None)
+ if baremetal_node_ids:
+ rack_args['nodes'] = baremetal_node_ids
# correct data mapping for resource_class
if 'resource_class_id' in rack_args:
rack_args['resource_class'] = {
@@ -421,20 +427,19 @@ class Rack(StringIdAPIResourceWrapper):
tuskarclient(request).racks.delete(rack_id)
@property
- def node_ids(self):
- """List of unicode ids of nodes added to rack."""
- return [unicode(node['id']) for node in self.nodes]
+ def tuskar_node_ids(self):
+ """List of unicode ids of tuskar nodes added to rack."""
+ return [unicode(tuskar_node['id']) for tuskar_node in self.nodes]
@cached_property
- def list_nodes(self):
- return [Node.get(self.request, node['id']) for node in self.nodes]
+ def list_tuskar_nodes(self):
+ return [TuskarNode.get(self.request, tuskar_node['id'])
+ for tuskar_node in self.nodes]
- @property
+ @cached_property
def list_baremetal_nodes(self):
- if not hasattr(self, '_baremetal_nodes'):
- self._baremetal_nodes = [node.nova_baremetal_node
- for node in self.list_nodes]
- return self._baremetal_nodes
+ return [tuskar_node.nova_baremetal_node
+ for tuskar_node in self.list_tuskar_nodes]
@property
def nodes_count(self):
@@ -479,7 +484,8 @@ class Rack(StringIdAPIResourceWrapper):
def aggregated_alerts(self):
# FIXME: for now return only list of nodes (particular alerts are not
# used)
- return [node for node in self.list_nodes if node.alerts]
+ return [tuskar_node for tuskar_node in self.list_tuskar_nodes
+ if tuskar_node.alerts]
@cached_property
def list_flavors(self):
@@ -616,13 +622,13 @@ class ResourceClass(StringIdAPIResourceWrapper):
str(rack.resource_class_id) == self.id]
@cached_property
- def nodes(self):
- return [n for n in Node.list(self.request)
- if n.rack_id in self.racks_ids]
+ def tuskar_nodes(self):
+ return [tuskar_node for tuskar_node in TuskarNode.list(self.request)
+ if tuskar_node.rack_id in self.racks_ids]
@property
def nodes_count(self):
- return len(self.nodes)
+ return len(self.tuskar_nodes)
@property
def flavors_ids(self):
diff --git a/tuskar_ui/infrastructure/resource_management/nodes/tables.py b/tuskar_ui/infrastructure/resource_management/nodes/tables.py
index 992ea23e..5951bf4c 100644
--- a/tuskar_ui/infrastructure/resource_management/nodes/tables.py
+++ b/tuskar_ui/infrastructure/resource_management/nodes/tables.py
@@ -29,12 +29,14 @@ class DeleteNodes(tables.DeleteAction):
def delete(self, request, obj_id):
try:
- node = tuskar.Node.get(request, obj_id)
- rack = node.rack
- nodes = [{'id': node_id}
- for node_id in rack.node_ids
- if node_id != obj_id]
- tuskar.Rack.update(request, rack.id, {'nodes': nodes})
+ tuskar_node = tuskar.TuskarNode.get(request, obj_id)
+ rack = tuskar_node.rack
+ tuskar_node_ids = [{'id': tuskar_node_id}
+ for tuskar_node_id in rack.tuskar_node_ids
+ if tuskar_node_id != obj_id]
+ tuskar.Rack.update(request, rack.id, {
+ 'baremetal_nodes': tuskar_node_ids,
+ })
except Exception:
exceptions.handle(request, _("Error deleting node."))
return False
@@ -44,6 +46,7 @@ class NodesFilterAction(tables.FilterAction):
def filter(self, table, nodes, filter_string):
""" Naive case-insensitive search. """
q = filter_string.lower()
+ # This is used both for Tuskar and Baremetal nodes.
return [node for node in nodes if q in node.name.lower()]
diff --git a/tuskar_ui/infrastructure/resource_management/nodes/tabs.py b/tuskar_ui/infrastructure/resource_management/nodes/tabs.py
index 55de7290..8b48a772 100644
--- a/tuskar_ui/infrastructure/resource_management/nodes/tabs.py
+++ b/tuskar_ui/infrastructure/resource_management/nodes/tabs.py
@@ -27,16 +27,16 @@ class OverviewTab(tabs.Tab):
preload = False
def get_context_data(self, request):
- node = self.tab_group.kwargs['node']
+ tuskar_node = self.tab_group.kwargs['tuskar_node']
try:
- running_instances = len(node.running_virtual_machines)
+ running_instances = len(tuskar_node.running_virtual_machines)
except requests.exceptions.ConnectionError:
running_instances = _("Unknown")
messages.warning(
request,
_("Can't retrieve the running instances from the overcloud."))
return {
- 'node': node,
+ 'tuskar_node': tuskar_node,
'running_instances': running_instances,
}
diff --git a/tuskar_ui/infrastructure/resource_management/nodes/tests.py b/tuskar_ui/infrastructure/resource_management/nodes/tests.py
index b34a1b22..f0d09851 100644
--- a/tuskar_ui/infrastructure/resource_management/nodes/tests.py
+++ b/tuskar_ui/infrastructure/resource_management/nodes/tests.py
@@ -27,10 +27,10 @@ class NodeViewTests(test.BaseAdminViewTests):
@test.create_stubs({tuskar.BaremetalNode: ('list_unracked',), })
def test_unracked(self):
- unracked_nodes = self.baremetal_unracked_nodes.list()
+ unracked_baremetal_nodes = self.baremetal_unracked_nodes.list()
tuskar.BaremetalNode.list_unracked(
- mox.IsA(http.HttpRequest)).AndReturn(unracked_nodes)
+ mox.IsA(http.HttpRequest)).AndReturn(unracked_baremetal_nodes)
self.mox.ReplayAll()
res = self.client.get(self.unracked_page)
@@ -39,55 +39,52 @@ class NodeViewTests(test.BaseAdminViewTests):
'infrastructure/resource_management/nodes/unracked.html')
unracked_nodes_table = res.context['unracked_nodes_table'].data
- self.assertItemsEqual(unracked_nodes_table, unracked_nodes)
+ self.assertItemsEqual(unracked_nodes_table, unracked_baremetal_nodes)
- @test.create_stubs({tuskar.Node: ('get', 'running_virtual_machines',
- 'list_flavors'),
- tuskar.Rack: ('get',),
- tuskar.BaremetalNode: ('get',)})
+ @test.create_stubs({
+ tuskar.TuskarNode: ('get', 'running_virtual_machines', 'list_flavors'),
+ tuskar.Rack: ('get',),
+ tuskar.BaremetalNode: ('get',),
+ })
def test_detail_node(self):
- node = self.tuskar_nodes.first()
- node.request = self.request
+ tuskar_node = self.tuskar_nodes.first()
+ tuskar_node.request = self.request
rack = self.tuskar_racks.first()
- bm_node = self.baremetal_nodes.first()
+ baremetal_node = self.baremetal_nodes.first()
- tuskar.Node.get(mox.IsA(http.HttpRequest),
- node.id).AndReturn(node)
+ tuskar.TuskarNode.get(mox.IsA(http.HttpRequest),
+ tuskar_node.id).AndReturn(tuskar_node)
tuskar.Rack.get(mox.IsA(http.HttpRequest),
rack.id).AndReturn(rack)
tuskar.BaremetalNode.get(mox.IsA(http.HttpRequest),
- bm_node.id).AndReturn(bm_node)
+ baremetal_node.id).AndReturn(baremetal_node)
self.mox.ReplayAll()
- tuskar.Node.running_virtual_machines = []
- tuskar.Node.list_flavors = []
+ tuskar.TuskarNode.running_virtual_machines = []
+ tuskar.TuskarNode.list_flavors = []
- url = urlresolvers.reverse('horizon:infrastructure:'
- 'resource_management:nodes:'
- 'detail',
- args=[node.id])
+ url = urlresolvers.reverse(
+ 'horizon:infrastructure:resource_management:nodes:detail',
+ args=[tuskar_node.id])
res = self.client.get(url)
- self.assertTemplateUsed(res,
- 'infrastructure/resource_management/'
- 'nodes/detail.html')
+ self.assertTemplateUsed(
+ res, 'infrastructure/resource_management/nodes/detail.html')
- @test.create_stubs({tuskar.Node: ('get',)})
+ @test.create_stubs({tuskar.TuskarNode: ('get',)})
def test_detail_node_exception(self):
- node = self.tuskar_nodes.first()
+ tuskar_node = self.tuskar_nodes.first()
- tuskar.Node.get(
- mox.IsA(http.HttpRequest),
- node.id).AndRaise(self.exceptions.tuskar)
+ tuskar.TuskarNode.get(mox.IsA(http.HttpRequest),
+ tuskar_node.id).AndRaise(self.exceptions.tuskar)
self.mox.ReplayAll()
- url = urlresolvers.reverse('horizon:infrastructure:'
- 'resource_management:nodes:'
- 'detail',
- args=[node.id])
+ url = urlresolvers.reverse(
+ 'horizon:infrastructure:resource_management:nodes:detail',
+ args=[tuskar_node.id])
res = self.client.get(url)
self.assertRedirectsNoFollow(
res,
- urlresolvers.reverse('horizon:infrastructure:resource_management:'
- 'index'))
+ urlresolvers.reverse(
+ 'horizon:infrastructure:resource_management:index'))
diff --git a/tuskar_ui/infrastructure/resource_management/nodes/views.py b/tuskar_ui/infrastructure/resource_management/nodes/views.py
index 68a7f1a3..896abfda 100644
--- a/tuskar_ui/infrastructure/resource_management/nodes/views.py
+++ b/tuskar_ui/infrastructure/resource_management/nodes/views.py
@@ -30,12 +30,12 @@ class UnrackedView(horizon_tables.DataTableView):
def get_data(self):
try:
- nodes = tuskar.BaremetalNode.list_unracked(self.request)
+ baremetal_nodes = tuskar.BaremetalNode.list_unracked(self.request)
except Exception:
- nodes = []
+ baremetal_nodes = []
exceptions.handle(self.request,
- _('Unable to retrieve nodes.'))
- return nodes
+ _('Unable to retrieve baremetal nodes.'))
+ return baremetal_nodes
class DetailView(horizon_tabs.TabView):
@@ -44,26 +44,25 @@ class DetailView(horizon_tabs.TabView):
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
- context["node"] = self.get_data()
+ context["tuskar_node"] = self.get_data()
return context
def get_data(self):
- if not hasattr(self, "_node"):
+ if not hasattr(self, "_tuskar_node"):
+ tuskar_node_id = self.kwargs['node_id']
try:
- node_id = self.kwargs['node_id']
- node = tuskar.Node.get(self.request, node_id)
+ tuskar_node = tuskar.TuskarNode.get(self.request,
+ tuskar_node_id)
except Exception:
redirect = urlresolvers.reverse(
'horizon:infrastructure:resource_management:index')
exceptions.handle(self.request,
_('Unable to retrieve details for '
- 'node "%s".')
- % node_id,
+ 'node "%s".') % tuskar_node_id,
redirect=redirect)
- self._node = node
- return self._node
+ self._tuskar_node = tuskar_node
+ return self._tuskar_node
def get_tabs(self, request, *args, **kwargs):
- node = self.get_data()
- return self.tab_group_class(request, node=node,
- **kwargs)
+ tuskar_node = self.get_data()
+ return self.tab_group_class(request, tuskar_node=tuskar_node, **kwargs)
diff --git a/tuskar_ui/infrastructure/resource_management/racks/tabs.py b/tuskar_ui/infrastructure/resource_management/racks/tabs.py
index ccf2aab1..a0569e22 100644
--- a/tuskar_ui/infrastructure/resource_management/racks/tabs.py
+++ b/tuskar_ui/infrastructure/resource_management/racks/tabs.py
@@ -39,12 +39,12 @@ class NodesTab(tabs.TableTab):
def get_nodes_table_data(self):
try:
rack = self.tab_group.kwargs['rack']
- nodes = rack.list_nodes
+ tuskar_nodes = rack.list_tuskar_nodes
except Exception:
- nodes = []
+ tuskar_nodes = []
exceptions.handle(self.tab_group.request,
_('Unable to retrieve node list.'))
- return nodes
+ return tuskar_nodes
class RackDetailTabs(tabs.TabGroup):
diff --git a/tuskar_ui/infrastructure/resource_management/racks/tests.py b/tuskar_ui/infrastructure/resource_management/racks/tests.py
index 899c49db..c66b8d7b 100644
--- a/tuskar_ui/infrastructure/resource_management/racks/tests.py
+++ b/tuskar_ui/infrastructure/resource_management/racks/tests.py
@@ -53,7 +53,7 @@ class RackViewTests(test.BaseAdminViewTests):
tuskar.ResourceClass: ('list',),
tuskar.BaremetalNode: ('create',)})
def test_create_rack_post(self):
- node = self.baremetal_nodes.first()
+ baremetal_node = self.baremetal_nodes.first()
tuskar.Rack.list(
mox.IsA(http.HttpRequest)).AndReturn(
@@ -68,14 +68,14 @@ class RackViewTests(test.BaseAdminViewTests):
pm_address=u'',
pm_user=u'',
pm_password=u'',
- terminal_port=None).AndReturn(node)
+ terminal_port=None).AndReturn(baremetal_node)
tuskar.Rack.create(
mox.IsA(http.HttpRequest),
name='New Rack',
resource_class_id=u'1',
location='Tokyo',
subnet='1.2.3.4/24',
- nodes=[{'id': '11'}]).AndReturn(None)
+ baremetal_nodes=[{'id': '11'}]).AndReturn(None)
tuskar.ResourceClass.list(
mox.IsA(http.HttpRequest)).AndReturn(
self.tuskar_resource_classes.list())
@@ -101,14 +101,14 @@ class RackViewTests(test.BaseAdminViewTests):
resp = self.client.post(url, data)
self.assertRedirectsNoFollow(resp, self.index_page_racks_tab)
- @test.create_stubs({tuskar.Rack: ('get', 'list_nodes'),
+ @test.create_stubs({tuskar.Rack: ('get', 'list_tuskar_nodes'),
tuskar.ResourceClass: ('list',)})
def test_edit_rack_get(self):
rack = self.tuskar_racks.first()
tuskar.Rack.get(
mox.IsA(http.HttpRequest), rack.id).AndReturn(rack)
- tuskar.Rack.list_nodes = []
+ tuskar.Rack.list_tuskar_nodes = []
tuskar.Rack.get(mox.IsA(http.HttpRequest), rack.id).AndReturn(rack)
tuskar.ResourceClass.list(
mox.IsA(http.HttpRequest)).AndReturn(
@@ -122,8 +122,10 @@ class RackViewTests(test.BaseAdminViewTests):
self.assertEqual(res.status_code, 200)
self.assertTemplateUsed(res, 'infrastructure/_workflow_base.html')
- @test.create_stubs({tuskar.Rack: ('get', 'list', 'update', 'list_nodes'),
- tuskar.ResourceClass: ('list',)})
+ @test.create_stubs({
+ tuskar.Rack: ('get', 'list', 'update', 'list_tuskar_nodes'),
+ tuskar.ResourceClass: ('list',),
+ })
def test_edit_rack_post(self):
rack = self.tuskar_racks.first()
@@ -133,7 +135,7 @@ class RackViewTests(test.BaseAdminViewTests):
'rack_id': u'1',
'location': 'New Location',
'subnet': '127.10.10.0/24',
- 'nodes': [],
+ 'baremetal_nodes': [],
}
data = {
@@ -149,7 +151,7 @@ class RackViewTests(test.BaseAdminViewTests):
tuskar.Rack.get(
mox.IsA(http.HttpRequest), rack.id).AndReturn(rack)
- tuskar.Rack.list_nodes = []
+ tuskar.Rack.list_tuskar_nodes = []
tuskar.Rack.get(
mox.IsA(http.HttpRequest), rack.id).AndReturn(rack)
tuskar.Rack.list(
@@ -287,8 +289,10 @@ class RackViewTests(test.BaseAdminViewTests):
self.assertMessageCount(success=1)
self.assertMessageCount(error=0)
- @test.create_stubs({tuskar.Rack: ('get', 'list_nodes', 'list_flavors'),
- tuskar.ResourceClass: ('get',)})
+ @test.create_stubs({
+ tuskar.Rack: ('get', 'list_tuskar_nodes', 'list_flavors'),
+ tuskar.ResourceClass: ('get',),
+ })
def test_detail_rack(self):
rack = self.tuskar_racks.first()
rack.request = self.request
@@ -300,7 +304,7 @@ class RackViewTests(test.BaseAdminViewTests):
resource_class.id).AndReturn(resource_class)
self.mox.ReplayAll()
- tuskar.Rack.list_nodes = []
+ tuskar.Rack.list_tuskar_nodes = []
tuskar.Rack.list_flavors = []
url = urlresolvers.reverse('horizon:infrastructure:'
@@ -368,10 +372,10 @@ class RackViewTests(test.BaseAdminViewTests):
self.assertEquals(res.content, state_json)
@test.create_stubs({
- tuskar.Rack: ('get', 'list_nodes', 'list_flavors', 'update',
- 'node_ids'),
+ tuskar.Rack: ('get', 'list_tuskar_nodes', 'list_flavors', 'update',
+ 'tuskar_node_ids'),
tuskar.ResourceClass: ('get',),
- tuskar.Node: ('get',),
+ tuskar.TuskarNode: ('get',),
tuskar.BaremetalNode: ('get',),
})
def test_node_delete(self):
@@ -381,19 +385,21 @@ class RackViewTests(test.BaseAdminViewTests):
baremetal_node = baremetal_nodes[0]
tuskar_node = self.tuskar_nodes.first()
- tuskar.Rack.list_nodes = baremetal_nodes
- tuskar.Rack.node_ids = [node.id for node in baremetal_nodes]
+ # FIXME: evidently something is wrong here
+ tuskar.Rack.list_tuskar_nodes = baremetal_nodes
+ tuskar.Rack.tuskar_node_ids = [bm_node.id
+ for bm_node in baremetal_nodes]
tuskar.Rack.list_flavors = []
tuskar.Rack.get(mox.IsA(http.HttpRequest), rack.id).AndReturn(rack)
- tuskar.Node.get(mox.IsA(http.HttpRequest),
- baremetal_node.id).AndReturn(tuskar_node)
+ tuskar.TuskarNode.get(mox.IsA(http.HttpRequest),
+ baremetal_node.id).AndReturn(tuskar_node)
tuskar.Rack.get(None, rack.id).AndReturn(rack) # called by node.rack
- tuskar.Rack.update(mox.IsA(http.HttpRequest), rack.id,
- {'nodes': [{'id': node_id}
- for node_id in tuskar.Rack.node_ids
- if node_id != baremetal_node.id]}
- ).AndReturn(rack)
+ tuskar.Rack.update(mox.IsA(http.HttpRequest), rack.id, {
+ 'baremetal_nodes': [{'id': node_id}
+ for node_id in tuskar.Rack.tuskar_node_ids
+ if node_id != baremetal_node.id],
+ }).AndReturn(rack)
self.mox.ReplayAll()
url = urlresolvers.reverse(
diff --git a/tuskar_ui/infrastructure/resource_management/racks/views.py b/tuskar_ui/infrastructure/resource_management/racks/views.py
index 1a557349..d28dbb82 100644
--- a/tuskar_ui/infrastructure/resource_management/racks/views.py
+++ b/tuskar_ui/infrastructure/resource_management/racks/views.py
@@ -65,7 +65,7 @@ class EditView(tuskar_workflows.WorkflowView):
def get_initial(self):
obj = tuskar.Rack.get(self.request, self.kwargs['rack_id'])
- # mac_str = "\n".join([x.mac_address for x in obj.list_nodes])
+ # mac_str = "\n".join(x.mac_address for x in obj.list_tuskar_nodes)
return {'name': obj.name, 'resource_class_id': obj.resource_class_id,
'location': obj.location, 'subnet': obj.subnet,
'state': obj.state, 'rack_id': self.kwargs['rack_id']}
@@ -182,13 +182,12 @@ def top_communicating(request, rack_id=None):
"Low level of communication"]
rack = tuskar.Rack.get(request, rack_id)
- for node in rack.nodes:
+ for tuskar_node_id in rack.tuskar_node_ids:
status = random.randint(0, 3)
percentage = random.randint(0, 100)
tooltip = ("<p>Node: <strong>{0}</strong></p><p>{1}</p>").format(
- node['id'],
- statuses[status])
+ tuskar_node_id, statuses[status])
data.append({'tooltip': tooltip,
'status': statuses[status],
@@ -219,21 +218,20 @@ def node_health(request, rack_id=None):
rack = tuskar.Rack.get(request, rack_id)
- for node in rack.nodes:
+ for tuskar_node_id in rack.tuskar_node_ids:
rand_index = random.randint(0, 2)
percentage = (2 - rand_index) * 50
color = colors[rand_index]
tooltip = ("<p>Node: <strong>{0}</strong></p><p>{1}</p>").format(
- node['id'],
- statuses[rand_index])
+ tuskar_node_id, statuses[rand_index])
data.append({'tooltip': tooltip,
'color': color,
'status': statuses[rand_index],
'percentage': percentage,
- 'id': node['id'],
- 'name': node['id'],
+ 'id': tuskar_node_id,
+ 'name': tuskar_node_id,
'url': "FIXME url"})
data.sort(key=lambda x: x['percentage'])
diff --git a/tuskar_ui/infrastructure/resource_management/racks/workflows.py b/tuskar_ui/infrastructure/resource_management/racks/workflows.py
index 19c51f90..2d511eee 100644
--- a/tuskar_ui/infrastructure/resource_management/racks/workflows.py
+++ b/tuskar_ui/infrastructure/resource_management/racks/workflows.py
@@ -103,11 +103,10 @@ class NodeCreateAction(workflows.Action):
if table:
formset = table.get_formset()
if formset.is_valid():
- cleaned_data['nodes'] = [form.cleaned_data
- for form in formset
- if form.cleaned_data
- and not
- form.cleaned_data.get('DELETE')]
+ cleaned_data['nodes'] = [
+ form.cleaned_data for form in formset
+ if form.cleaned_data
+ and not form.cleaned_data.get('DELETE')]
else:
raise forms.ValidationError(_("Errors in the nodes list."))
return cleaned_data
@@ -166,59 +165,60 @@ class CreateRack(workflows.Workflow):
def get_failure_url(self):
return self.get_index_url()
- def create_or_update_node(self, node_data):
- """Creates (if id=='') or updates (otherwise) a node."""
- if node_data['id'] not in ('', None):
- node_id = unicode(node_data['id'])
+ def create_or_update_baremetal_node(self, baremetal_node_data):
+ """Creates (if id=='') or updates (otherwise) a baremetal node."""
+ if baremetal_node_data['id'] not in ('', None):
+ baremetal_node_id = unicode(baremetal_node_data['id'])
# TODO(rdopieralski) there is currently no way to update
# a baremetal node
#
# tuskar.BaremetalNode.update(
# self.request,
# node_id=node_id,
- # service_host=node_data['service_host'],
- # cpus=node_data['cpus'],
- # memory_mb=node_data['memory_mb'],
- # local_gb=node_data['local_gb'],
- # prov_mac_address=node_data['mac_address'],
- # pm_address=node_data['pm_address'],
- # pm_user=node_data['pm_user'],
- # pm_password=node_data['pm_password'],
- # terminal_port=node_data['terminal_port'])
- return node_id
+ # service_host=baremetal_node_data['service_host'],
+ # cpus=baremetal_node_data['cpus'],
+ # memory_mb=baremetal_node_data['memory_mb'],
+ # local_gb=baremetal_node_data['local_gb'],
+ # prov_mac_address=baremetal_node_data['mac_address'],
+ # pm_address=baremetal_node_data['pm_address'],
+ # pm_user=baremetal_node_data['pm_user'],
+ # pm_password=baremetal_node_data['pm_password'],
+ # terminal_port=baremetal_node_data['terminal_port'])
+ return baremetal_node_id
else:
- node = tuskar.BaremetalNode.create(
+ baremetal_node = tuskar.BaremetalNode.create(
self.request,
- service_host=node_data['service_host'],
- cpus=node_data['cpus'],
- memory_mb=node_data['memory_mb'],
- local_gb=node_data['local_gb'],
- prov_mac_address=node_data['mac_address'],
- pm_address=node_data['pm_address'],
- pm_user=node_data['pm_user'],
- pm_password=node_data['pm_password'],
- terminal_port=node_data['terminal_port'])
- return node.id
+ service_host=baremetal_node_data['service_host'],
+ cpus=baremetal_node_data['cpus'],
+ memory_mb=baremetal_node_data['memory_mb'],
+ local_gb=baremetal_node_data['local_gb'],
+ prov_mac_address=baremetal_node_data['mac_address'],
+ pm_address=baremetal_node_data['pm_address'],
+ pm_user=baremetal_node_data['pm_user'],
+ pm_password=baremetal_node_data['pm_password'],
+ terminal_port=baremetal_node_data['terminal_port'])
+ return baremetal_node.id
def handle(self, request, data):
# First, create and/or update nodes
- node_ids = []
- for node_data in data['nodes']:
+ baremetal_node_ids = []
+ for baremetal_node_data in data['nodes']:
try:
- node_id = self.create_or_update_node(node_data)
+ baremetal_node_id = self.create_or_update_baremetal_node(
+ baremetal_node_data)
except Exception:
exceptions.handle(self.request, _("Unable to update node."))
return False
else:
# Rack.create takes a list of dicts with BaremetalNode ids
- node_ids.append({'id': node_id})
+ baremetal_node_ids.append({'id': baremetal_node_id})
try:
# Then, register the Rack, including the nodes
tuskar.Rack.create(
request, name=data['name'],
resource_class_id=data['resource_class_id'],
location=data['location'], subnet=data['subnet'],
- nodes=node_ids)
+ baremetal_nodes=baremetal_node_ids)
return True
except requests.ConnectionError:
@@ -240,11 +240,13 @@ class EditRack(CreateRack):
failure_message = _("Unable to update rack.")
def handle(self, request, data):
- node_ids = [{'id': self.create_or_update_node(node_data)}
- for node_data in data['nodes']]
+ baremetal_nodes_data = data.pop('nodes')
+ baremetal_node_ids = [
+ {'id': self.create_or_update_baremetal_node(baremetal_node_data)}
+ for baremetal_node_data in baremetal_nodes_data]
try:
rack_id = self.context['rack_id']
- data['nodes'] = node_ids
+ data['baremetal_nodes'] = baremetal_node_ids
tuskar.Rack.update(request, rack_id, data)
return True
except Exception:
diff --git a/tuskar_ui/infrastructure/resource_management/resource_classes/tests.py b/tuskar_ui/infrastructure/resource_management/resource_classes/tests.py
index aa441588..94fac9ee 100644
--- a/tuskar_ui/infrastructure/resource_management/resource_classes/tests.py
+++ b/tuskar_ui/infrastructure/resource_management/resource_classes/tests.py
@@ -331,7 +331,8 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
'horizon:infrastructure:resource_management:index'))
@test.create_stubs({
- tuskar.ResourceClass: ('get', 'list_flavors', 'list_racks', 'nodes')
+ tuskar.ResourceClass: ('get', 'list_flavors', 'list_racks',
+ 'tuskar_nodes')
})
def test_detail_get(self):
resource_class = self.tuskar_resource_classes.first()
@@ -345,7 +346,7 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
tuskar.ResourceClass.list_flavors = flavors
tuskar.ResourceClass.list_racks = racks
- tuskar.ResourceClass.nodes = []
+ tuskar.ResourceClass.tuskar_nodes = []
url = urlresolvers.reverse(
'horizon:infrastructure:resource_management:resource_classes:'
diff --git a/tuskar_ui/infrastructure/resource_management/tabs.py b/tuskar_ui/infrastructure/resource_management/tabs.py
index 106096b5..7273fea1 100644
--- a/tuskar_ui/infrastructure/resource_management/tabs.py
+++ b/tuskar_ui/infrastructure/resource_management/tabs.py
@@ -85,11 +85,12 @@ class RacksTab(ProvisioningInfoMixin, tabs.TableTab):
def get_context_data(self, request):
context = super(RacksTab, self).get_context_data(request)
try:
- context["nodes"] = tuskar.BaremetalNode.list_unracked(self.request)
+ context["baremetal_nodes"] = tuskar.BaremetalNode.list_unracked(
+ self.request)
except Exception:
- context["nodes"] = []
+ context["baremetal_nodes"] = []
exceptions.handle(request,
- _('Unable to retrieve nodes.'))
+ _("Unable to retrieve baremetal nodes."))
return context
diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html
index 97809e39..64539420 100644
--- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html
+++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html
@@ -8,15 +8,15 @@
<hr class="header_rule">
<dl>
<dt>{% trans "MAC Address" %}</dt>
- <dd>{{ node.mac_address|default:_("None") }}</dd>
+ <dd>{{ tuskar_node.mac_address|default:_("None") }}</dd>
<dt>{% trans "IPs" %}</dt>
- <dd>{{ node.ip_address_other|default:_("None") }}</dd>
+ <dd>{{ tuskar_node.ip_address_other|default:_("None") }}</dd>
<dt>{% trans "Management IP" %}</dt>
- <dd>{{ node.pm_address|default:_("None") }}</dd>
+ <dd>{{ tuskar_node.pm_address|default:_("None") }}</dd>
<dt>{% trans "Power Management" %}</dt>
- <dd>{{ node.rack.power_management|default:_("-") }}</dd>
+ <dd>{{ tuskar_node.rack.power_management|default:_("-") }}</dd>
<dt>{% trans "Status" %}</dt>
- <dd>{{ node.status|default:_("None") }}</dd>
+ <dd>{{ tuskar_node.status|default:_("None") }}</dd>
</dl>
</div>
<div class="span4">
@@ -24,17 +24,17 @@
<hr class="header_rule">
<dl>
<dt>{% trans "Rack" %}</dt>
- {% if node.rack %}
- <dd><a href="{% url 'horizon:infrastructure:resource_management:racks:detail' node.rack_id %}">{{ node.rack.name|default:_("None") }}</a></dd>
+ {% if tuskar_node.rack %}
+ <dd><a href="{% url 'horizon:infrastructure:resource_management:racks:detail' tuskar_node.rack_id %}">{{ tuskar_node.rack.name|default:_("None") }}</a></dd>
{% else %}
<dd>{% trans "None" %}</dd>
{% endif %}
<!--<dt>{% trans "Region" %}</dt>
- <dd>{{ node.region|default:_("None") }}</dd>-->
+ <dd>{{ tuskar_node.region|default:_("None") }}</dd>-->
<dt>{% trans "Node Type" %}</dt>
- <dd>{{ node.type|default:_("none") }}</dd>
+ <dd>{{ tuskar_node.type|default:_("none") }}</dd>
<dt>{% trans "Provisioned Image" %}</dt>
- <dd>{{ node.image|default:_("None") }}</dd>
+ <dd>{{ tuskar_node.image|default:_("None") }}</dd>
<dt>{% trans "Running Instances" %}</dt>
<dd>{{ running_instances }}</dd>
</dl>
@@ -45,18 +45,18 @@
<table class="capacities">
<tr>
<td class="capacity_label">{% trans "CPU" %}:</td>
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<td>
<div id="cpu_capacity_usage"
class="capacity_bar"
data-chart-type="capacity_bar_chart"
- data-capacity-limit="{{ node.cpu.value }}"
- data-capacity-used="{{ node.cpu.usage }}"
+ data-capacity-limit="{{ tuskar_node.cpu.value }}"
+ data-capacity-used="{{ tuskar_node.cpu.usage }}"
data-average-capacity-used="{{ 2 }}">
</div>
</td>
<td>
- <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="cpu">{{ node.cpu.usage }}/{{ node.cpu.value }} {{ node.cpu.unit }}</a>
+ <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="cpu">{{ tuskar_node.cpu.usage }}/{{ tuskar_node.cpu.value }} {{ tuskar_node.cpu.unit }}</a>
</td>
{% else %}
<td>
@@ -70,18 +70,18 @@
</tr>
<tr>
<td class="capacity_label">{% trans "RAM" %}:</td>
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<td>
<div id="ram_capacity_usage"
class="capacity_bar"
data-chart-type="capacity_bar_chart"
- data-capacity-limit="{{ node.ram.value }}"
- data-capacity-used="{{ node.ram.usage }}"
+ data-capacity-limit="{{ tuskar_node.ram.value }}"
+ data-capacity-used="{{ tuskar_node.ram.usage }}"
data-average-capacity-used="{{ 12 }}">
</div>
</td>
<td>
- <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="ram">{{ node.ram.usage }}/{{ node.ram.value }} {{ node.ram.unit }}</a>
+ <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="ram">{{ tuskar_node.ram.usage }}/{{ tuskar_node.ram.value }} {{ tuskar_node.ram.unit }}</a>
</td>
{% else %}
<td>
@@ -95,18 +95,18 @@
</tr>
<tr>
<td class="capacity_label">{% trans "Storage" %}:</td>
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<td>
<div id="storage_capacity_usage"
class="capacity_bar"
data-chart-type="capacity_bar_chart"
- data-capacity-limit="{{ node.storage.value }}"
- data-capacity-used="{{ node.storage.usage }}"
+ data-capacity-limit="{{ tuskar_node.storage.value }}"
+ data-capacity-used="{{ tuskar_node.storage.usage }}"
data-average-capacity-used="{{ 6 }}">
</div>
</td>
<td>
- <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="storage">{{ node.storage.usage }}/{{ node.storage.value }} {{ node.storage.unit }}</a>
+ <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="storage">{{ tuskar_node.storage.usage }}/{{ tuskar_node.storage.value }} {{ tuskar_node.storage.unit }}</a>
</td>
{% else %}
<td>
@@ -120,18 +120,18 @@
</tr>
<tr>
<td class="capacity_label">{% trans "Network" %}:</td>
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<td>
<div id="network_capacity_usage"
class="capacity_bar"
data-chart-type="capacity_bar_chart"
- data-capacity-limit="{{ node.network.value }}"
- data-capacity-used="{{ node.network.usage }}"
+ data-capacity-limit="{{ tuskar_node.network.value }}"
+ data-capacity-used="{{ tuskar_node.network.usage }}"
data-average-capacity-used="{{ 40 }}">
</div>
</td>
<td>
- <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="network">{{ node.network.usage }}/{{ node.network.value }} {{ node.network.unit }}</a>
+ <a href="#" data-chart-type="modal_line_chart" data-url="/infrastructure/resource_management/racks/usage_data" data-series="network">{{ tuskar_node.network.usage }}/{{ tuskar_node.network.value }} {{ tuskar_node.network.unit }}</a>
</td>
{% else %}
<td>
@@ -151,34 +151,34 @@
<div class="span6">
<h4>{% trans "Summary of Instances and Usage" %}</h4>
<hr class="header_rule">
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<div>
- <strong>{{ node.running_instances }}</strong> instances
- <strong>{{ node.remaining_capacity }}%</strong> capacity remaining
+ <strong>{{ tuskar_node.running_instances }}</strong> instances
+ <strong>{{ tuskar_node.remaining_capacity }}%</strong> capacity remaining
</div>
<div class="flavor_usage_bar"
- data-popup-free='{{ node|remaining_capacity_by_flavors }}'
+ data-popup-free='{{ tuskar_node|remaining_capacity_by_flavors }}'
data-single-bar-orientation="horizontal"
data-single-bar-height="50"
data-single-bar-width="100%"
- data-single-bar-used="{{ node|all_used_instances }}"
+ data-single-bar-used="{{ tuskar_node|all_used_instances }}"
data-single-bar-auto-scale-selector=".flavors_scale_selector"
data-single-bar-color-scale-range='["#000060", "#99FFFF"]'>
</div>
<table class="flavor_usages">
<tr>
- {% for flavor in node.list_flavors %}
+ {% for flavor in tuskar_node.list_flavors %}
<td class="flavor_usage_label">
- <a href="{% url 'horizon:infrastructure:resource_management:resource_classes:flavors:detail' node.rack.resource_class.id flavor.id %}">{{ flavor.name }}</a>
+ <a href="{% url 'horizon:infrastructure:resource_management:resource_classes:flavors:detail' tuskar_node.rack.resource_class.id flavor.id %}">{{ flavor.name }}</a>
</td>
{% endfor %}
</tr>
<tr>
- {% for flavor in node.list_flavors %}
+ {% for flavor in tuskar_node.list_flavors %}
<td>
<div class="flavor_usage_bar flavors_scale_selector"
- data-popup-average='<p>Average capacity consumed by instances of {{flavor.name}} flavor in {{node.name}} class.</p>
+ data-popup-average='<p>Average capacity consumed by instances of {{flavor.name}} flavor in {{tuskar_node.name}} class.</p>
<p>{{ flavor.used_instances }}%, <strong>{{ flavor.used_instances }} instances</strong></p>'
data-single-bar-orientation="vertical"
data-single-bar-height="100%"
@@ -192,12 +192,12 @@
{% endfor %}
</tr>
<tr>
- {% for flavor in node.list_flavors %}
+ {% for flavor in tuskar_node.list_flavors %}
<td class="modal_chart flavor_usage_text"><a href="{{ "#" }}">{{ flavor.used_instances }}%</a></td>
{% endfor %}
</tr>
<tr>
- {% for flavor in node.list_flavors %}
+ {% for flavor in tuskar_node.list_flavors %}
<td class="flavor_usage_text">{{ flavor.used_instances }} inst.</td>
{% endfor %}
</tr>
@@ -211,9 +211,9 @@
<div class="span6">
<h4>{% trans "Active alerts" %}</h4>
<hr class="header_rule">
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<ul>
- {% for alert in node.alerts %}
+ {% for alert in tuskar_node.alerts %}
<li><i class="icon-warning-sign"></i>{{ alert.message }}</li>
{% endfor %}
</ul>
@@ -227,14 +227,14 @@
<div class="span6">
<h4>{% trans "Top Communicating Nodes" %}</h4>
<hr class="header_rule">
- {% if node.is_provisioned %}
+ {% if tuskar_node.is_provisioned %}
<div class="communication_charts_wrapper">
<div class="communication_chart_wrapper">
<h5>The most contacting</h5>
<div id="most_contacting_racks"
class="communication_chart"
data-chart-type="circles_chart"
- data-url="{% url 'horizon:infrastructure:resource_management:racks:top_communicating' node.rack_id %}?cond=from"
+ data-url="{% url 'horizon:infrastructure:resource_management:racks:top_communicating' tuskar_node.rack_id %}?cond=from"
data-time="now"
data-size="22">
</div>
@@ -245,7 +245,7 @@
<div id="most_contacted_racks"
class="communication_chart"
data-chart-type="circles_chart"
- data-url="{% url 'horizon:infrastructure:resource_management:racks:top_communicating' node.rack.id %}?cond=to"
+ data-url="{% url 'horizon:infrastructure:resource_management:racks:top_communicating' tuskar_node.rack.id %}?cond=to"
data-time="now"
data-size="22">
</div>
diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/detail.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/detail.html
index e5b7586a..57c9bf0f 100644
--- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/detail.html
+++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/detail.html
@@ -13,8 +13,8 @@
<span class="separator"></span>
<a href="{% url 'horizon:infrastructure:resource_management:index' %}?tab=resource_management_tabs__racks_tab" >Racks</a>
<span class="separator"></span>
- {% if node.rack %}
- <a href="{% url 'horizon:infrastructure:resource_management:racks:detail' node.rack_id %}">{{ node.rack.name }}</a>
+ {% if tuskar_node.rack %}
+ <a href="{% url 'horizon:infrastructure:resource_management:racks:detail' tuskar_node.rack_id %}">{{ tuskar_node.rack.name }}</a>
{% else %}
<a href="{% url 'horizon:infrastructure:resource_management:nodes:unracked' %}" >Unracked Nodes</a>
{% endif %}
@@ -22,4 +22,4 @@
</div>
{% endblock breadcrumbs %}
-{% block name %}{{ node.name }}{% endblock %}
+{% block name %}{{ tuskar_node.name }}{% endblock %}
diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
index 6b5dc303..cb6f84f2 100644
--- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
+++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
@@ -167,10 +167,10 @@
{% for alert in rack.alerts %}
<li><i class="icon-warning-sign"></i>{{ alert.message }}</li>
{% endfor %}
- {% for node in rack.aggregated_alerts %}
+ {% for tuskar_node in rack.aggregated_alerts %}
<li>
<i class="icon-warning-sign"></i>
- Node <a href="{% url 'horizon:infrastructure:resource_management:nodes:detail' node.id %}">{{ node.name }}</a> has some problems
+ Node <a href="{% url 'horizon:infrastructure:resource_management:nodes:detail' tuskar_node.id %}">{{ tuskar_node.name }}</a> has some problems
</li>
{% endfor %}
</ul>
diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_index_table.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_index_table.html
index 8624920a..66f5116c 100644
--- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_index_table.html
+++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/racks/_index_table.html
@@ -1,4 +1,4 @@
{% load i18n %}
{% include "infrastructure/resource_management/_provision_info.html" with provisioning_state=provisioning_state %}
{{ racks_table.render }}
-<a href="{% url 'horizon:infrastructure:resource_management:nodes:unracked' %}">{% trans "View Unracked Nodes"%} ({{nodes|length}})</a>
+<a href="{% url 'horizon:infrastructure:resource_management:nodes:unracked' %}">{% trans "View Unracked Nodes"%} ({{baremetal_nodes|length}})</a>
diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/resource_classes/_detail_overview.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/resource_classes/_detail_overview.html
index 02b9cb99..6eec6751 100644
--- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/resource_classes/_detail_overview.html
+++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/resource_classes/_detail_overview.html
@@ -10,7 +10,7 @@
<dt>{% trans "Racks" %}</dt>
<dd><a href="?tab=resource_class_details__racks" >{{ resource_class.list_racks|length }} {% trans "racks" %}</a></dd>
<dt>{% trans "Nodes" %}</dt>
- <dd>{{ resource_class.nodes|length }} {% trans "nodes" %}</dd>
+ <dd>{{ resource_class.tuskar_nodes|length }} {% trans "nodes" %}</dd>
</dl>
</div>
diff --git a/tuskar_ui/infrastructure/resource_management/tests.py b/tuskar_ui/infrastructure/resource_management/tests.py
index 5e12a4c5..ef876124 100644
--- a/tuskar_ui/infrastructure/resource_management/tests.py
+++ b/tuskar_ui/infrastructure/resource_management/tests.py
@@ -29,34 +29,28 @@ class ResourceManagementTests(test.BaseAdminViewTests):
super(ResourceManagementTests, self).setUp()
@test.create_stubs({
- tuskar.ResourceClass: (
- 'get',
- 'list',
- 'list_racks',
- 'nodes'),
- tuskar.Node: (
- 'list',),
- tuskar.Rack: (
- 'list',)})
+ tuskar.ResourceClass: ('get', 'list', 'list_racks', 'tuskar_nodes'),
+ tuskar.TuskarNode: ('list',),
+ tuskar.Rack: ('list',),
+ })
def test_index(self):
# ResourceClass stubs
resource_classes = self.tuskar_resource_classes.list()
resource_class = self.tuskar_resource_classes.first()
- nodes = []
+ tuskar_nodes = []
racks = []
- tuskar.ResourceClass.nodes = nodes
+ tuskar.ResourceClass.tuskar_nodes = tuskar_nodes
tuskar.ResourceClass.list_racks = racks
tuskar.Rack.list(mox.IsA(http.HttpRequest)).AndReturn(racks)
tuskar.ResourceClass.list(
- mox.IsA(http.HttpRequest)).\
- AndReturn(resource_classes)
+ mox.IsA(http.HttpRequest)).AndReturn(resource_classes)
tuskar.ResourceClass.get(
- mox.IsA(http.HttpRequest), resource_class.id).\
- AndReturn(resource_class)
+ mox.IsA(http.HttpRequest),
+ resource_class.id).AndReturn(resource_class)
# ResourceClass stubs end
# Rack stubs
@@ -64,7 +58,8 @@ class ResourceManagementTests(test.BaseAdminViewTests):
tuskar.Rack.list(mox.IsA(http.HttpRequest)).AndReturn(racks)
tuskar.Rack.list(mox.IsA(http.HttpRequest)).AndReturn(racks)
- tuskar.Node.list(mox.IsA(http.HttpRequest)).AndReturn(nodes)
+ tuskar.TuskarNode.list(
+ mox.IsA(http.HttpRequest)).AndReturn(tuskar_nodes)
# Rack stubs end
self.mox.ReplayAll()
diff --git a/tuskar_ui/test/api_tests/tuskar_tests.py b/tuskar_ui/test/api_tests/tuskar_tests.py
index 668b3376..3ed00325 100644
--- a/tuskar_ui/test/api_tests/tuskar_tests.py
+++ b/tuskar_ui/test/api_tests/tuskar_tests.py
@@ -23,7 +23,7 @@ from tuskar_ui.test import helpers as test
class TuskarApiTests(test.APITestCase):
def test_baremetal_node_create(self):
- node = self.baremetalclient_nodes.first()
+ baremetal_node = self.baremetalclient_nodes.first()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'create')
baremetal.BareMetalNodeManager.create(
@@ -35,7 +35,7 @@ class TuskarApiTests(test.APITestCase):
'0.0.0.0',
'user',
'password',
- 0).AndReturn(node)
+ 0).AndReturn(baremetal_node)
self.mox.ReplayAll()
ret_val = api.BaremetalNode.create(
@@ -57,12 +57,13 @@ class TuskarApiTests(test.APITestCase):
provided (empty), their values are set to None, as this is required
by the baremetal VM.
"""
- node = self.baremetalclient_nodes.first()
+ baremetal_node = self.baremetalclient_nodes.first()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'create')
baremetal.BareMetalNodeManager.create(
'node', 1, 1024, 10,
- 'AA:BB:CC:DD:EE:FF', None, None, '', None).AndReturn(node)
+ 'AA:BB:CC:DD:EE:FF',
+ None, None, '', None).AndReturn(baremetal_node)
self.mox.ReplayAll()
ret_val = api.BaremetalNode.create(
@@ -72,31 +73,32 @@ class TuskarApiTests(test.APITestCase):
self.assertIsInstance(ret_val, api.BaremetalNode)
def test_baremetal_node_get(self):
- node = self.baremetalclient_nodes.first()
+ baremetal_node = self.baremetalclient_nodes.first()
server = self.servers.first()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'get')
- baremetal.BareMetalNodeManager.get(node.id).AndReturn(node)
+ baremetal.BareMetalNodeManager.get(
+ baremetal_node.id).AndReturn(baremetal_node)
novaclient = self.stub_novaclient()
novaclient.servers = self.mox.CreateMockAnything()
- novaclient.servers.get(node.instance_uuid).AndReturn(server)
+ novaclient.servers.get(baremetal_node.instance_uuid).AndReturn(server)
self.mox.ReplayAll()
- ret_val = api.BaremetalNode.get(self.request, node.id)
+ ret_val = api.BaremetalNode.get(self.request, baremetal_node.id)
self.assertIsInstance(ret_val, api.BaremetalNode)
def test_baremetal_node_list(self):
- nodes = self.baremetalclient_nodes_all.list()
+ baremetal_nodes = self.baremetalclient_nodes_all.list()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'list')
- baremetal.BareMetalNodeManager.list().AndReturn(nodes)
+ baremetal.BareMetalNodeManager.list().AndReturn(baremetal_nodes)
self.mox.ReplayAll()
ret_val = api.BaremetalNode.list(self.request)
- for node in ret_val:
- self.assertIsInstance(node, api.BaremetalNode)
+ for baremetal_node in ret_val:
+ self.assertIsInstance(baremetal_node, api.BaremetalNode)
def test_baremetal_node_list_unracked(self):
tuskarclient_nodes = self.tuskarclient_nodes.list()
@@ -112,45 +114,45 @@ class TuskarApiTests(test.APITestCase):
self.mox.ReplayAll()
ret_val = api.BaremetalNode.list_unracked(self.request)
- for node in ret_val:
- self.assertIsInstance(node, api.BaremetalNode)
+ for baremetal_node in ret_val:
+ self.assertIsInstance(baremetal_node, api.BaremetalNode)
self.assertEquals(1, len(ret_val))
def test_baremetal_node_running_instances(self):
- node = self.baremetal_nodes.first()
+ baremetal_node = self.baremetal_nodes.first()
- self.assertEquals(4, node.running_instances)
+ self.assertEquals(4, baremetal_node.running_instances)
def test_baremetal_node_remaining_capacity(self):
- node = self.baremetal_nodes.first()
+ baremetal_node = self.baremetal_nodes.first()
- self.assertEquals(96, node.remaining_capacity)
+ self.assertEquals(96, baremetal_node.remaining_capacity)
def test_node_get(self):
- node = self.tuskarclient_nodes.first()
+ tuskar_node = self.tuskarclient_nodes.first()
tuskarclient = self.stub_tuskarclient()
tuskarclient.nodes = self.mox.CreateMockAnything()
- tuskarclient.nodes.get(node.id).AndReturn(node)
+ tuskarclient.nodes.get(tuskar_node.id).AndReturn(tuskar_node)
self.mox.ReplayAll()
- ret_val = api.Node.get(self.request, node.id)
- self.assertIsInstance(ret_val, api.Node)
+ ret_val = api.TuskarNode.get(self.request, tuskar_node.id)
+ self.assertIsInstance(ret_val, api.TuskarNode)
def test_node_list(self):
- nodes = self.tuskarclient_nodes.list()
+ tuskar_nodes = self.tuskarclient_nodes.list()
tuskarclient = self.stub_tuskarclient()
tuskarclient.nodes = self.mox.CreateMockAnything()
- tuskarclient.nodes.list().AndReturn(nodes)
+ tuskarclient.nodes.list().AndReturn(tuskar_nodes)
self.mox.ReplayAll()
- ret_val = api.Node.list(self.request)
- for node in ret_val:
- self.assertIsInstance(node, api.Node)
+ ret_val = api.TuskarNode.list(self.request)
+ for tuskar_node in ret_val:
+ self.assertIsInstance(tuskar_node, api.TuskarNode)
def test_node_rack(self):
- node = self.tuskar_nodes.first()
+ tuskar_node = self.tuskar_nodes.first()
rack = self.tuskarclient_racks.first()
tuskarclient = self.stub_tuskarclient()
@@ -158,17 +160,17 @@ class TuskarApiTests(test.APITestCase):
tuskarclient.racks.get(rack.id).AndReturn(rack)
self.mox.ReplayAll()
- node.request = self.request
- self.assertIsInstance(node.rack, api.Rack)
- self.assertEquals('1', node.rack_id)
+ tuskar_node.request = self.request
+ self.assertIsInstance(tuskar_node.rack, api.Rack)
+ self.assertEquals('1', tuskar_node.rack_id)
def test_node_nova_baremetal_node(self):
- node = self.tuskar_nodes.first()
+ tuskar_node = self.tuskar_nodes.first()
bm_node = self.baremetalclient_nodes.first()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'get')
baremetal.BareMetalNodeManager.get(
- node.nova_baremetal_node_id).AndReturn(bm_node)
+ tuskar_node.nova_baremetal_node_id).AndReturn(bm_node)
novaclient = self.stub_novaclient()
novaclient.servers = self.mox.CreateMockAnything()
@@ -177,13 +179,13 @@ class TuskarApiTests(test.APITestCase):
'limit': 21}).AndReturn([])
self.mox.ReplayAll()
- node.request = self.request
- n = node.nova_baremetal_node
- self.assertIsInstance(n, api.BaremetalNode)
- self.assertEquals('11', n.id)
+ tuskar_node.request = self.request
+ baremetal_node = tuskar_node.nova_baremetal_node
+ self.assertIsInstance(baremetal_node, api.BaremetalNode)
+ self.assertEquals('11', baremetal_node.id)
def test_node_flavors(self):
- node = self.tuskar_nodes.first()
+ tuskar_node = self.tuskar_nodes.first()
rack = self.tuskarclient_racks.first()
rc = self.tuskarclient_resource_classes.first()
flavors = self.tuskarclient_flavors.list()
@@ -197,20 +199,20 @@ class TuskarApiTests(test.APITestCase):
tuskarclient.flavors.list(rc.id).AndReturn(flavors)
self.mox.ReplayAll()
- node.request = self.request
- ret_val = node.list_flavors
+ tuskar_node.request = self.request
+ ret_val = tuskar_node.list_flavors
for flavor in ret_val:
self.assertIsInstance(flavor, api.Flavor)
self.assertEquals(2, len(ret_val))
def test_node_is_provisioned(self):
- node = self.tuskar_nodes.first()
- node.request = self.request
+ tuskar_node = self.tuskar_nodes.first()
+ tuskar_node.request = self.request
bm_node = self.baremetalclient_nodes.first()
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'get')
baremetal.BareMetalNodeManager.get(
- node.nova_baremetal_node_id).AndReturn(bm_node)
+ tuskar_node.nova_baremetal_node_id).AndReturn(bm_node)
novaclient = self.stub_novaclient()
novaclient.servers = self.mox.CreateMockAnything()
@@ -219,12 +221,12 @@ class TuskarApiTests(test.APITestCase):
'limit': 21}).AndReturn([])
self.mox.ReplayAll()
- self.assertFalse(node.is_provisioned)
+ self.assertFalse(tuskar_node.is_provisioned)
def test_node_alerts(self):
- node = self.tuskar_nodes.first()
+ tuskar_node = self.tuskar_nodes.first()
- self.assertEquals([], node.alerts)
+ self.assertEquals([], tuskar_node.alerts)
def test_resource_class_list(self):
rcs = self.tuskarclient_resource_classes.list()
@@ -349,16 +351,16 @@ class TuskarApiTests(test.APITestCase):
def test_resource_class_nodes(self):
rc = self.tuskar_resource_classes.first()
- nodes = self.tuskarclient_nodes.list()
+ tuskar_nodes = self.tuskarclient_nodes.list()
tuskarclient = self.stub_tuskarclient()
tuskarclient.nodes = self.mox.CreateMockAnything()
- tuskarclient.nodes.list().AndReturn(nodes)
+ tuskarclient.nodes.list().AndReturn(tuskar_nodes)
self.mox.ReplayAll()
rc.request = self.request
- for node in rc.nodes:
- self.assertIsInstance(node, api.Node)
+ for tuskar_node in rc.tuskar_nodes:
+ self.assertIsInstance(tuskar_node, api.TuskarNode)
self.assertEquals(4, rc.nodes_count)
def test_resource_class_flavors(self):
@@ -440,7 +442,7 @@ class TuskarApiTests(test.APITestCase):
def test_resource_class_aggregated_alerts(self):
rc = self.tuskar_resource_classes.list()[0]
rc.request = self.request
- nodes = self.tuskarclient_nodes.list()
+ tuskar_nodes = self.tuskarclient_nodes.list()
tuskarclient = self.stub_tuskarclient()
tuskarclient.racks = self.mox.CreateMockAnything()
@@ -449,8 +451,8 @@ class TuskarApiTests(test.APITestCase):
tuskarclient.racks.get('2').AndReturn(racks[1])
tuskarclient.nodes = self.mox.CreateMockAnything()
- for n in nodes:
- tuskarclient.nodes.get(n.id).AndReturn(n)
+ for tuskar_node in tuskar_nodes:
+ tuskarclient.nodes.get(tuskar_node.id).AndReturn(tuskar_node)
self.mox.ReplayAll()
@@ -527,18 +529,18 @@ class TuskarApiTests(test.APITestCase):
def test_rack_nodes(self):
rack = self.tuskar_racks.first()
- nodes = self.tuskarclient_nodes.list()
+ tuskar_nodes = self.tuskarclient_nodes.list()
tuskarclient = self.stub_tuskarclient()
tuskarclient.nodes = self.mox.CreateMockAnything()
- for n in nodes:
- tuskarclient.nodes.get(n.id).AndReturn(n)
+ for tuskar_node in tuskar_nodes:
+ tuskarclient.nodes.get(tuskar_node.id).AndReturn(tuskar_node)
self.mox.ReplayAll()
rack.request = self.request
- for node in rack.list_nodes:
- self.assertIsInstance(node, api.Node)
- self.assertEquals(4, len(rack.node_ids))
+ for tuskar_node in rack.list_tuskar_nodes:
+ self.assertIsInstance(tuskar_node, api.TuskarNode)
+ self.assertEquals(4, len(rack.tuskar_node_ids))
self.assertEquals(4, rack.nodes_count)
def test_rack_resource_class(self):
@@ -646,16 +648,16 @@ class TuskarApiTests(test.APITestCase):
def test_rack_aggregated_alerts(self):
rack = self.tuskar_racks.first()
rack.request = self.request
- nodes = self.tuskarclient_nodes.list()
+ tuskar_nodes = self.tuskarclient_nodes.list()
tuskarclient = self.stub_tuskarclient()
tuskarclient.nodes = self.mox.CreateMockAnything()
- for n in nodes:
- tuskarclient.nodes.get(n.id).AndReturn(n)
+ for tuskar_node in tuskar_nodes:
+ tuskarclient.nodes.get(tuskar_node.id).AndReturn(tuskar_node)
self.mox.ReplayAll()
- for node in rack.aggregated_alerts:
- self.assertIsInstance(node, api.Node)
+ for tuskar_node in rack.aggregated_alerts:
+ self.assertIsInstance(tuskar_node, api.TuskarNode)
self.assertEquals(0, len(rack.aggregated_alerts))
def test_flavor_create(self):
diff --git a/tuskar_ui/test/test_data/tuskar_data.py b/tuskar_ui/test/test_data/tuskar_data.py
index f52c6c02..b1f9f190 100644
--- a/tuskar_ui/test/test_data/tuskar_data.py
+++ b/tuskar_ui/test/test_data/tuskar_data.py
@@ -16,7 +16,7 @@ from openstack_dashboard.test.test_data import utils as test_data_utils
from novaclient.v1_1.contrib import baremetal
from tuskarclient.v1 import flavors
-from tuskarclient.v1 import nodes
+from tuskarclient.v1 import nodes as tuskar_nodes
from tuskarclient.v1 import racks
from tuskarclient.v1 import resource_classes
@@ -131,23 +131,23 @@ def data(TEST):
TEST.tuskarclient_nodes = test_data_utils.TestDataContainer()
TEST.tuskar_nodes = test_data_utils.TestDataContainer()
- tuskar_node_1 = nodes.Node(
- nodes.NodeManager(None),
+ tuskar_node_1 = tuskar_nodes.Node(
+ tuskar_nodes.NodeManager(None),
{'id': '1',
'nova_baremetal_node_id': '11',
'rack': {"id": "1"}})
- tuskar_node_2 = nodes.Node(
- nodes.NodeManager(None),
+ tuskar_node_2 = tuskar_nodes.Node(
+ tuskar_nodes.NodeManager(None),
{'id': '2',
'nova_baremetal_node_id': '12',
'rack': {"id": "1"}})
- tuskar_node_3 = nodes.Node(
- nodes.NodeManager(None),
+ tuskar_node_3 = tuskar_nodes.Node(
+ tuskar_nodes.NodeManager(None),
{'id': '3',
'nova_baremetal_node_id': '13',
'rack': {"id": "1"}})
- tuskar_node_4 = nodes.Node(
- nodes.NodeManager(None),
+ tuskar_node_4 = tuskar_nodes.Node(
+ tuskar_nodes.NodeManager(None),
{'id': '4',
'nova_baremetal_node_id': '14',
'rack': {"id": "1"}})
@@ -156,10 +156,10 @@ def data(TEST):
tuskar_node_2,
tuskar_node_3,
tuskar_node_4)
- TEST.tuskar_nodes.add(api.Node(tuskar_node_1),
- api.Node(tuskar_node_2),
- api.Node(tuskar_node_3),
- api.Node(tuskar_node_4))
+ TEST.tuskar_nodes.add(api.TuskarNode(tuskar_node_1),
+ api.TuskarNode(tuskar_node_2),
+ api.TuskarNode(tuskar_node_3),
+ api.TuskarNode(tuskar_node_4))
TEST.baremetalclient_nodes = test_data_utils.TestDataContainer()
TEST.baremetal_nodes = test_data_utils.TestDataContainer()
@@ -168,47 +168,50 @@ def data(TEST):
TEST.baremetalclient_nodes_all = test_data_utils.TestDataContainer()
TEST.baremetal_nodes_all = test_data_utils.TestDataContainer()
- node_1 = baremetal.BareMetalNode(
+ baremetal_node_1 = baremetal.BareMetalNode(
baremetal.BareMetalNodeManager(None),
{'instance_uuid': 'uuid_11',
'id': '11',
'name': 'node1',
'prov_mac_address': '00:B0:D0:86:AB:F7'})
- node_2 = baremetal.BareMetalNode(
+ baremetal_node_2 = baremetal.BareMetalNode(
baremetal.BareMetalNodeManager(None),
{'instance_uuid': 'uuid_12',
'id': '12',
'name': 'node2',
'prov_mac_address': '00:B0:D0:86:AB:F8'})
- node_3 = baremetal.BareMetalNode(
+ baremetal_node_3 = baremetal.BareMetalNode(
baremetal.BareMetalNodeManager(None),
{'instance_uuid': 'uuid_13',
'id': '13',
'name': 'node3',
'prov_mac_address': '00:B0:D0:86:AB:F9'})
- node_4 = baremetal.BareMetalNode(
+ baremetal_node_4 = baremetal.BareMetalNode(
baremetal.BareMetalNodeManager(None),
{'instance_uuid': 'uuid_14',
'id': '14',
'name': 'node4',
'prov_mac_address': '00:B0:D0:86:AB:F0'})
- node_5 = baremetal.BareMetalNode(
+ baremetal_node_5 = baremetal.BareMetalNode(
baremetal.BareMetalNodeManager(None),
{'instance_uuid': 'uuid_15',
'id': '15',
'name': 'node5',
'prov_mac_address': '00:B0:D0:86:AB:F1'})
- TEST.baremetalclient_nodes.add(node_1, node_2, node_3, node_4)
- TEST.baremetal_nodes.add(api.BaremetalNode(node_1),
- api.BaremetalNode(node_2),
- api.BaremetalNode(node_3),
- api.BaremetalNode(node_4))
- TEST.baremetalclient_unracked_nodes.add(node_5)
- TEST.baremetal_unracked_nodes.add(api.Node(node_5))
- TEST.baremetalclient_nodes_all.add(node_1, node_2, node_3, node_4, node_5)
- TEST.baremetal_nodes_all.add(api.BaremetalNode(node_1),
- api.BaremetalNode(node_2),
- api.BaremetalNode(node_3),
- api.BaremetalNode(node_4),
- api.BaremetalNode(node_5))
+ TEST.baremetalclient_nodes.add(baremetal_node_1, baremetal_node_2,
+ baremetal_node_3, baremetal_node_4)
+ TEST.baremetal_nodes.add(api.BaremetalNode(baremetal_node_1),
+ api.BaremetalNode(baremetal_node_2),
+ api.BaremetalNode(baremetal_node_3),
+ api.BaremetalNode(baremetal_node_4))
+ TEST.baremetalclient_unracked_nodes.add(baremetal_node_5)
+ TEST.baremetal_unracked_nodes.add(api.TuskarNode(baremetal_node_5))
+ TEST.baremetalclient_nodes_all.add(baremetal_node_1, baremetal_node_2,
+ baremetal_node_3, baremetal_node_4,
+ baremetal_node_5)
+ TEST.baremetal_nodes_all.add(api.BaremetalNode(baremetal_node_1),
+ api.BaremetalNode(baremetal_node_2),
+ api.BaremetalNode(baremetal_node_3),
+ api.BaremetalNode(baremetal_node_4),
+ api.BaremetalNode(baremetal_node_5))