From: Thierry Parmentelat Date: Sat, 25 Nov 2006 09:41:14 +0000 (+0000) Subject: more detailed info passed when raising an exception X-Git-Tag: pycurl-7_13_1~249 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=46f99b0a050a04f27b6c7a8cdb9d48368b20d0bb;p=plcapi.git more detailed info passed when raising an exception --- diff --git a/PLC/Methods/AddSlice.py b/PLC/Methods/AddSlice.py index f2edacc1..82627ced 100644 --- a/PLC/Methods/AddSlice.py +++ b/PLC/Methods/AddSlice.py @@ -58,15 +58,17 @@ class AddSlice(Method): login_base = name.split("_")[0] 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'] diff --git a/PLC/NodeNetworks.py b/PLC/NodeNetworks.py index a5a0f9d7..8733f8d3 100644 --- a/PLC/NodeNetworks.py +++ b/PLC/NodeNetworks.py @@ -4,7 +4,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: NodeNetworks.py,v 1.14 2006/11/09 03:07:42 mlhuang Exp $ +# $Id: NodeNetworks.py,v 1.15 2006/11/09 19:43:55 mlhuang Exp $ # from types import StringTypes @@ -69,18 +69,18 @@ class NodeNetwork(Row): def validate_method(self, method): network_methods = [row['method'] for row in NetworkMethods(self.api)] if method not in network_methods: - raise PLCInvalidArgument, "Invalid addressing method" + raise PLCInvalidArgument, "Invalid addressing method %s"%method return method def validate_type(self, type): network_types = [row['type'] for row in NetworkTypes(self.api)] if type not in network_types: - raise PLCInvalidArgument, "Invalid address type" + raise PLCInvalidArgument, "Invalid address type %s"%type return type def validate_ip(self, ip): if ip and not valid_ip(ip): - raise PLCInvalidArgument, "Invalid IP address " + ip + raise PLCInvalidArgument, "Invalid IP address %s"%ip return ip def validate_mac(self, mac): @@ -98,7 +98,7 @@ class NodeNetwork(Row): bytes[i] = "%02x" % byte mac = ":".join(bytes) except: - raise PLCInvalidArgument, "Invalid MAC address" + raise PLCInvalidArgument, "Invalid MAC address %s"%mac return mac @@ -115,14 +115,14 @@ class NodeNetwork(Row): return hostname if not PLC.Nodes.valid_hostname(hostname): - raise PLCInvalidArgument, "Invalid hostname" + raise PLCInvalidArgument, "Invalid hostname %s"%hostname return hostname def validate_node_id(self, node_id): nodes = PLC.Nodes.Nodes(self.api, [node_id]) if not nodes: - raise PLCInvalidArgument, "No such node" + raise PLCInvalidArgument, "No such node %d"%node_id return node_id @@ -134,7 +134,7 @@ class NodeNetwork(Row): if is_primary: nodes = PLC.Nodes.Nodes(self.api, [self['node_id']]) if not nodes: - raise PLCInvalidArgument, "No such node" + raise PLCInvalidArgument, "No such node %d"%node_id node = nodes[0] if node['nodenetwork_ids']: diff --git a/PLC/Table.py b/PLC/Table.py index 95244636..328c1d21 100644 --- a/PLC/Table.py +++ b/PLC/Table.py @@ -39,7 +39,7 @@ class Row(dict): mandatory_fields = self.api.db.fields(self.table_name, notnull = True, hasdef = False) for field in mandatory_fields: if not self.has_key(field) or self[field] is None: - raise PLCInvalidArgument, field + " must be specified and cannot be unset" + raise PLCInvalidArgument, field + " must be specified and cannot be unset in class %s"%self.__class__.__name__ # Validate values before committing for key, value in self.iteritems():