fix bugs
[sfa.git] / sfa / openstack / osxrn.py
1 import re
2 from sfa.util.xrn import Xrn
3 from sfa.util.config import Config
4
5 def hrn_to_os_slicename(hrn):
6     return OSXrn(xrn=hrn, type='slice').get_slicename()
7
8 def cleanup_name(name):
9     return name.replace(".", "_").replace("+", "_")                
10
11 class OSXrn(Xrn):
12
13     def __init__(self, name=None, auth=None, **kwds):
14         
15         config = Config()
16         if name is not None:
17             if 'type' in kwds:
18                 self.type = kwds['type']
19             if auth is not None:
20                 self.hrn='.'.join([auth, cleanup_name(name)]) 
21             else:
22                 self.hrn = config.SFA_INTERFACE_HRN + "." + cleanup_name(name)
23             self.hrn_to_urn()
24         else:
25             Xrn.__init__(self, **kwds)   
26          
27         self.name = self.get_name() 
28     
29     def get_name(self):
30         self._normalize()
31         leaf = self.leaf
32         sliver_id_parts = leaf.split(':')
33         name = sliver_id_parts[0]
34         name = re.sub('[^a-zA-Z0-9_]', '', name)
35         return name
36
37
38     def get_slicename(self):
39         self._normalize()
40         slicename = self.hrn
41         slicename = slicename.split(':')[0]
42         slicename = re.sub('[\.]', '_', slicename)
43         return slicename
44         
45