fixed up the names of new site names/slices to be more PLC compatible
[sfa.git] / sfa / methods / redeem_ticket.py
index 3aec71d..82985e7 100644 (file)
@@ -2,13 +2,15 @@
 ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfacomponent/methods/reset_slice.py $
 import xmlrpclib
 from sfa.util.faults import *
-from sfa.util.misc import *
 from sfa.util.method import Method
 from sfa.util.parameter import Parameter, Mixed
+from sfa.methods.RedeemTicket import RedeemTicket
 
-class redeem_ticket(Method):
+class redeem_ticket(RedeemTicket):
     """
-    Reset the specified slice      
+    Deprecated. Use RedeemTicket instead.
+
+    Redeem a approved set of resource allocations (ticket).        
 
     @param cred credential string specifying the rights of the caller
     @param ticket 
@@ -19,32 +21,11 @@ class redeem_ticket(Method):
     
     accepts = [
         Parameter(str, "Credential string representation of SFA credential"),
-        Parameter(str, "Ticket  string representation of SFA ticket"),
-        Mixed(Parameter(str, "Request hash"),
-              Parameter(None, "Request hash not specified"))
+        Parameter(str, "Ticket  string representation of SFA ticket")
         ]
 
     returns = [Parameter(int, "1 if successful")]
     
-    def call(self, cred, ticket, request_hash=None):
-        # This cred will be an slice cred, not a user, so we cant use it to
-        # authenticate the caller's request_hash. Let just get the caller's gid
-        # from the cred and authenticate using that
-        client_gid = Credential(string=cred).get_gid_caller()
-        client_gid_str = client_gid.save_to_string(save_parents=True)
-        self.api.auth.authenticateGid(client_gid_str, [cred, hrn], request_hash)
-        self.api.auth.check(cred, 'redeemticket')
-        self.api.auth.check_ticket(ticket)
-
-        ticket = SfaTicket(string=ticket)
-        ticket.decode()
-        hrn = ticket.attributes['slivers'][0]['hrn']
-        slicename = hrn_to_pl_slicename(hrn)
-        if not self.api.sliver_exists(slicename):
-            raise SliverDoesNotExist(slicename)
+    def call(self, cred, ticket):
 
-        # convert ticket to format nm is used to
-        nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True)
-        self.api.nodemanager.AdminTicket(nm_ticket)
-        
-        return 1 
+        return RedeemTicket.call(self, ticket, cred)