From: Tony Mack Date: Tue, 3 Apr 2007 19:19:36 +0000 (+0000) Subject: - support 'initscripts' table as possible slice_attributes X-Git-Tag: PLCAPI-4.2-0~152 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=067d815a444d454c6fb45c50e242353e65c0e4d6;p=plcapi.git - support 'initscripts' table as possible slice_attributes --- diff --git a/PLC/Methods/AddSliceAttribute.py b/PLC/Methods/AddSliceAttribute.py index 83acef0e..22e7a38a 100644 --- a/PLC/Methods/AddSliceAttribute.py +++ b/PLC/Methods/AddSliceAttribute.py @@ -5,6 +5,7 @@ from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes from PLC.Slices import Slice, Slices from PLC.Nodes import Node, Nodes from PLC.SliceAttributes import SliceAttribute, SliceAttributes +from PLC.InitScripts import InitScript, InitScripts from PLC.Auth import Auth class AddSliceAttribute(Method): @@ -30,7 +31,8 @@ class AddSliceAttribute(Method): SliceAttribute.fields['name']), Mixed(SliceAttribute.fields['attribute_type_id'], SliceAttribute.fields['name']), - SliceAttribute.fields['value'], + Mixed(SliceAttribute.fields['value'], + InitScript.fields['initscript_id']), Mixed(Node.fields['node_id'], Node.fields['hostname']) ] @@ -60,6 +62,12 @@ class AddSliceAttribute(Method): min(self.caller['role_ids']) > attribute_type['min_role_id']: raise PLCPermissionDenied, "Not allowed to set the specified slice attribute" + # if initscript is specified, validate value + if attribute_type['name'] in ['plc_initscript_id']: + initscripts = InitScripts(self.api, [value]) + if not initscripts: + raise PLCInvalidArgument, "No such plc initscript" + slice_attribute = SliceAttribute(self.api) slice_attribute['slice_id'] = slice['slice_id'] slice_attribute['attribute_type_id'] = attribute_type['attribute_type_id']