git://git.onelab.eu
/
plcapi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changes to the DB are committed at once, rather than once at the end of the job
[plcapi.git]
/
PLC
/
Methods
/
UpdateSliceAttribute.py
diff --git
a/PLC/Methods/UpdateSliceAttribute.py
b/PLC/Methods/UpdateSliceAttribute.py
index
81096a4
..
3c21403
100644
(file)
--- a/
PLC/Methods/UpdateSliceAttribute.py
+++ b/
PLC/Methods/UpdateSliceAttribute.py
@@
-3,6
+3,7
@@
from PLC.Method import Method
from PLC.Parameter import Parameter, Mixed
from PLC.SliceAttributes import SliceAttribute, SliceAttributes
from PLC.Slices import Slice, Slices
from PLC.Parameter import Parameter, Mixed
from PLC.SliceAttributes import SliceAttribute, SliceAttributes
from PLC.Slices import Slice, Slices
+from PLC.InitScripts import InitScript, InitScripts
from PLC.Auth import Auth
class UpdateSliceAttribute(Method):
from PLC.Auth import Auth
class UpdateSliceAttribute(Method):
@@
-22,7
+23,8
@@
class UpdateSliceAttribute(Method):
accepts = [
Auth(),
SliceAttribute.fields['slice_attribute_id'],
accepts = [
Auth(),
SliceAttribute.fields['slice_attribute_id'],
- SliceAttribute.fields['value']
+ Mixed(SliceAttribute.fields['value'],
+ InitScript.fields['name'])
]
returns = Parameter(int, '1 if successful')
]
returns = Parameter(int, '1 if successful')
@@
-32,13
+34,11
@@
class UpdateSliceAttribute(Method):
if not slice_attributes:
raise PLCInvalidArgument, "No such slice attribute"
slice_attribute = slice_attributes[0]
if not slice_attributes:
raise PLCInvalidArgument, "No such slice attribute"
slice_attribute = slice_attributes[0]
- PLCCheckLocalSliceAttribute(slice_attribute,"UpdateSliceAttribute")
slices = Slices(self.api, [slice_attribute['slice_id']])
if not slices:
raise PLCInvalidArgument, "No such slice"
slice = slices[0]
slices = Slices(self.api, [slice_attribute['slice_id']])
if not slices:
raise PLCInvalidArgument, "No such slice"
slice = slices[0]
- PLCCheckLocalSlice(slice,"UpdateSliceAttribute")
assert slice_attribute['slice_attribute_id'] in slice['slice_attribute_ids']
assert slice_attribute['slice_attribute_id'] in slice['slice_attribute_ids']
@@
-53,8
+53,13
@@
class UpdateSliceAttribute(Method):
if slice_attribute['min_role_id'] is not None and \
min(self.caller['role_ids']) > slice_attribute['min_role_id']:
raise PLCPermissionDenied, "Not allowed to update the specified attribute"
if slice_attribute['min_role_id'] is not None and \
min(self.caller['role_ids']) > slice_attribute['min_role_id']:
raise PLCPermissionDenied, "Not allowed to update the specified attribute"
+
+ if slice_attribute['tagname'] in ['initscript']:
+ initscripts = InitScripts(self.api, {'enabled': True, 'name': value})
+ if not initscripts:
+ raise PLCInvalidArgument, "No such plc initscript"
- slice_attribute['value'] =
value
+ slice_attribute['value'] =
unicode(value)
slice_attribute.sync()
slice_attribute.sync()
- self.
object_ids = [slice_attribute['slice_attribute_id']]
+ self.
event_objects = {'SliceAttribute': [slice_attribute['slice_attribute_id']]}
return 1
return 1