summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge L. Williams <jorge.williams@rackspace.com>2011-04-21 04:13:36 -0500
committerJorge L. Williams <jorge.williams@rackspace.com>2011-04-21 04:13:36 -0500
commit34e212b49135f86f535451afa2fc130876b52fe2 (patch)
tree993fbd9eec84adf0759439bb3bf1d5af80d27c20
parent2365a53b04d9d4b71bfb7f7b3d4bea54158ee40b (diff)
Translations of auth to XML and JSON.
-rw-r--r--keystone/logic/types/auth.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/keystone/logic/types/auth.py b/keystone/logic/types/auth.py
index fed078d7..aadc06d2 100644
--- a/keystone/logic/types/auth.py
+++ b/keystone/logic/types/auth.py
@@ -14,6 +14,8 @@
# limitations under the License.
from abc import ABCMeta
+import simplejson as json
+from lxml import etree
class Credentials(object):
@@ -125,3 +127,46 @@ class AuthData(object):
@property
def token(self):
return self.__token
+
+ def to_xml(self):
+ dom = etree.Element("auth",
+ xmlns="http://docs.openstack.org/idm/api/v1.0")
+ token = etree.Element("token",
+ expires=self.__token.expires)
+ token.set("id", self.__token.token_id)
+ user = etree.Element("user",
+ username=self.__user.username,
+ tenantId=self.__user.tenant_id)
+ groups = etree.Element("groups")
+ for group in self.__user.groups.values:
+ g = etree.Element("group",
+ tenantId=group.tenant_id)
+ g.set("id", group.group_id)
+ groups.append(g)
+ user.append(groups)
+ dom.append(token)
+ dom.append(user)
+ return etree.tostring(dom)
+
+ def to_json(self):
+ token = {}
+ token["id"] = self.__token.token_id
+ token["expires"] = self.__token.expires
+ user = {}
+ user["username"] = self.__user.username
+ user["tenantId"] = self.__user.tenant_id
+ group = []
+ for g in self.__user.groups.values:
+ grp = {}
+ grp["tenantId"] = g.tenant_id
+ grp["id"] = g.group_id
+ group.append(grp)
+ groups = {}
+ groups["group"] = group
+ user["groups"] = groups
+ auth = {}
+ auth["token"] = token
+ auth["user"] = user
+ ret = {}
+ ret["auth"] = auth
+ return json.dumps(ret)