RSpecVersion.todict() needs to turn values() into a list()
[sfa.git] / sfa / openstack / osxrn.py
index ad82f22..6a3944c 100644 (file)
@@ -3,16 +3,29 @@ 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()        
+    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)   
@@ -34,5 +47,9 @@ class OSXrn(Xrn):
         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
+