X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fopenstack%2Fnova_driver.py;h=404021be318b3cd62788696b3e881a3e7234eed8;hb=b7d6a80faf23cb019c74e65c2264e215446f84a3;hp=792a8ac0f142279a02d486c166ba1f81a1f82afc;hpb=bc9b16ab81c93e890dcd6723add5760cfde96472;p=sfa.git diff --git a/sfa/openstack/nova_driver.py b/sfa/openstack/nova_driver.py index 792a8ac0..404021be 100644 --- a/sfa/openstack/nova_driver.py +++ b/sfa/openstack/nova_driver.py @@ -3,6 +3,7 @@ import datetime # from sfa.util.faults import MissingSfaInfo, UnknownSfaType, \ RecordNotFound, SfaNotImplemented, SliverDoesNotExist + from sfa.util.sfalogging import logger from sfa.util.defaultdict import defaultdict from sfa.util.sfatime import utcparse, datetime_to_string, datetime_to_epoch @@ -10,8 +11,10 @@ from sfa.util.xrn import Xrn, hrn_to_urn, get_leaf, urn_to_sliver_id from sfa.util.cache import Cache # used to be used in get_ticket #from sfa.trust.sfaticket import SfaTicket + from sfa.rspecs.version_manager import VersionManager from sfa.rspecs.rspec import RSpec + # the driver interface, mostly provides default behaviours from sfa.managers.driver import Driver from sfa.openstack.nova_shell import NovaShell @@ -42,9 +45,9 @@ class NovaDriver (Driver): self.shell = NovaShell (config) self.cache=None if config.SFA_AGGREGATE_CACHING: - if OpenstackDriver.cache is None: - OpenstackDriver.cache = Cache() - self.cache = OpenstackDriver.cache + if NovaDriver.cache is None: + NovaDriver.cache = Cache() + self.cache = NovaDriver.cache ######################################## ########## registry oriented @@ -118,28 +121,29 @@ class NovaDriver (Driver): name = Xrn(record['hrn']).get_leaf() os_record = None if record['type'] == 'user': - os_record = self.shell.user_get(name) + os_record = self.shell.auth_manager.get_user(name) + projects = self.shell.db.project_get_by_user(name) record['slices'] = [self.hrn + "." + proj.name for \ - proj in os_record.projects] - record['roles'] = [role for role in os_record.roles] - keys = self.shell.key_pair_get_all_by_user(name) + proj in projects] + record['roles'] = self.shell.db.user_get_roles(name) + keys = self.shell.db.key_pair_get_all_by_user(name) record['keys'] = [key.public_key for key in keys] elif record['type'] == 'slice': - os_record = self.shell.project_get(name) + os_record = self.shell.auth_manager.get_project(name) record['description'] = os_record.description - record['PI'] = self.hrn + "." + os_record.project_manager + record['PI'] = [self.hrn + "." + os_record.project_manager.name] record['geni_creator'] = record['PI'] - record['researcher'] = [self.hrn + "." + user.name for \ - user in os_record.members] + record['researcher'] = [self.hrn + "." + user for \ + user in os_record.member_ids] else: continue record['geni_urn'] = hrn_to_urn(record['hrn'], record['type']) record['geni_certificate'] = record['gid'] record['name'] = os_record.name - if os_record.created_at is not None: - record['date_created'] = datetime_to_string(utcparse(os_record.created_at)) - if os_record.updated_at is not None: - record['last_updated'] = datetime_to_string(utcparse(os_record.updated_at)) + #if os_record.created_at is not None: + # record['date_created'] = datetime_to_string(utcparse(os_record.created_at)) + #if os_record.updated_at is not None: + # record['last_updated'] = datetime_to_string(utcparse(os_record.updated_at)) return records