X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddSlice.py;h=9cce2b0fc6670f7ba74ca2a0d208ab83a9ebc7f5;hb=e25d1555c7f4854e71f3082da697eb0b0f3c7733;hp=0116803d3b3d00e037fa81e1a95ff6000f69cb5e;hpb=ed7fa1ebf97ec2f88f18f8fa538e46c6ae9525c4;p=plcapi.git diff --git a/PLC/Methods/AddSlice.py b/PLC/Methods/AddSlice.py index 0116803..9cce2b0 100644 --- a/PLC/Methods/AddSlice.py +++ b/PLC/Methods/AddSlice.py @@ -4,7 +4,7 @@ from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed from PLC.Slices import Slice, Slices -from PLC.Auth import PasswordAuth +from PLC.Auth import Auth from PLC.Sites import Site, Sites can_update = lambda (field, value): field in \ @@ -32,17 +32,14 @@ class AddSlice(Method): slice_fields = dict(filter(can_update, Slice.fields.items())) accepts = [ - PasswordAuth(), + Auth(), slice_fields ] returns = Parameter(int, 'New slice_id (> 0) if successful') - event_type = 'Add' - object_type = 'Slice' - object_ids = [] - def call(self, auth, slice_fields = {}): + def call(self, auth, slice_fields): slice_fields = dict(filter(can_update, slice_fields.items())) # 1. Lowercase. @@ -57,17 +54,19 @@ class AddSlice(Method): # Get associated site details login_base = name.split("_")[0] - sites = Sites(self.api, [login_base]).values() + sites = Sites(self.api, [login_base]) if not sites: - raise PLCInvalidArgument, "Invalid slice prefix" + raise PLCInvalidArgument, "Invalid slice prefix %s in %s"%(login_base,name) site = sites[0] if 'admin' not in self.caller['roles']: if site['site_id'] not in self.caller['site_ids']: - raise PLCPermissionDenied, "Slice prefix must be the same as the login_base of one of your sites" + raise PLCPermissionDenied, "Slice prefix %s must be the same as the login_base of one of your sites"%login_base if len(site['slice_ids']) >= site['max_slices']: - raise PLCInvalidArgument, "Site has reached its maximum allowable slice count" + raise PLCInvalidArgument, "Site %s has reached (%d) its maximum allowable slice count (%d)"%(site['name'], + len(site['slice_ids']), + site['max_slices']) slice = Slice(self.api, slice_fields) slice['creator_person_id'] = self.caller['person_id']