8 from geniserver import *
10 from trustedroot import *
17 class ComponentManager(GeniServer):
18 def __init__(self, ip, port, key_file, cert_file):
19 GeniServer.__init__(self, ip, port, key_file, cert_file)
21 def register_functions(self):
22 GeniServer.register_functions(self)
23 self.server.register_function(self.stop_slice)
24 self.server.register_function(self.start_slice)
25 self.server.register_function(self.reset_slice)
26 self.server.register_function(self.delete_slice)
28 def stop_slice(self, cred_str):
29 self.decode_authentication(cred_str, "stopslice")
30 slicename = hrn_to_pl_slicename(self.object_gid.get_hrn())
31 print "stopslice:", slicename
32 accounts.get(slicename).start()
34 def start_slice(self, cred_str):
35 self.decode_authentication(cred_str, "startslice")
36 slicename = hrn_to_pl_slicename(self.object_gid.get_hrn())
37 print "startslice:", slicename
38 accounts.get(slicename).start()
40 def reset_slice(self, cred_str):
41 self.decode_authentication(cred_str, "resetslice")
42 slicename = hrn_to_pl_slicename(self.object_gid.get_hrn())
43 print "resetslice:", slicename
44 accounts.get(slicename).stop()
45 accounts.get(slicename).ensure_destroyed()
46 accounts.get(slicename).ensure_created()
48 def delete_slice(self, cred_str):
49 self.decode_authentication(cred_str, "deleteslice")
50 slicename = hrn_to_pl_slicename(self.object_gid.get_hrn())
51 print "deleteslice:", slicename
52 accounts.get(slicename).ensure_destroyed()
55 if __name__ == "__main__":
58 key_file = "component.key"
59 cert_file = "component.cert"
61 # if no key is specified, then make one up
62 if (not os.path.exists(key_file)) or (not os.path.exists(cert_file)):
63 key = Keypair(create=True)
64 key.save_to_file(key_file)
66 cert = Certificate(subject="component")
67 cert.set_issuer(key=key, subject="component")
70 cert.save_to_file(cert_file)
72 TrustedRoots = TrustedRootList()
74 s = ComponentManager("", 12345, key_file, cert_file)
75 s.trusted_cert_list = TrustedRoots.get_list()