- support signing XML-RPC methodResponses as well (for GetSliceTicket())
[plcapi.git] / PLC / Methods / DeleteSite.py
index d16946d..af5dedd 100644 (file)
@@ -5,7 +5,7 @@ from PLC.Sites import Site, Sites
 from PLC.Persons import Person, Persons
 from PLC.Nodes import Node, Nodes
 from PLC.PCUs import PCU, PCUs
-from PLC.Auth import PasswordAuth
+from PLC.Auth import Auth
 
 class DeleteSite(Method):
     """
@@ -20,20 +20,30 @@ class DeleteSite(Method):
     roles = ['admin']
 
     accepts = [
-        PasswordAuth(),
+        Auth(),
         Mixed(Site.fields['site_id'],
               Site.fields['login_base'])
         ]
 
     returns = Parameter(int, '1 if successful')
 
+    object_type = 'Site'
+
+
     def call(self, auth, site_id_or_login_base):
         # Get account information
         sites = Sites(self.api, [site_id_or_login_base])
         if not sites:
             raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
 
-        site = sites.values()[0]
         site.delete()
+       
+       # Logging variables
+       self.object_ids = [site['site_id']]
+       self.message = 'Site %d deleted' % site['site_id']      
 
         return 1