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)
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