r2lab is migrating from a previous depl. based on omf_sfa
[plcapi.git] / PLC / Methods / AddSlice.py
index 4802517..51918f4 100644 (file)
@@ -13,6 +13,8 @@ from PLC.SliceTags import SliceTags
 from PLC.Methods.AddSliceTag import AddSliceTag
 from PLC.Methods.UpdateSliceTag import UpdateSliceTag
 
+from PLC.Debug import log
+
 can_update = ['name', 'instantiation', 'url', 'description', 'max_nodes']
 
 class AddSlice(Method):
@@ -61,7 +63,7 @@ class AddSlice(Method):
         # 3. Then single underscore after login_base.
         # 4. Then letters, numbers, or underscores.
         name = slice_fields['name']
-        good_name = r'^[a-z0-9]+_[a-zA-Z0-9_]+$'
+        good_name = r'^[a-z0-9\.]+_[a-zA-Z0-9_\.]+$'
         if not name or \
            not re.match(good_name, name):
             raise PLCInvalidArgument, "Invalid slice name"
@@ -90,6 +92,10 @@ class AddSlice(Method):
         slice['site_id'] = site['site_id']
         slice.sync()
 
+        # Set Slice HRN
+        root_auth = self.api.config.PLC_HRN_ROOT
+        tags['hrn'] = '.'.join([root_auth, login_base, name.split("_")[1]])
+
         for (tagname,value) in tags.iteritems():
             # the tagtype instance is assumed to exist, just check that
             if not TagTypes(self.api,{'tagname':tagname}):
@@ -106,9 +112,9 @@ class AddSlice(Method):
             for value in values:
                 AddSliceTag(self.api).__call__(auth,slice['slice_id'],'vsys',value)
         except:
-            print "Could not set vsys tags as configured in PLC_VSYS_DEFAULTS"
+            print >> log, "Could not set vsys tags as configured in PLC_VSYS_DEFAULTS"
             import traceback
-            traceback.print_exc()
+            traceback.print_exc(file=log)
         self.event_objects = {'Slice': [slice['slice_id']]}
         self.message = "Slice %d created" % slice['slice_id']