zephir.monitor.website

Package zephir :: Package monitor :: Module website |
[frames] | no frames]

# Source Code for Module zephir.monitor.website

      1  #!/usr/bin/env python
      2  # -*- coding: UTF-8 -*-
      3  ###########################################################################
      4  # Eole NG - 2007
      5  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
      6  # Licence CeCill  cf /root/LicenceEole.txt
      7  # eole@ac-dijon.fr
      8  #
      9  # website.py
     10  #
     11  # Creation du site web à partir de la sortie des agents (deprecated)
     12  #
     13  ###########################################################################
     14  import time
     15  import os,sys
     16
     17  from utils import readfile, createfile
     18  from zephir.monitor.config import Config
     19
     20  try:
     21      from zephir.lib_zephir import *
     22  except:
     23      sys.exit("erreur, librairie zephir introuvable")
     24
     25  import widgets # pour le design de la page
     26
    129
    130
    131
    132 -class Page:
    133      """Constitution des pages du site
    134      """
    135 -    def __init__(self, group_name):
    136          self.group_name = group_name
    137          self.navigation = Navigation().render()
    138          self.cfg = Config()
    139          self._write_page()
    140
    141 -    def _get_content(self):
    142          """Récupère les bribes de html issues des agents d'un groupe
    143          """
    144          agent_list = self.cfg.get_agent_group(self.group_name)
    145          agent_list.sort()
    146          l = []
    147          for agent in agent_list:
    148
    149              html_file = self.cfg.get_html_name(agent)
    150              l.append(
    151                  readfile(html_file)
    152                  )
    153          return "\n".join(l)
    154
    155 -    def _write_page(self):
    156          """Ecriture de la page dans le répertoire site
    157          """
    158          page_name = self.cfg.get_html_site(self.group_name)
    159          PAGE = widgets.PAGE_WIDGET
    160          d = {}
    161          d["title"] = self.cfg.get_group_desc(self.group_name)
    162          d["date"] = time.strftime("%d/%m/%Y : %Hh%M", time.localtime())
    163          d["NAVIGATION_WIDGET"] = self.navigation
    164          d["CENTRAL_WIDGET"] = self._get_content()
    165          page = PAGE % d
    166          createfile(page_name, page)
    167
    168 -class PageAccueil:
    169      """index.html
    170      """
    171 -    def __init__(self):
    172          self.navigation = Navigation().render()
    173          self.liens = Navigation().render_accueil()
    174          self.cfg = Config()
    175          self._write_page()
    176
    177 -    def _get_content(self):
    178          """Récupère les bribes de html issues des agents d'un groupe
    179          """
    180          HTML = """
    181  <div class="titlediv">
    182  <h1 class="newstitle">
    183  Liste des agents pour la surveillance du serveur
    184  </h1>
    185  <a name="%s"/>
    186  </div>
    187  <div class="bodydiv">
    188  %s
    189  </div>
    190  """
    191
    192          return HTML % ("index" , self.liens + "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>")
    193
    194 -    def _write_page(self):
    195          """Ecriture de la page dans le répertoire site
    196          """
    197          page_name = self.cfg.get_html_site("index")
    198          PAGE = widgets.PAGE_WIDGET
    199          d = {}
    200          d["title"] = "index"
    201          d["date"] = time.strftime("%d/%m/%Y : %Hh%M", time.localtime())
    202          d["NAVIGATION_WIDGET"] = self.navigation
    203          d["CENTRAL_WIDGET"] = self._get_content()
    204          page = PAGE % d
    205          createfile(page_name, page)
    206
    207 -class Site:
    208      """Création du site web
    209      et envoi des données à Zephir
    210      """
    211 -    def __init__(self):
    212          self.group_list = Config().get_group_list()
    213          self.set_page()
    214          # creation de index.htm
    215          PageAccueil()
    216          # self.send_zephir()
    217
    218
    219 -    def set_page(self):
    220          """Appelle toutes les pages des groupes
    221          """
    222          for group in self.group_list:
    223              Page(group)
    224
    225 -    def send_zephir(self):
    226          """Créé une archive du site et des données XML
    227          """
    228          # on permet de continuer sans données zephir pour les tests
    229          # sys.exit("erreur, librairie zephir introuvable")
    230          # on récupère le n° du serveur et on crée l'archive
    231          # /usr/share/eole/zephir doit être dans le pythonpath
    232          try:
    233              try:
    234                  reload(conf)
    235              except:
    236                  import zephir.zephir_conf.zephir_conf as conf
    237          except:
    238              # serveur non enregistré
    239              return 1
    240          # préparation de l'archive
    241          cmd_tar = """/bin/tar -cvf /tmp/site%s.tar site xml >> /dev/null""" % conf.id_serveur
    242          res = os.system(cmd_tar)
    243          # lancement de l'appel à zephir
    244          os.system('/usr/share/zephir/scripts/zephir_client call')
    245
    246          # print '\nresultat tar : '+str(res)
    247
    248 -    def page_accueil(self):
    249          """
    250          """
    251          titre = "test_titre"
    252          # FIXME :  mettre le contenu de cette page en template aussi
    253
    254  if __name__ == "__main__":
    255      Site()
    256