summaryrefslogtreecommitdiff
path: root/openstack_dashboard/api/tuskar.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstack_dashboard/api/tuskar.py')
-rw-r--r--openstack_dashboard/api/tuskar.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/openstack_dashboard/api/tuskar.py b/openstack_dashboard/api/tuskar.py
index 8483be83..a0b15ab7 100644
--- a/openstack_dashboard/api/tuskar.py
+++ b/openstack_dashboard/api/tuskar.py
@@ -34,6 +34,9 @@ import openstack_dashboard.dashboards.infrastructure.models as dummymodels
LOG = logging.getLogger(__name__)
TUSKAR_ENDPOINT_URL = getattr(settings, 'TUSKAR_ENDPOINT_URL')
NOVA_BAREMETAL_CREDS = getattr(settings, 'NOVA_BAREMETAL_CREDS')
+OVERCLOUD_AUTH_URL = getattr(settings, 'OVERCLOUD_AUTH_URL')
+OVERCLOUD_USERNAME = getattr(settings, 'OVERCLOUD_USERNAME')
+OVERCLOUD_PASSWORD = getattr(settings, 'OVERCLOUD_PASSWORD')
# FIXME: request isn't used right in the tuskar client right now, but looking
@@ -367,6 +370,20 @@ class Node(StringIdAPIResourceWrapper):
except:
return None
+ @property
+ def running_virtual_machines(self):
+ if not hasattr(self, '_running_virtual_machines'):
+ search_opts = {}
+ search_opts['all_tenants'] = True
+ nova_client = nova.nova_client.Client(OVERCLOUD_USERNAME,
+ OVERCLOUD_PASSWORD,
+ 'admin',
+ auth_url=OVERCLOUD_AUTH_URL)
+ self._running_virtual_machines = [s for s in
+ nova_client.servers.list(True, search_opts)
+ if s.hostId == self.id]
+ return self._running_virtual_machines
+
class Rack(StringIdAPIResourceWrapper):
"""Wrapper for the Rack object returned by the