X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fopenstack%2Fosxrn.py;h=6a3944c99a3cf65ffdc23a1c731ed0d9af12ce15;hb=1cc8e9613cab8b5b22478de369f259e591c54e6d;hp=752feecc9f53b9c6563d47a80391536958e08a34;hpb=e2169a950c8f943dbdd52047ad2acbbec5100f95;p=sfa.git diff --git a/sfa/openstack/osxrn.py b/sfa/openstack/osxrn.py index 752feecc..6a3944c9 100644 --- a/sfa/openstack/osxrn.py +++ b/sfa/openstack/osxrn.py @@ -2,14 +2,30 @@ import re from sfa.util.xrn import Xrn from sfa.util.config import Config +def hrn_to_os_slicename(hrn): + return OSXrn(xrn=hrn, type='slice').get_slicename() + + +def hrn_to_os_tenant_name(hrn): + return OSXrn(xrn=hrn, type='slice').get_tenant_name() + +def cleanup_name(name): + return name.replace(".", "_").replace("+", "_") + class OSXrn(Xrn): - def __init__(self, name=None, type=None, **kwds): + def __init__(self, name=None, auth=None, **kwds): config = Config() + self.id = id if name is not None: - self.type = type - self.hrn = config.SFA_INTERFACE_HRN + "." + name + Xrn.__init__(self, **kwds) + if 'type' in kwds: + self.type = kwds['type'] + if auth is not None: + self.hrn='.'.join([auth, cleanup_name(name)]) + else: + self.hrn = name.replace('_', '.') self.hrn_to_urn() else: Xrn.__init__(self, **kwds) @@ -24,4 +40,16 @@ class OSXrn(Xrn): name = re.sub('[^a-zA-Z0-9_]', '', name) return name - + + def get_slicename(self): + self._normalize() + slicename = self.hrn + slicename = slicename.split(':')[0] + slicename = re.sub('[\.]', '_', slicename) + return slicename + + def get_tenant_name(self): + self._normalize() + tenant_name = self.hrn.replace('\.', '') + return tenant_name +