+
+ # 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}):
+ raise PLCInvalidArgument,"No such TagType %s"%tagname
+ slice_tags=SliceTags(self.api,{'tagname':tagname,'slice_id':slice['slice_id']})
+ if not slice_tags:
+ AddSliceTag(self.api).__call__(auth,slice['slice_id'],tagname,value)
+ 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']