1
2
3
4
5
6
7
8
9
10
11
12
13 from twisted.application import internet, service
14 from twisted.web import server,static
15 from twisted.web.resource import Resource
16 from twisted.python import usage, log
17 import sys
18
19
20 from zephir.backend.config import PATH_ZEPHIR
21 from zephir.certificats import ServerContextFactory
22 from zephir.monitor.agentmanager import config as cfg, util
23 from zephir.monitor.agentmanager.zephirservice import ZephirService
24
25 from zephir.backend import etabs_rpc
26 from zephir.backend import users_rpc
27 from zephir.backend import modules_rpc
28 from zephir.backend import serveurs_rpc
29 from zephir.backend import uucp_rpc
30 from zephir.backend import services_rpc
31 from zephir.backend import prelude_rpc
32 from zephir.backend import local_rpc
33
34
35
37 optParameters = [["portRPC", "x", 7080, "Numero de port pour le serveur xmlrpc."],
38 ["portHTTP", "p", 8090, "Numero de port pour le serveur HTTP"],
39 ["config", None, cfg.DEFAULT_CONFIG['config_dir'],
40 "Directory to search for configurations when loading agents"],
41 ["data", None, cfg.DEFAULT_CONFIG['state_dir'],
42 "Directory where state data will be stored"],
43 ["archive", None, cfg.DEFAULT_CONFIG['uucp_dir'],
44 "Directory where the upload archive will be created"],
45 ["static", None, cfg.DEFAULT_CONFIG['static_web_dir'],
46 "Directory for static web data (graphics, stylesheets...)"],
47 ]
48
50
51 config_ag = cfg.DEFAULT_CONFIG.copy()
52 log.startLogging(sys.stdout)
53
54 config_ag['config_dir'] = "monitor/configs"
55 config_ag['state_dir'] = "/var/lib/zephir/data"
56 config_ag['uucp_dir'] = "monitor/tmp"
57 config_ag['static_web_dir'] = "/var/lib/zephir/sites"
58 config_ag['static_base_url'] = "/sites"
59
60 portRPC = int(config["portRPC"])
61 portHTTP = int(config["portHTTP"])
62 root = Resource()
63
64 Server3 = ZephirService(config_ag,root_resource=root).with_updater_and_publisher()
65
66
67 zephir_users = users_rpc.RPCUsers()
68
69 zephir_etabs = etabs_rpc.RPCEtabs(zephir_users)
70 zephir_modules = modules_rpc.RPCModules(zephir_users)
71 zephir_serveurs = serveurs_rpc.RPCServeurs(zephir_users, Server3.publisher.manager)
72 zephir_uucp = uucp_rpc.RPCUucp(zephir_users, Server3.publisher.manager)
73 zephir_services = services_rpc.RPCServices(zephir_users)
74 zephir_prelude = prelude_rpc.RPCPrelude(zephir_users)
75 zephir_local = local_rpc.RPCLocal(zephir_users)
76
77 zephir_users.putSubHandler('etabs',zephir_etabs)
78 zephir_users.putSubHandler('modules',zephir_modules)
79 zephir_users.putSubHandler('serveurs',zephir_serveurs)
80 zephir_users.putSubHandler('uucp',zephir_uucp)
81 zephir_users.putSubHandler('services',zephir_services)
82 zephir_users.putSubHandler('prelude',zephir_prelude)
83 zephir_users.putSubHandler('local',zephir_local)
84 rpc_server = server.Site(zephir_users)
85
86 root.putChild('sites',static.File(PATH_ZEPHIR+"sites/"))
87 root.putChild('client',static.File(PATH_ZEPHIR+"sites/client"))
88 root.putChild('static',static.File(PATH_ZEPHIR+"sites/"))
89
90 appli = service.Application("zephir_backend")
91 myService = service.IServiceCollection(appli)
92 Server3.setServiceParent(myService)
93
94 Server2 = internet.SSLServer(portHTTP, server.Site(root),ServerContextFactory())
95 Server2.setServiceParent(myService)
96 Server1 = internet.SSLServer(portRPC, rpc_server, ServerContextFactory())
97 Server1local = internet.TCPServer(portRPC + 1, rpc_server, interface='localhost')
98 Server1.setServiceParent(myService)
99 Server1local.setServiceParent(myService)
100 return myService
101