Ejemplo n.º 1
0
def docheckapagado(host):

    ahora=datetime.datetime.today()
    
    #Ver si hay que mandar emails, siempre que traiga informacion
    configuracion=Config(cdb)
    configuracion.loadConfig()    
    if (configuracion.alert_apagado==1): 
    
        enviar_mensaje=False
        ultimos_estados=cdb(cdb.thinclients.host==host).select(orderby=~cdb.thinclients.time, limitby=(0, 2)).as_list()
        
        #Si hay algun estado anterior.... miramos si ha pasado de encendido->apagado.       
        if len(ultimos_estados)>0 :
            #Si el ultimo vale 0, estaba apagado.
            if (ultimos_estados[0]["raton"]=="0"):
               if len(ultimos_estados)>1:    #Si hay penultimo
                   #Si no vale 0, estaba encendido y ahora apagado. Hay que avisar de que está apagado.
                   if (ultimos_estados[1]["raton"]!="0"):
                       enviar_mensaje=True
               else:
                   #Si no hay penúltimo, avisamos de que está apagado.
                   enviar_mensaje=True           
                   
            if enviar_mensaje: 
                  mensaje="El thinclient "+host+" parece apagado o bloqueado ("+ahora.strftime("%d/%m/%Y %H:%M")+")\n\n"
                  configuracion.enviaMail('Aviso de thinclient '+host+" apagado", mensaje)


    return "OK"
Ejemplo n.º 2
0
def doactualizahost(host,tipohost,ultimoarranque,ultimopkgsync,estadopaquetes): 
    ahora=datetime.datetime.today()
    fila=cdb((cdb.maquinas.host==host) & (cdb.maquinas.tipohost==tipohost)).select().last()
    if fila==None:
      if estadopaquetes!='':
           cdb.maquinas.insert(host=host,tipohost=tipohost,ultimorefresco=ahora,ultimoarranque=ultimoarranque,
                         ultimopkgsync=ultimopkgsync,estadopaquetes=estadopaquetes)   
      else:
           cdb.maquinas.insert(host=host,tipohost=tipohost,ultimorefresco=ahora,ultimoarranque=ultimoarranque)
    else:
      
      if fila.alert==1 and fila.ultimoarranque.strftime("%Y-%m-%d %H:%M")!=ultimoarranque[0:16]: 
             # Si está activada la alerta para ese host y es un nuevo arranque, se envia el mensaje de correo de alerta de encendido.
             # Para ver si es un nuevo arranque, comparamos las fechas de ultima arranque, desechando los segundos.
            configuracion=Config(cdb)
            configuracion.loadConfig()
            mensaje="Alerta: ha sido encendido el host monitorizado "+host+" con fecha "+ahora.strftime("%d/%m/%Y %H:%M")+"\n"
            configuracion.enviaMail("Encendido de "+host, mensaje)
                       
      if estadopaquetes!='':            
           fila.update_record(ultimorefresco=ahora, tipohost=tipohost, ultimopkgsync=ultimopkgsync,
                           ultimoarranque=ultimoarranque,
                           estadopaquetes=estadopaquetes)
      else:
           fila.update_record(ultimorefresco=ahora, tipohost=tipohost, ultimoarranque=ultimoarranque)
    return "OK"
Ejemplo n.º 3
0
def doactualizahost(host,tipohost,ultimoarranque,ultimopkgsync,estadopaquetes): 
    ahora=datetime.datetime.today()
    fila=cdb((cdb.maquinas.host==host) & (cdb.maquinas.tipohost==tipohost)).select().last()
    if fila==None:
      if estadopaquetes!='':
           cdb.maquinas.insert(host=host,tipohost=tipohost,ultimorefresco=ahora,ultimoarranque=ultimoarranque,
                         ultimopkgsync=ultimopkgsync,estadopaquetes=estadopaquetes)   
      else:
           cdb.maquinas.insert(host=host,tipohost=tipohost,ultimorefresco=ahora,ultimoarranque=ultimoarranque)
    else:
      
      if fila.alert==1 and fila.ultimoarranque.strftime("%Y-%m-%d %H:%M")!=ultimoarranque[0:16]: 
             # Si está activada la alerta para ese host y es un nuevo arranque, se envia el mensaje de correo de alerta de encendido.
             # Para ver si es un nuevo arranque, comparamos las fechas de ultima arranque, desechando los segundos.
            configuracion=Config(cdb)
            configuracion.loadConfig()
            mensaje="Alerta: ha sido encendido el host monitorizado "+host+" con fecha "+ahora.strftime("%d/%m/%Y %H:%M")+"\n"
            configuracion.enviaMail("Encendido de "+host, mensaje)
                       
      if estadopaquetes!='':            
           fila.update_record(ultimorefresco=ahora, tipohost=tipohost, ultimopkgsync=ultimopkgsync,
                           ultimoarranque=ultimoarranque,
                           estadopaquetes=estadopaquetes)
      else:
           fila.update_record(ultimorefresco=ahora, tipohost=tipohost, ultimoarranque=ultimoarranque)
    return "OK"
Ejemplo n.º 4
0
def docheckapagado(host):

    ahora=datetime.datetime.today()
    
    #Ver si hay que mandar emails, siempre que traiga informacion
    configuracion=Config(cdb)
    configuracion.loadConfig()    
    if (configuracion.alert_apagado==1): 
    
        enviar_mensaje=False
        ultimos_estados=cdb(cdb.thinclients.host==host).select(orderby=~cdb.thinclients.time, limitby=(0, 2)).as_list()
        
        #Si hay algun estado anterior.... miramos si ha pasado de encendido->apagado.       
        if len(ultimos_estados)>0 :
            #Si el ultimo vale 0, estaba apagado.
            if (ultimos_estados[0]["raton"]=="0"):
               if len(ultimos_estados)>1:    #Si hay penultimo
                   #Si no vale 0, estaba encendido y ahora apagado. Hay que avisar de que está apagado.
                   if (ultimos_estados[1]["raton"]!="0"):
                       enviar_mensaje=True
               else:
                   #Si no hay penúltimo, avisamos de que está apagado.
                   enviar_mensaje=True           
                   
            if enviar_mensaje: 
                  mensaje="El thinclient "+host+" parece apagado o bloqueado ("+ahora.strftime("%d/%m/%Y %H:%M")+")\n\n"
                  configuracion.enviaMail('Aviso de thinclient '+host+" apagado", mensaje)


    return "OK"
Ejemplo n.º 5
0
def sendTestMail():

    configuracion = Config(cdb)
    configuracion.loadConfig()
    return configuracion.enviaMail(
        'Desde controlies',
        'Este es un mensaje enviado desde Controlies. Si le ha llegado es que todo esta correcto.'
    )
Ejemplo n.º 6
0
def doactualizathinclient(host, raton, teclado):

    ahora=datetime.datetime.today()
    
    
    #Ver si hay que mandar emails, siempre que traiga informacion
    configuracion=Config(cdb)
    configuracion.loadConfig()    
    if (raton=="1" or teclado=="1") and (configuracion.alert_teclado==1 or configuracion.alert_raton==1): 
        
        #Busca ultimo estado que no sea "apagado", para comparar
        
        ultimo_estado=cdb((cdb.thinclients.host==host) & (cdb.thinclients.raton!="0") ).select(orderby=~cdb.thinclients.time).first()
        if ultimo_estado==None:
               ult_teclado="2"
               ult_raton="2"
        else:
               ult_teclado=ultimo_estado.teclado
               ult_raton=ultimo_estado.raton
               
        if (teclado=="1" and ult_teclado=="2" and configuracion.alert_teclado==1) or (raton=="1" and ult_raton=="2" and configuracion.alert_raton==1):
               mensaje="Aviso fallo teclado/ratón en thinclient "+host+" ("+ahora.strftime("%d/%m/%Y %H:%M")+")\n\n"
               est_teclado="Conectado" if teclado=="2" else "Desconectado"
               est_raton="Conectado" if raton=="2" else "Desconectado"
               mensaje=mensaje+"\tTeclado: "+est_teclado+"\n"
               mensaje=mensaje+"\tRaton: "+est_raton+"\n"
               configuracion.enviaMail('Aviso de thinclient '+host, mensaje)
        
    fila=cdb(cdb.thinclients.host==host).select(orderby=~cdb.thinclients.time).first()    
    if fila==None:
        cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
    else:
      if fila.raton == "0":
         hora1=fila.time
         hora2=ahora
         diferencia=hora2-hora1
         if diferencia.seconds > 300 : #Si han pasado mas de 5 minutos es otro encendido
             cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
         else:    	
             fila.update_record(time=ahora, raton=raton, teclado=teclado)
      else:
         cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
        
    return "OK"
Ejemplo n.º 7
0
def doactualizathinclient(host, raton, teclado):

    ahora=datetime.datetime.today()
    
    
    #Ver si hay que mandar emails, siempre que traiga informacion
    configuracion=Config(cdb)
    configuracion.loadConfig()    
    if (raton=="1" or teclado=="1") and (configuracion.alert_teclado==1 or configuracion.alert_raton==1): 
        
        #Busca ultimo estado que no sea "apagado", para comparar
        
        ultimo_estado=cdb((cdb.thinclients.host==host) & (cdb.thinclients.raton!="0") ).select(orderby=~cdb.thinclients.time).first()
        if ultimo_estado==None:
               ult_teclado="2"
               ult_raton="2"
        else:
               ult_teclado=ultimo_estado.teclado
               ult_raton=ultimo_estado.raton
               
        if (teclado=="1" and ult_teclado=="2" and configuracion.alert_teclado==1) or (raton=="1" and ult_raton=="2" and configuracion.alert_raton==1):
               mensaje="Aviso fallo teclado/ratón en thinclient "+host+" ("+ahora.strftime("%d/%m/%Y %H:%M")+")\n\n"
               est_teclado="Conectado" if teclado=="2" else "Desconectado"
               est_raton="Conectado" if raton=="2" else "Desconectado"
               mensaje=mensaje+"\tTeclado: "+est_teclado+"\n"
               mensaje=mensaje+"\tRaton: "+est_raton+"\n"
               configuracion.enviaMail('Aviso de thinclient '+host, mensaje)
        
    fila=cdb(cdb.thinclients.host==host).select(orderby=~cdb.thinclients.time).first()    
    if fila==None:
        cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
    else:
      if fila.raton == "0":
         hora1=fila.time
         hora2=ahora
         diferencia=hora2-hora1
         if diferencia.seconds > 300 : #Si han pasado mas de 5 minutos es otro encendido
             cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
         else:    	
             fila.update_record(time=ahora, raton=raton, teclado=teclado)
      else:
         cdb.thinclients.insert(host=host,time=ahora,raton=raton,teclado=teclado)  
        
    return "OK"
Ejemplo n.º 8
0
def sendTestMail():

    configuracion=Config(cdb)
    configuracion.loadConfig()
    return configuracion.enviaMail('Desde controlies', 'Este es un mensaje enviado desde Controlies. Si le ha llegado es que todo esta correcto.')