730fc26f90c6018d15c4d0bd30b74c058f3bd12f
[sfa.git] / gacks / gacksserver.py
1 ##
2 # Gacks Server
3 ##
4
5 import tempfile
6 import os
7
8 import sys
9
10 from cert import *
11 from gid import *
12 from geniserver import *
13 from excep import *
14 from trustedroot import *
15 from misc import *
16 from record import *
17 from geniticket import *
18
19 ##
20 # GacksServer is a GeniServer that serves component interface requests.
21 #
22
23 class GacksServer(GeniServer):
24
25     ##
26     # Create a new GacksServer object.
27     #
28     # @param ip the ip address to listen on
29     # @param port the port to listen on
30     # @param key_file private key filename of registry
31     # @param cert_file certificate filename containing public key (could be a GID file)
32
33     def __init__(self, ip, port, key_file, cert_file):
34         GeniServer.__init__(self, ip, port, key_file, cert_file)
35
36     ##
37     # Register the server RPCs for Gacks
38
39     def register_functions(self):
40         GeniServer.register_functions(self)
41         self.server.register_function(self.get_handle)
42
43     def get_handle(self, rspec):
44         pass
45
46     def set_allocator(self, callerGid, Handle, allocatorGid, which, where, reqsig)
47         pass
48
49 if __name__ == "__main__":
50     global TrustedRoots
51
52     key_file = "gacksserver.key"
53     cert_file = "gacksserver.cert"
54
55     # if no key is specified, then make one up
56     if (not os.path.exists(key_file)) or (not os.path.exists(cert_file)):
57         key = Keypair(create=True)
58         key.save_to_file(key_file)
59
60         cert = Certificate(subject="component")
61         cert.set_issuer(key=key, subject="component")
62         cert.set_pubkey(key)
63         cert.sign()
64         cert.save_to_file(cert_file)
65
66     TrustedRoots = TrustedRootList()
67
68     s = ComponentManager("", 12346, key_file, cert_file)
69     s.trusted_cert_list = TrustedRoots.get_list()
70     s.run()
71