X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddSiteAddress.py;h=7a467e5b9e9cd0364a6b22c26a6075956800d28d;hb=1d3540bd2ece27d91a2ec5843628c5fa38a25024;hp=452499664252cc67f3c0cff07a5d198e504dddeb;hpb=ed7fa1ebf97ec2f88f18f8fa538e46c6ae9525c4;p=plcapi.git diff --git a/PLC/Methods/AddSiteAddress.py b/PLC/Methods/AddSiteAddress.py index 4524996..7a467e5 100644 --- a/PLC/Methods/AddSiteAddress.py +++ b/PLC/Methods/AddSiteAddress.py @@ -2,10 +2,10 @@ from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed from PLC.Addresses import Address, Addresses -from PLC.Auth import PasswordAuth +from PLC.Auth import Auth from PLC.Sites import Site, Sites -can_update = lambda (field, value): field in \ +can_update = lambda field_value: field_value[0] in \ ['line1', 'line2', 'line3', 'city', 'state', 'postalcode', 'country'] @@ -21,10 +21,10 @@ class AddSiteAddress(Method): roles = ['admin', 'pi'] - address_fields = dict(filter(can_update, Address.fields.items())) + address_fields = dict(list(filter(can_update, list(Address.fields.items())))) accepts = [ - PasswordAuth(), + Auth(), Mixed(Site.fields['site_id'], Site.fields['login_base']), address_fields @@ -32,27 +32,27 @@ class AddSiteAddress(Method): returns = Parameter(int, 'New address_id (> 0) if successful') - event_type = 'Add' - object_type = 'Address' - object_ids = [] - - def call(self, auth, site_id_or_login_base, address_fields = {}): - address_fields = dict(filter(can_update, address_fields.items())) + def call(self, auth, site_id_or_login_base, address_fields): + address_fields = dict(list(filter(can_update, list(address_fields.items())))) # Get associated site details - sites = Sites(self.api, [site_id_or_login_base]).values() + sites = Sites(self.api, [site_id_or_login_base]) if not sites: - raise PLCInvalidArgument, "No such site" + raise PLCInvalidArgument("No such site") site = sites[0] if 'admin' not in self.caller['roles']: if site['site_id'] not in self.caller['site_ids']: - raise PLCPermissionDenied, "Address must be associated with one of your sites" + raise PLCPermissionDenied("Address must be associated with one of your sites") address = Address(self.api, address_fields) address.sync(commit = False) site.add_address(address, commit = True) - self.object_ids = [site['site_id'], address['address_id']] + # Logging variables + self.event_objects = {'Site': [site['site_id']], + 'Address': [address['address_id']]} + self.message = 'Address %d assigned to Site %d' % \ + (address['address_id'], site['site_id']) return address['address_id']