zephir.backend.db_utils

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

# Source Code for Module zephir.backend.db_utils

     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  # db_utils.py
     9  #
    10  # fonctions utiles pour l'accès à la base de données (via adbapi)
    11  #
    12  ###########################################################################
    13  from zephir.backend import config
    14  from twisted.enterprise import adbapi
    15  import traceback
    16
    17 -class DBException(Exception): pass
    18
    19 -def db_client_failed(error,*args):
    20      """errback du deffered
    21      """
    22      try:
    23          traceback.print_exc()
    24          return 0, str(error.type), error.getErrorMessage()
    25      except:
    26          return 0,''
    27
    28 -def dbClientSucceeded(l):
    29      """callback du deffered
    30      """
    31      if l:
    32          return 1,'ok'
    33      else:
    34          return 0,"no records"
    35          raise DBException("No records")
    36
    37 -def db_connect():
    38      """crée un pool de connexion pour la base de données zephir
    39      """
    40      return adbapi.ConnectionPool("psycopg2",host=config.DB_HOST,user=config.DB_USER,password=config.DB_PASSWD,database=config.DB_NAME)
    41
    42 -def db_log(dbpool,id_serveur,date,type_msg,msg):
    43      """insère un log dans la base zephir
    44      """
    45      query = """insert into log_serveur (id_serveur,date,type,message) values (%s,%s,%s,%s)"""
    46      return dbpool.runOperation(query, (int(id_serveur),date,type_msg,msg))
    47
    48 -class Serveur:
    49      """classe utilitaire pour récupérer diverses données sur un serveur"""
    50
    51 -    def __init__(self, id_s):
    52          """initialise l'objet serveur et récupère les infos
    53          """
    54          # réucpération de l'établissement et de l'état
    55          import psycopg2 as pgsql
    56          cx = PgSQL.connect(database=config.DB_NAME,user=config.DB_USER,password=config.DB_PASSWD)
    57          cu = cx.cursor()
    58          cu.execute("select * from serveurs where id=%s", (int(id_s),))
    59          cu.close()
    60          cx.close()
    61