removed another bunch of references to geni
[sfa.git] / sfa / methods / remove_peer_object.py
index b9c57a7..32b756a 100644 (file)
@@ -2,11 +2,10 @@ from sfa.util.faults import *
 from sfa.util.method import Method
 from sfa.util.parameter import Parameter, Mixed
 from sfa.trust.auth import Auth
-from sfa.util.record import GeniRecord
-from sfa.util.genitable import GeniTable
+from sfa.util.record import SfaRecord
+from sfa.util.table import SfaTable
 from sfa.util.debug import log
 from sfa.trust.credential import Credential
-from sfa.util.misc import *
 from types import StringTypes
 
 class remove_peer_object(Method):
@@ -26,27 +25,32 @@ class remove_peer_object(Method):
     
     accepts = [
         Parameter(str, "Credential string"),
-        Parameter(dict, "Record dictionary")
+        Parameter(dict, "Record dictionary"),
+        Mixed(Parameter(str, "Human readable name of the original caller"),
+              Parameter(None, "Origin hrn not specified"))
         ]
 
     returns = Parameter(int, "1 if successful")
     
-    def call(self, cred, record, caller_cred=None):
-        if caller_cred==None:
-            caller_cred=cred
+    def call(self, cred, record, origin_hrn=None):
+        user_cred = Credential(string=cred)
+
         #log the call
-        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, Credential(string=caller_cred).get_gid_caller().get_hrn(), record['hrn'], self.name))
-        
+        if not origin_hrn:
+            origin_hrn = user_cred.get_gid_caller().get_hrn()
+        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name))
+
         self.api.auth.check(cred, "remove")
 
         # Only allow the local interface or record owner to delete peer_records 
         try: self.api.auth.verify_object_permission(record['hrn'])
         except: self.api.auth.verify_cred_is_me(cred)
         
-        table = GeniTable()
+        table = SfaTable()
         hrn, type = record['hrn'], record['type']
         records = table.find({'hrn': hrn, 'type': type })
         for record in records:
+         if record['peer_authority']:
             self.remove_plc_record(record)
             table.remove(record)
             
@@ -84,16 +88,16 @@ class remove_peer_object(Method):
             self.api.plshell.DeleteSite(self.api.plauth, site['site_id'])
            
         else:
-            raise UnknownGeniType(type)
+            raise UnknownSfaType(type)
 
         return 1
 
     def get_peer_name(self, peer_id):
         peers = self.api.plshell.GetPeers(self.api.plauth, [peer_id], ['peername', 'shortname', 'hrn_root'])
         if not peers:
-            raise GeniInvalidArgument, "No such peer"
+            raise SfaInvalidArgument, "No such peer"
         peer = peers[0]
-        return peer['peername'] 
+        return peer['shortname']