Package zephir :: Package backend :: Module backend_tap
[frames] | no frames]

Source Code for Module zephir.backend.backend_tap

  1  # -*- coding: UTF-8 -*- 
  2  ########################################################################### 
  3  # Eole NG - 2007   
  4  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon) 
  5  # Licence CeCill  cf /root/LicenceEole.txt 
  6  # eole@ac-dijon.fr  
  7  #   
  8  # backend_tap.py 
  9  #   
 10  # création et démarrage des services backend zephir 
 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  # options ligne de commande 
 39   
40 -class Options(usage.Options):
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
53 -def makeService(config):
54 config_ag = cfg.DEFAULT_CONFIG.copy() 55 log.startLogging(sys.stdout) 56 # this could use some os.path.expanduser() and os.path.expandvars() 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 # port TCP à écouter 65 portRPC = int(config["portRPC"]) 66 portHTTP = int(config["portHTTP"]) 67 root = Resource() 68 # service des agents 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 # serveurs XMLRPC 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 # mise en place des modules de gestion zephir 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 # pages html de surveillance des serveurs 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 # création des services 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