Package zephir :: Package backend :: Module backend_tap
[hide private]
[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, 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  # options ligne de commande 
 35   
36 -class Options(usage.Options):
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
49 -def makeService(config):
50 51 config_ag = cfg.DEFAULT_CONFIG.copy() 52 log.startLogging(sys.stdout) 53 # this could use some os.path.expanduser() and os.path.expandvars() 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 # port TCP à écouter 60 portRPC = int(config["portRPC"]) 61 portHTTP = int(config["portHTTP"]) 62 root = Resource() 63 # service des agents 64 Server3 = ZephirService(config_ag,root_resource=root).with_updater_and_publisher() 65 # FIXME : pb avec les agents (blocage de l'appli ?) 66 # Server3 = ZephirService(config_ag,root_resource=root).with_publisher() 67 zephir_users = users_rpc.RPCUsers() 68 # serveurs XMLRPC 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 # mise en place des modules de gestion zephir 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 # pages html de surveillance des serveurs 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 # création des services 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