an attempt to get more feedback from a node that fails to boot
[plcapi.git] / PLC / Methods / BlacklistKey.py
index d62b776..86721e9 100644 (file)
@@ -2,7 +2,7 @@ from PLC.Faults import *
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 from PLC.Keys import Key, Keys
-from PLC.Auth import PasswordAuth
+from PLC.Auth import Auth
 
 class BlacklistKey(Method):
     """
@@ -18,7 +18,7 @@ class BlacklistKey(Method):
     roles = ['admin']
 
     accepts = [
-        PasswordAuth(),
+        Auth(),
         Key.fields['key_id'],
         ]
 
@@ -26,11 +26,17 @@ class BlacklistKey(Method):
 
     def call(self, auth, key_id):
         # Get associated key details
-        keys = Keys(self.api, [key_id]).values()
+        keys = Keys(self.api, [key_id])
         if not keys:
-            raise PLCInvalidArgument, "No such key"
+            raise PLCInvalidArgument("No such key")
         key = keys[0]
 
+        # N.B.: Can blacklist any key, even foreign ones
+
         key.blacklist()
 
+        # Logging variables
+        self.event_objects = {'Key': [key['key_id']]}
+        self.message = 'Key %d blacklisted' % key['key_id']
+
         return 1