zephir.monitor.agent.montages

Package zephir :: Package monitor :: Package agent :: Module montages |
[frames] | no frames]

# Source Code for Module zephir.monitor.agent.montages

     1  # -*- coding: UTF-8 -*-
     2  """Etat des montages
     3  """
     4
     5  import os,commands
     6  from zephir.monitor.utils import list2list_to_table
     7  from agent import Agent
     8
     9 -class MontagesAgent(Agent):
    10      """Bilan de l'etat des montages
    11      """
    12 -    def __init__(self):
    13          self.name = "montages"
    14          self.description="""Etat des montages"""
    15          Agent.__init__(self)
    16          # traitements
    17          brut = self._montages()
    18          self.contenu_xml = list2list_to_table(brut)
    19          self.contenu_html = self.contenu_xml
    20          # écriture dans les fichiers
    21          self.write_html()
    22          self.write_xml()
    23
    24 -    def _montages(self):
    25          """Appel et traitement des commandes
    26          """
    27          # commandes utilisées
    28          cmd_montages = "df -kP"
    29          cmd_info = "/bin/cat /proc/mounts"
    30          # exécution des commandes
    31          mnt = commands.getoutput(cmd_montages)
    32          inf = commands.getoutput(cmd_info)
    33          # récupération des lignes
    34          lmnt = mnt.splitlines()
    35          linf = inf.splitlines()
    36
    37          # traitement de info
    38          d_type = {}
    39          for lin in linf :
    40              d_type[lin.split()[0]]=lin.split()[2]
    41
    42          # traitement mnt
    43          lmnt=lmnt[1:]
    44          liste = [['montage','partition','type','utilisation','libre (mo)','utilisé (mo)','taille (mo)']]
    45          for lmn in lmnt :
    46              l = []
    47              l.append(lmn.split()[5]) # montage
    48              l.append(lmn.split()[0]) # partition
    49              try :
    50                  l.append(d_type[lmn.split()[0]]) # jointure sur le type
    51              except:
    52                  l.append("?")
    53              l.append(lmn.split()[4]) # utilisation (%)
    54              l.append( int(lmn.split()[3])/1024 ) # dispo
    55              l.append( int(lmn.split()[2])/1024 ) # utilisé
    56              l.append( int(lmn.split()[1])/1024 ) # taille
    57              liste.append(l)
    58              # Alerte si une partition est remplie à plus de XX (%)
    59              if int(lmn.split()[4][:-1]) > 95:
    60                  # on ignore les cdroms pour les alertes
    61                  if lmn.count('iso9660') == 0:
    62                      self.set_status("0")
    63
    64          return liste
    65
    66  if __name__ == "__main__":
    67      MontagesAgent()
    68