RSpecVersion.todict() needs to turn values() into a list()
[sfa.git] / sfa / openstack / osxrn.py
index 752feec..6a3944c 100644 (file)
@@ -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
+