xmlprotocol.get_server doesn't accept the fourth (protocol) argument.
[sfa.git] / sfa / client / sfi.py
index 06feea8..ce1f649 100755 (executable)
@@ -372,13 +372,12 @@ class Sfi:
         else:
             # bootstrap user credential
             cert_string = self.cert.save_to_string(save_parents=True)
-            request_hash = self.key.compute_hash([cert_string, "user", self.user])
             user_name=self.user.replace(self.authority+".", '')
             if user_name.count(".") > 0:
                 user_name = user_name.replace(".", '_')
                 self.user=self.authority + "." + user_name
 
-            user_cred = self.registry.get_self_credential(cert_string, "user", self.user, request_hash)
+            user_cred = self.registry.get_self_credential(cert_string, "user", self.user)
             if user_cred:
                cred = Credential(string=user_cred)
                cred.save_to_file(file, save_parents=True)
@@ -603,7 +602,7 @@ class Sfi:
            print "Error: Object credential", object_hrn, "does not have delegate bit set"
            return
     
-       records = self.registry.resolve(user_cred, args[0])
+       records = self.registry.resolve(user_cred.save_to_string(save_parents=True), args[0])
        records = filter_records("user", records)
     
        if not records:
@@ -611,14 +610,14 @@ class Sfi:
            return
     
        # the gid of the user who will be delegated too
-       delegee_gid = records[0].get_gid_object()
+       delegee_gid = GID(string=records[0]['gid'])
        delegee_hrn = delegee_gid.get_hrn()
-    
+   
        # the key and hrn of the user who will be delegating
        user_key = Keypair(filename = self.get_key_file())
        user_hrn = user_cred.get_gid_caller().get_hrn()
-    
-       dcred = Credential(subject=object_hrn + " delegated to " + delegee_hrn)
+       subject_string = "%s delegated to %s" % (object_hrn, delegee_hrn)
+       dcred = Credential(subject=subject_string)
        dcred.set_gid_caller(delegee_gid)
        dcred.set_gid_object(object_gid)
        dcred.set_privileges(object_cred.get_privileges())
@@ -783,7 +782,7 @@ class Sfi:
                 raise Exception, "No such aggregate %s" % opts.aggregate
             aggregate = aggregates[0]
             url = "http://%s:%s" % (aggregate['addr'], aggregate['port'])
-            server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.protocol)
+            server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file)
         return server.create_slice(slice_cred, slice_hrn, rspec)
 
     # get a ticket for the specified slice
@@ -800,7 +799,7 @@ class Sfi:
                 raise Exception, "No such aggregate %s" % opts.aggregate
             aggregate = aggregates[0]
             url = "http://%s:%s" % (aggregate['addr'], aggregate['port'])
-            server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.protocol)
+            server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file)
         ticket_string = server.get_ticket(slice_cred, slice_hrn, rspec)
         file = os.path.join(self.options.sfi_dir, get_leaf(slice_hrn) + ".ticket")
         print "writing ticket to ", file