Beispiel #1
0
def main():
    # Leer opciones de Diagnose
    host = try_(pymy.get_host())
    # Conectar con base de datos
    conn, cur = try_(pymy.get_conn_cursor(host))
    # Pedir al usuario el número de alerta
    e = try_(alertas.get_id())
    # Buscar alerta en la base de datos
    er = alertas.get_record(cur, e)
    if er:
        ers = alertas.ALERTA.format(**er)
        print echo(ers)
        raw_input()

        logpath = get_cfg()
        if not logpath:
            logpath = './'
        elif '%DBOX%' in logpath:
            dbox = dropbox.get_dropbox_folder() or './'
            logpath = logpath.replace('%DBOX%', dbox)
        if os.path.isdir(logpath):
            fn = os.path.normpath(os.path.join(logpath, 'alertas.txt'))
            with open(fn, 'w') as f:
                f.write(ers)
                os.startfile(fn)
    else:
        print echo('No se encuentra el número de error'), e
        waitnquit(1)
Beispiel #2
0
def main():
    # Leer opciones de Diagnose
    host = try_(pymy.get_host())
    # Conectar con base de datos
    conn, cur = try_(pymy.get_conn_cursor(host))
    # Pedir al usuario el número de alerta
    e = try_(alertas.get_id())
    # Buscar alerta en la base de datos
    er = alertas.get_record(cur, e)
    if er:
        ers = alertas.ALERTA.format(**er)
        print echo(ers)
        raw_input()

        logpath = get_cfg()
        if not logpath:
            logpath = './'
        elif '%DBOX%' in logpath:
            dbox = dropbox.get_dropbox_folder() or './'
            logpath = logpath.replace('%DBOX%', dbox)
        if os.path.isdir(logpath):
            fn = os.path.normpath(os.path.join(logpath, 'alertas.txt'))
            with open(fn, 'w') as f:
                f.write(ers)
                os.startfile(fn)
    else:
        print echo('No se encuentra el número de error'), e
        waitnquit(1)
Beispiel #3
0
    def __init__(self, databases=None, path=None, cfgfilename=None):
        """
        Prepara un volcado de alguna base de datos de Diagnose.

        Dada una lista de bases de datos y una ruta, prepara lo
        necesario para realizar un volcado de cada una de ellas,
        comprimido en formato ZIP, en una carpeta dada por el
        usuario o alguna otra de varias por defecto. Requiere
        que haya un cliente de Diagnose con su archivo de
        configuración apuntando al servidor y que se pueda
        localizar mysqldump.exe. Opcionalmente puede realizar
        el volcado en la carpeta de Dropbox del usuario, si
        existe.
        """
        try:
            # Intenta importar la interfase con Dropbox y obtener
            # la carpeta Dropbox del usuario.
            self.dbox = dropbox.get_dropbox_folder()
        except ImportError:
            self.dbox = None
        # Determina la ruta de almacenamiento del volcado comprimido
        # entre varias alternativas que deberían ser accesibles.
        path2 = None
        cfg = None
        try:
            cfg = DiagnoseConfig(cfgfilename)
            path2 = cfg.dumpinto
            if not databases and cfg.config.has_section('databases'):
                databases = [k for (k, v) in cfg.config.items('databases') if str(v) == '1']
        except DiagnoseConfigError:
            pass
        self.path = path or path2 or self.dbox or environ.get('PUBLIC') or getcwd()
        # Busca el servidor de Diagnose (no chequea el acceso).
        # Si el archivo de configuración no existe o no está bien formado
        # aborta con una excepción.
        user = '******'
        password = '******'
        try:
            from diagnose import opciones
            o = opciones.diagnose_opciones()
        except ImportError:
            o = dict()
        if o and 'server' in o:
            host = o['server']
        elif cfg and hasattr(cfg, 'host'):
            host = cfg.host
            if hasattr(cfg, 'user') and hasattr(cfg, 'password'):
                user = cfg.user
                password = cfg.password
        else:
            raise DiagnoseDumpError, 'No sé dónde se encuentra el servidor de Diagnose.'
        self.databases = databases or ('diagnose', 'hmi2')
        # Crea el wrapper para mysqldump
        self.mysqldump = sqldump.SQLDump(host=host, user=user, password=password)
        self.config = cfg