Package zephir :: Module config
[frames] | no frames]

Source Code for Module zephir.config

  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  """ 
  9  Fichier de configuration de l'application Zephir 
 10  """ 
 11  from os.path import join, dirname, abspath, isdir, isfile 
 12  from os import listdir 
 13  from creole.parsedico import parse_dico 
 14  import locale 
 15  from twisted.python import log 
 16  log.FileLogObserver.timeFormat = "%Y/%m/%d %H:%M:%S %Z" 
 17   
 18  conf = parse_dico() 
 19   
 20  charset = "UTF-8" 
 21   
 22  ADRESSE_LDAP = conf["adresse_ip_ldap"] 
 23  ADRESSE_ZEPHIR = conf["adresse_ip_eth0"] 
 24  BASE_LDAP = conf["ldap_base_dn"] 
 25  LDAP_TLS = conf["ldap_tls"] 
 26  LDAP_CLIENT = conf.get('activer_client_ldap', 'local') 
 27  SLAPD_SSL = conf.get('ldap_ssl', 'non') 
 28  PORT_HTTP = "8090" 
 29  PORT_ZEPHIR = "7080" 
 30  PORT_WEB = 8070 
 31  NO_LOCAL_AGENTS = conf.get("no_local_agents", "non") 
 32   
 33  # Dans le cas d'un serveur LDAP local, on utilise tls 
 34  # seulement si il est obligatoire 
 35  if LDAP_CLIENT == "local" and SLAPD_SSL != "uniquement": 
 36      LDAP_TLS = "non" 
 37   
 38  LOG_ACTIONS = False 
 39  if conf.get('log_actions', 'non') == 'oui': 
 40      # Logguer les appels xmlrpc authentifiés dans les logs du backend 
 41      LOG_ACTIONS = True 
 42   
 43  USE_THREADS = False 
 44  # mise en cache des configurations creole 
 45  if conf.get('zephir_use_threads', 'oui') == 'oui': 
 46      # conservation en mémoire de la configuration creole des serveurs 
 47      USE_THREADS = True 
 48  CREOLE_CACHE = False 
 49  # mise en cache des configurations creole 
 50  if conf.get('zephir_creole_cache', 'oui') == 'oui': 
 51      # conservation en mémoire de la configuration creole des serveurs 
 52      CREOLE_CACHE = True 
 53   
 54  # répertoire de base appli 
 55  ROOT_DIR = "/usr/share/zephir/" 
 56  PORT_AGENT = "8090" 
 57  AGENT_DIR = "agents" 
 58  CLIENT_UPDATE_HOST = "eoleng.ac-dijon.fr" 
 59  CLIENT_NG_URL = "/eoleng/eole-%s-security/%s" 
 60  SERVEURS_MAJ_CLIENTS = conf['serveur_maj_clients'] 
 61   
 62  MAIL_ADRESSE = conf["passerelle_smtp"] 
 63  MAIL_TLS = conf["tls_smtp"] 
 64  MAIL_ACCOUNT = conf["system_mail_from"] 
 65   
 66  # répertoire de base des donnees backend 
 67  PATH_ZEPHIR = "/var/lib/zephir/" 
 68  PATH_TEMP = join("/tmp", "zephir_temp") 
 69  ADRESSE_SAUVEGARDE = join(PATH_ZEPHIR, 'user_prefs') 
 70   
 71  # certificats par défaut 
 72  cert_file = conf.get('server_cert', '') or '/etc/eole/ssl/eole.crt' 
 73  key_file = conf.get('server_key', '') or '/etc/eole/ssl/eole.key' 
 74   
 75  # manager prelude par défaut 
 76  PRELUDE_PORT = 4691 
 77   
 78  # détails des distributions gérées (nom_de_code, version_eole, maintenue) 
 79  DISTRIBS = {1:("Mdk 9.X", "1.X", False), 
 80              2:("feisty", "2.0", False), 
 81              3:("gutsy", "2.1", False), 
 82              4:("hardy", "2.2", True), 
 83              5:("lucid", "2.3", True), 
 84              6:("precise", "2.4", True)} 
 85   
 86  # version de creole en fonction de la version de distribution eole 
 87  CREOLE_VERSIONS = {1:'creole1', 
 88                     2:'creole2', 
 89                     3:'creole2', 
 90                     4:'creole2', 
 91                     5:'creole2', 
 92                     6:'creole3', 
 93                    } 
 94   
 95  liste_modules = {} 
 96  PATH_DEF_MODULES = join(ROOT_DIR, 'default_modules') 
 97  # liste des modules eole, classés par version (la version 1 n'est plus gérée) 
 98  liste_modules = { 
 99   1:['amon-1.5','sphynx-1.1','scribe-1.0','horus-1.0'] 
100  } 
101  for num_dist in DISTRIBS.keys()[1:]: 
102      # recherche des modules Eole NG par défaut 
103      modules = [] 
104      dist_dir = join(PATH_DEF_MODULES, str(num_dist)) 
105      for mod_name in listdir(dist_dir): 
106          # on ignore les fichiers ~, .bak, etc... 
107          if isfile(join(dist_dir, mod_name)) and not \ 
108                  (mod_name.endswith('~') or \ 
109                  mod_name.endswith('.bak') or \ 
110                  mod_name.endswith('.swp')): 
111                  # on vérifie qu'un répertoire de dictionnaires est bien présent pour ce module 
112                  # if isdir(join(ROOT_DIR, 'dictionnaires', mod_name)): 
113                  modules.append(mod_name) 
114      liste_modules[num_dist] = modules 
115   
116  # XXX : desactivation de modules pour Eole 2.3 - 5:('amon-2.3','sphynx-2.3','scribe-2.3','horus-2.3','zephir-2.3','preludemanager-2.3','zephirlogs-2.3','sentinelle-2.3','eclair-2.3','amonecole-2.3','seshat-2.3', 'eolebase-2.3'), 
117   
118  # liste des modules autorisés à migrer de plus d'une version 
119  allowed_upgrades = {'horus':{2:[4]}, 
120                      'scribe':{2:[4]}, 
121                      'amon':{2:[4]} 
122                     } 
123   
124  # définition des migrations entre modules (adaptation de configuration nécessaire) 
125  allowed_migrations = {1:[2,3,4], 4:[5,6], 5:[6]} 
126   
127  # liste des modules autorisés à être modifiés (édition de serveur) 
128  allowed_mod_edits = {4:{'amon':['amonecole'], 
129                          'amonecole':['amon']}, 
130                       5:{'amon':['amonecole'], 
131                          'amonecole':['amon']} 
132                      } 
133   
134  # liste des verrous existants et de leurs dépendances 
135  verrous = {'uucp':['Execution des tâches Zephir'], 
136             'sauvegarde':['Maj-Auto','Maj-Cd'], 
137             'maj':[], 
138             'configure':[], 
139             'reconfigure':[]} 
140   
141  # types  de fichiers à sauvegarder/envoyer 
142  data_files = {0:('Tout', ['dicos','patchs','fichiers_perso','fichiers_zephir','zephir.eol','dico.eol','auth_keys','droits_zephir', 'droits_variante']), 
143                1:('Dictionnaires/templates/patchs/configuration/clés ssh', ['dicos','patchs','fichiers_perso','zephir.eol','auth_keys']), 
144                2:('Dictionnaires/templates/patchs', ['dicos','patchs','fichiers_perso']), 
145                3:('Fichiers divers/paquets', ['fichiers_zephir', 'droits_zephir', 'droits_variante']), 
146                4:('Configuration seulement (config.eol)', ['zephir.eol']), 
147                5:('Clés ssh seulement', ['auth_keys']), 
148               } 
149   
150  # libellés à affecter aux différents types de restrictions de ressources, table et champs correspondant (pour validation) 
151  type_res_label =  {'rne':('numéro RNE', 'etablissements', 'rne'), 
152                     'groupe':('numéro de groupe', 'groupes_serveurs', 'id'), 
153                     'id_s':('numéro de serveur', 'serveurs', 'id'), 
154                     'id_var':('numéro de variante', 'variantes', 'id'), 
155                     'id_mod':('numéro de module', 'modules', 'id'), 
156                    } 
157   
158  # correspondance des caractères pour les xml des agents eole1 
159  xml_table={'\\xc9':'\\xc3\\xa9', 
160             '\\xe9':'\\xc3\\xa9', 
161             '\\xc8':'\\xc3\\xa8', 
162             '\\xe8':'\\xc3\\xa8', 
163             '\\xf4':'\\xc3\\xb4', 
164             '\\xe0':'\\xc3\\xa0', 
165             } 
166   
167  # liste des variables creole donnant l'adresse d'un portail etablissement sur Scribe/Amonecole 
168  var_portail = ['web_url', 'posh_url', 'scribe_envole_url', 'cas_domainname'] 
169  mod_portail = ['scribe', 'amonecole'] 
170   
171  # temps entre chaque vérification des timeout (secondes) 
172  SCAN_DELAY = 300 
173