3f449c690b3543df8446e4ef2e97f94dbce0842f
[sfa.git] / util / gid.py
1 # gid.py
2 #
3 # implements GENI GID
4
5 from cert import *
6 import uuid
7 import xmlrpclib
8
9 # GID is a tuplie:
10 #    (uuid, hrn, public_key)
11
12 def create_uuid():
13     return str(uuid.uuid4().int)
14
15 class GID(Certificate):
16     uuid = None
17     hrn = None
18
19     def __init__(self, create=False, subject=None, string=None, filename=None, uuid=None, hrn=None):
20         Certificate.__init__(self, create, subject, string, filename)
21         if uuid:
22             self.uuid = uuid
23         if hrn:
24             self.hrn = hrn
25
26     def set_uuid(self, uuid):
27         self.uuid = uuid
28
29     def get_uuid(self):
30         if not self.uuid:
31             self.decode()
32         return self.uuid
33
34     def set_hrn(self, hrn):
35         self.hrn = hrn
36
37     def get_hrn(self):
38         if not self.hrn:
39             self.decode()
40         return self.hrn
41
42     def encode(self):
43         dict = {"uuid": self.uuid,
44                 "hrn": self.hrn}
45         str = xmlrpclib.dumps((dict,))
46         self.set_data(str)
47
48     def decode(self):
49         data = self.get_data()
50         if data:
51             dict = xmlrpclib.loads(self.get_data())[0][0]
52         else:
53             dict = {}
54
55         self.uuid = dict.get("uuid", None)
56         self.hrn = dict.get("hrn", None)
57
58     # XXX: I may have decided not to use this
59     def get_cache_key(self):
60         return self.get_cache_uuid() + self.get_cache_name()
61
62     # XXX: I may have decided not to use this
63     def get_cache_uuid(self):
64         return self.get_uuid()
65
66     # XXX: I may have decided not to use this
67     def get_cache_name(self):
68         return self.get_name()
69
70
71