first draft for node tags & new node groups:
[plcapi.git] / PLC / Methods / DeleteNodeNetworkSetting.py
diff --git a/PLC/Methods/DeleteNodeNetworkSetting.py b/PLC/Methods/DeleteNodeNetworkSetting.py
deleted file mode 100644 (file)
index eae2112..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Thierry Parmentelat - INRIA
-#
-# $Revision$
-#
-
-from PLC.Faults import *
-from PLC.Method import Method
-from PLC.Parameter import Parameter, Mixed
-from PLC.Auth import Auth
-
-from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
-from PLC.NodeNetworks import NodeNetwork, NodeNetworks
-
-from PLC.Nodes import Node, Nodes
-from PLC.Sites import Site, Sites
-
-class DeleteNodeNetworkSetting(Method):
-    """
-    Deletes the specified nodenetwork setting
-
-    Attributes may require the caller to have a particular role in order
-    to be deleted, depending on the related nodenetwork setting type.
-    Admins may delete attributes of any slice or sliver.
-
-    Returns 1 if successful, faults otherwise.
-    """
-
-    roles = ['admin', 'pi', 'user']
-
-    accepts = [
-        Auth(),
-        NodeNetworkSetting.fields['nodenetwork_setting_id']
-        ]
-
-    returns = Parameter(int, '1 if successful')
-
-    object_type = 'NodeNetwork'
-
-
-    def call(self, auth, nodenetwork_setting_id):
-        nodenetwork_settings = NodeNetworkSettings(self.api, [nodenetwork_setting_id])
-        if not nodenetwork_settings:
-            raise PLCInvalidArgument, "No such nodenetwork setting %r"%nodenetwork_setting_id
-        nodenetwork_setting = nodenetwork_settings[0]
-
-        ### reproducing a check from UpdateSliceAttribute, looks dumb though
-        nodenetworks = NodeNetworks(self.api, [nodenetwork_setting['nodenetwork_id']])
-        if not nodenetworks:
-            raise PLCInvalidArgument, "No such nodenetwork %r"%nodenetwork_setting['nodenetwork_id']
-        nodenetwork = nodenetworks[0]
-
-        assert nodenetwork_setting['nodenetwork_setting_id'] in nodenetwork['nodenetwork_setting_ids']
-
-       # check permission : it not admin, is the user affiliated with the right site
-       if 'admin' not in self.caller['roles']:
-           # locate node
-           node = Nodes (self.api,[nodenetwork['node_id']])[0]
-           # locate site
-           site = Sites (self.api, [node['site_id']])[0]
-           # check caller is affiliated with this site
-           if self.caller['person_id'] not in site['person_ids']:
-               raise PLCPermissionDenied, "Not a member of the hosting site %s"%site['abbreviated_site']
-           
-           required_min_role = nodenetwork_setting_type ['min_role_id']
-           if required_min_role is not None and \
-                   min(self.caller['role_ids']) > required_min_role:
-               raise PLCPermissionDenied, "Not allowed to modify the specified nodenetwork setting, requires role %d",required_min_role
-
-        nodenetwork_setting.delete()
-       self.object_ids = [nodenetwork_setting['nodenetwork_setting_id']]
-
-        return 1