From f0a0bd93c65605d3885c350d04bd2b7999abb741 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Mon, 13 Aug 2012 22:03:45 -0400 Subject: [PATCH] fix SliverStatus is esses openstack driver --- sfa/openstack/nova_driver.py | 16 +++++++--------- sfa/util/xrn.py | 5 +++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/sfa/openstack/nova_driver.py b/sfa/openstack/nova_driver.py index e4ef9610..7fb53937 100644 --- a/sfa/openstack/nova_driver.py +++ b/sfa/openstack/nova_driver.py @@ -388,8 +388,7 @@ class NovaDriver(Driver): def sliver_status (self, slice_urn, slice_hrn): # find out where this slice is currently running project_name = hrn_to_os_slicename(slice_hrn) - project = self.shell.auth_manager.get_project(project_name) - instances = self.shell.db.instance_get_all_by_project(project_name) + instances = self.shell.nova_manager.servers.findall(name=project_name) if len(instances) == 0: raise SliverDoesNotExist("You have not allocated any slivers here") @@ -409,15 +408,14 @@ class NovaDriver(Driver): # instances are accessed by ip, not hostname. We need to report the ip # somewhere so users know where to ssh to. res['geni_expires'] = None - res['plos_hostname'] = instance.hostname - res['plos_created_at'] = datetime_to_string(utcparse(instance.created_at)) - res['plos_boot_state'] = instance.vm_state - res['plos_sliver_type'] = instance.instance_type.name - sliver_id = Xrn(slice_urn).get_sliver_id(instance.project_id, \ - instance.hostname, instance.id) + #res['plos_hostname'] = instance.hostname + res['plos_created_at'] = datetime_to_string(utcparse(instance.created)) + res['plos_boot_state'] = instance.status + res['plos_sliver_type'] = self.shell.nova_manager.flavors.find(id=instance.flavor['id']).name + sliver_id = Xrn(slice_urn).get_sliver_id(instance.id) res['geni_urn'] = sliver_id - if instance.vm_state == 'running': + if instance.status.lower() == 'active': res['boot_state'] = 'ready' res['geni_status'] = 'ready' else: diff --git a/sfa/util/xrn.py b/sfa/util/xrn.py index 8264f0ab..4a47b581 100644 --- a/sfa/util/xrn.py +++ b/sfa/util/xrn.py @@ -168,7 +168,7 @@ class Xrn: self._normalize() return ':'.join( [Xrn.unescape(x) for x in self.authority] ) - def get_sliver_id(self, slice_id, node_id, index=0, authority=None): + def get_sliver_id(self, slice_id, node_id=None, index=0, authority=None): self._normalize() urn = self.get_urn() if authority: @@ -178,7 +178,8 @@ class Xrn: else: hrn = ".".join([authority_hrn, self.get_leaf()]) urn = Xrn(hrn, self.get_type()).get_urn() - return ":".join(map(str, [urn, slice_id, node_id, index])) + parts = [part for part in [urn, slice_id, node_id, index] if part is not None] + return ":".join(map(str, [parts])) def urn_to_hrn(self): """ -- 2.47.0