X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=PLC%2FMethods%2FAddSlice.py;h=51918f41602241db1a754d26eddf48bea2c508d1;hb=13901cd4465288b634103c1997a5653500f2b5cc;hp=0274e0191627252fab90d310d6cfbff69c6a9d4d;hpb=bd0cbf4f7f2e4cf7ceda500bfa6f98c0a700018b;p=plcapi.git diff --git a/PLC/Methods/AddSlice.py b/PLC/Methods/AddSlice.py index 0274e01..51918f4 100644 --- a/PLC/Methods/AddSlice.py +++ b/PLC/Methods/AddSlice.py @@ -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}): @@ -100,6 +106,15 @@ class AddSlice(Method): else: UpdateSliceTag(self.api).__call__(auth,slice_tags[0]['slice_tag_id'],value) + # take PLC_VSYS_DEFAULTS into account for convenience + try: + values= [ y for y in [ x.strip() for x in self.api.config.PLC_VSYS_DEFAULTS.split(',') ] if y ] + for value in values: + AddSliceTag(self.api).__call__(auth,slice['slice_id'],'vsys',value) + except: + print >> log, "Could not set vsys tags as configured in PLC_VSYS_DEFAULTS" + import traceback + traceback.print_exc(file=log) self.event_objects = {'Slice': [slice['slice_id']]} self.message = "Slice %d created" % slice['slice_id']