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
17 import sys
18
19
20 from zephir.backend.config import PATH_ZEPHIR, log, NO_LOCAL_AGENTS
21 from zephir.certificats import ServerContextFactory
22 from zephir.monitor.agentmanager import config as cfg
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 scheduler_rpc
33 from zephir.backend import sentinelle_rpc
34 from zephir.backend import ent_rpc
35 from zephir.backend import aaf_rpc
36 from zephir.backend import local_rpc
37
38
39
41 optParameters = [["portRPC", "x", 7080, "Numero de port pour le serveur xmlrpc."],
42 ["portHTTP", "p", 8090, "Numero de port pour le serveur HTTP"],
43 ["config", None, cfg.DEFAULT_CONFIG['config_dir'],
44 "Directory to search for configurations when loading agents"],
45 ["data", None, cfg.DEFAULT_CONFIG['state_dir'],
46 "Directory where state data will be stored"],
47 ["archive", None, cfg.DEFAULT_CONFIG['uucp_dir'],
48 "Directory where the upload archive will be created"],
49 ["static", None, cfg.DEFAULT_CONFIG['static_web_dir'],
50 "Directory for static web data (graphics, stylesheets...)"],
51 ]
52
54 config_ag = cfg.DEFAULT_CONFIG.copy()
55 log.startLogging(sys.stdout)
56
57 config_ag['config_dir'] = "monitor/configs"
58 config_ag['action_dir'] = "monitor/actions"
59 config_ag['state_dir'] = "/var/lib/zephir/data"
60 config_ag['uucp_dir'] = "/tmp"
61 config_ag['static_web_dir'] = "/var/lib/zephir/sites"
62 config_ag['static_base_url'] = "/sites"
63 config_ag['tmp_data_dir'] = "monitor/data"
64
65 portRPC = int(config["portRPC"])
66 portHTTP = int(config["portHTTP"])
67 root = Resource()
68
69 if NO_LOCAL_AGENTS == "oui":
70 Server3 = ZephirService(config_ag,root_resource=root).with_publisher()
71 else:
72 Server3 = ZephirService(config_ag,root_resource=root).with_updater_and_publisher()
73 zephir_users = users_rpc.RPCUsers()
74
75 zephir_etabs = etabs_rpc.RPCEtabs(zephir_users)
76 zephir_modules = modules_rpc.RPCModules(zephir_users)
77 zephir_serveurs = serveurs_rpc.RPCServeurs(zephir_users, Server3.publisher.manager)
78 zephir_uucp = uucp_rpc.RPCUucp(zephir_users, Server3.publisher.manager)
79 zephir_services = services_rpc.RPCServices(zephir_users)
80 zephir_prelude = prelude_rpc.RPCPrelude(zephir_users)
81 zephir_scheduler = scheduler_rpc.RPCScheduler(zephir_users)
82 zephir_sentinelle = sentinelle_rpc.RPCSentinelle(zephir_users, Server3.publisher.manager)
83 zephir_entid = ent_rpc.ENTRPC(zephir_users)
84 zephir_aaf = aaf_rpc.AAFRPC(zephir_users)
85 zephir_local = local_rpc.RPCLocal(zephir_users)
86
87 zephir_users.putSubHandler('etabs',zephir_etabs)
88 zephir_users.putSubHandler('modules',zephir_modules)
89 zephir_users.putSubHandler('serveurs',zephir_serveurs)
90 zephir_users.putSubHandler('uucp',zephir_uucp)
91 zephir_users.putSubHandler('services',zephir_services)
92 zephir_users.putSubHandler('prelude',zephir_prelude)
93 zephir_users.putSubHandler('scheduler',zephir_scheduler)
94 zephir_users.putSubHandler('sentinelle',zephir_sentinelle)
95 zephir_users.putSubHandler('entid',zephir_entid)
96 zephir_users.putSubHandler('aaf',zephir_aaf)
97 zephir_users.putSubHandler('local',zephir_local)
98 rpc_server = server.Site(zephir_users)
99
100 root.putChild('sites',static.File(PATH_ZEPHIR+"sites/"))
101 root.putChild('client',static.File(PATH_ZEPHIR+"sites/client"))
102 root.putChild('static',static.File(PATH_ZEPHIR+"sites/"))
103
104 appli = service.Application("zephir_backend")
105 myService = service.IServiceCollection(appli)
106 Server3.setServiceParent(myService)
107
108 Server2 = internet.SSLServer(portHTTP, server.Site(root),ServerContextFactory())
109 Server2.setServiceParent(myService)
110 Server1 = internet.SSLServer(portRPC, rpc_server, ServerContextFactory())
111 Server1.startService = zephir_modules.startup
112 Server1local = internet.TCPServer(portRPC + 1, rpc_server, interface='localhost')
113 Server1.setServiceParent(myService)
114 Server1local.setServiceParent(myService)
115 return myService
116