- def call(self, cred, hrn, request_hash=None):
- self.api.auth.authenticateCred(cred, [cred, hrn], request_hash)
- self.api.auth.check(cred, "getticket")
- self.api.auth.verify_object_belongs_to_me(hrn)
- self.api.auth.verify_object_permission(hrn)
-
- table = GeniTable()
- records = table.findObjects({'hrn': hrn, 'type': 'slice'})
- if not records:
- raise RecordNotFound(hrn)
- record = records
- object_gid = record.get_gid_object()
- new_ticket = SfaTicket(subject = object_gid.get_subject())
- new_ticket.set_gid_caller(self.client_gid)
- new_ticket.set_gid_object(object_gid)
- new_ticket.set_issuer(key=auth_info.get_pkey_object(), subject=auth_hrn)
- new_ticket.set_pubkey(object_gid.get_pubkey())
-
- # get sliver info
- slivers = Slices(self.api).get_slivers(hrn)
- if not slivers:
- raise SliverDoesNotExist(hrn)
- sliver = slivers[0]
-
- # get initscripts
- initscripts = None
- sliver['initscripts'] = initscripts
-
- # get rspec info
- # conver plc slice tags to rspec attributes
- rspec = None
-
- new_ticket.set_attributes(sliver)
- new_ticket.set_rspec(rspec)
+ def call(self, cred, hrn, rspec, origin_hrn=None):
+ user_cred = Credential(string=cred)