from sfa.trust.certificate import Keypair
from sfa.util.faults import *
+from sfa.util.namespace import *
from sfa.util.method import Method
from sfa.util.parameter import Parameter, Mixed
-from sfa.util.auth import Auth
+from sfa.trust.gid import create_uuid
+from sfa.trust.auth import Auth
class create_gid(Method):
"""
accepts = [
Parameter(str, "Credential string"),
- Parameter(str, "Human readable name (hrn)"),
+ Parameter(str, "Human readable name (hrn or urn)"),
Mixed(Parameter(str, "Unique identifier for new GID (uuid)"),
Parameter(None, "Unique identifier (uuid) not specified")),
Parameter(str, "public-key string")
returns = Parameter(str, "String represeneation of a GID object")
- def call(self, cred, hrn, uuid, pubkey_str):
+ def call(self, cred, xrn, uuid, pubkey_str):
+
+ # convert urn to hrn
+ hrn, type = hrn_to_urn(xrn)
+
+ # validate the credential
self.api.auth.check(cred, "getcredential")
self.api.auth.verify_object_belongs_to_me(hrn)
self.api.auth.verify_object_permission(hrn)
pkey = Keypair()
pkey.load_pubkey_from_string(pubkey_str)
- gid = self.api.auth.hierarchy.create_gid(hrn, uuid, pkey)
+ gid = self.api.auth.hierarchy.create_gid(xrn, uuid, pkey)
return gid.save_to_string(save_parents=True)