Project

General

Profile

Revision 20367931

ID20367931826425cf944d798b717c132dfae9ab42
Parent ed374445
Child 089dfbc2

Added by Thomas ANDREJAK almost 15 years ago

Réorganisation du code (controllers, etc)
Mise en place d'un système de plugin pour ajouter des colonnes à la volée
Internationalisation complète
Création de quelques tests

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@274 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/model/vigiboard_bdd/events.py
1 1
# -*- coding: utf-8 -*-
2
"""Model For Events Table"""
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Events"""
3 4

  
4 5
from sqlalchemy.orm import mapper, relation
5
from sqlalchemy import Table, ForeignKeyConstraint, Column, Index, DefaultClause, ForeignKey
6
from sqlalchemy import Table, Column, Index, DefaultClause, ForeignKey
6 7
from sqlalchemy.types import Integer, String, Text, DateTime, Boolean
7 8

  
8
from sqlalchemy.databases.mysql import MSEnum
9
from sqlalchemy.databases.mysql import MSEnum, MSBoolean
9 10

  
10 11
from vigiboard.model import metadata
11
from tg import config
12 12
from datetime import datetime
13

  
13
from vigiboard.config.vigiboard_config import vigiboard_config
14 14
# Generation par SQLAutoCode
15 15

  
16
events =  Table(config['vigiboard_bdd.basename'] + 'events', metadata,
17
    	    Column(u'idevent', Integer(), primary_key=True, nullable=False),
18
            Column(u'hostname', String(length=100, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
19
            Column(u'servicename', String(length=100, convert_unicode=False, assert_unicode=None), primary_key=False),
20
	    Column(u'server_source', String(length=100, convert_unicode=False, assert_unicode=None), primary_key=False),
21
	    Column(u'severity', Integer(), primary_key=False, nullable=False),
22
	    Column(u'status', MSEnum('None','Acknowledged','AAClosed'), primary_key=False, nullable=False, server_default=DefaultClause('None', for_update=False)),
23
	    Column(u'active', Boolean(), primary_key=False, server_default=DefaultClause('TRUE', for_update=False)),
24
	    Column(u'timestamp', DateTime(timezone=False), primary_key=False),
25
            Column(u'output', Text(length=None, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
26
            Column(u'event_timestamp', DateTime(timezone=False), primary_key=False),
27
            Column(u'last_check', DateTime(timezone=False), primary_key=False),
28
            Column(u'recover_output', Text(length=None, convert_unicode=False, assert_unicode=None), primary_key=False),
29
            Column(u'timestamp_active', DateTime(timezone=False), primary_key=False),
30
            Column(u'timestamp_cleared', DateTime(timezone=False), primary_key=False),
31
            Column(u'trouble_ticket', String(length=20, convert_unicode=False, assert_unicode=None), primary_key=False),
32
            Column(u'occurence', Integer(), primary_key=False),
33
    	    ForeignKeyConstraint([u'servicename'], [config['vigiboard_bdd.basename'] + u'service.name'], name=u'events_ibfk_1'),
34
            ForeignKeyConstraint([u'hostname'], [config['vigiboard_bdd.basename'] + u'host.name'], name=u'events_ibfk_2')
35
    
16
events =  Table(vigiboard_config['vigiboard_bdd.basename'] + 'events', metadata,
17
        Column(u'idevent', Integer(), primary_key=True, nullable=False,autoincrement=True),
18
        Column(u'hostname', String(length=100, convert_unicode=True, assert_unicode=None), ForeignKey(vigiboard_config['vigiboard_bdd.basename'] +'host.name'),index=True,primary_key=False, nullable=False),
19
        Column(u'servicename', String(length=100, convert_unicode=True, assert_unicode=None), ForeignKey(vigiboard_config['vigiboard_bdd.basename'] + 'service.name'),index=True,primary_key=False),
20
        Column(u'server_source', String(length=100, convert_unicode=True, assert_unicode=None), primary_key=False),
21
        Column(u'severity', Integer(), primary_key=False, nullable=False),
22
        Column(u'status', MSEnum('None','Acknowledged','AAClosed'), primary_key=False, nullable=False, server_default=DefaultClause('None', for_update=False)),
23
        Column(u'active', MSBoolean(), primary_key=False, default='True'),
24
        Column(u'timestamp', DateTime(timezone=False), primary_key=False),
25
        Column(u'output', Text(length=None, convert_unicode=True, assert_unicode=None), primary_key=False, nullable=False),
26
        Column(u'event_timestamp', DateTime(timezone=False), primary_key=False),
27
        Column(u'last_check', DateTime(timezone=False), primary_key=False),
28
        Column(u'recover_output', Text(length=None, convert_unicode=True, assert_unicode=None), primary_key=False),
29
        Column(u'timestamp_active', DateTime(timezone=False), primary_key=False),
30
        Column(u'timestamp_cleared', DateTime(timezone=False), primary_key=False),
31
        Column(u'trouble_ticket', String(length=20, convert_unicode=True, assert_unicode=None), primary_key=False),
32
        Column(u'occurence', Integer(), primary_key=False),
33
        mysql_engine='InnoDB',
34
        mysql_charset='utf8'
36 35
    )
37 36

  
38
Index(u'hostname', events.c.hostname, events.c.servicename, unique=False)
39
Index(u'servicename', events.c.servicename, unique=False)
40

  
41 37
# Classe a mapper
42 38

  
43 39
class Events(object):
40
    
41
    """
42
    Classe liée avec la table associée
43
    """
44

  
45
    def __init__(self,hostname,servicename,server_source='',severity=0,status='None',active=True,timestamp=datetime.now(),output='',event_timestamp=datetime.now(),last_check=datetime.now(),recover_output='',timestamp_active=datetime.now(),timestamp_cleared="0000-00-00 00:00:00",trouble_ticket=None,occurence=1):
46
        self.hostname = hostname
47
        self.servicename = servicename
48
        self.server_source = server_source
49
        self.severity = severity
50
        self.status = status
51
        self.active = active
52
        self.timestamp = timestamp
53
        self.output = output
54
        self.event_timestamp = event_timestamp
55
        self.last_check = last_check
56
        self.recover_output = recover_output
57
        self.timestamp_active = timestamp_active
58
        self.timestamp_cleared = timestamp_cleared
59
        self.trouble_ticket = trouble_ticket
60
        self.occurence = occurence
61

  
62
    def GetDate(self,element):
63
        
64
        """
65
        Permet de convertir une variable de temps en la chaîne de caractère : 
66
        jour mois heure:minutes:secondes
67

  
68
        @param element: nom de l'élément à convertir de la classe elle même
69
        """
70

  
71
        element = self.__dict__[element]
72
        date = datetime.now() - element
73
        if date.days < 7 :
74
            return element.strftime('%a %H:%M:%S')
75
        else :    
76
            return element.strftime('%d %b %H:%M:%S')
77

  
78
    def GetSinceDate(self,element):
79
        
80
        """
81
        Permet d'obtenir le temps écoulé entre maintenant (datetime.now())
82
        et le temps contenu dans la variable de temps indiquée
83

  
84
        @param element: nom de l'élément de la classe elle même à utiliser
85
                        pour le calcul
86
        """
44 87

  
45
	def GetDate(self,element):
46
		element = self.__dict__[element]
47
		date = datetime.now() - element
48
		if date.days < 7 :
49
			return element.strftime('%a %H:%M:%S')
50
		else :	
51
			return element.strftime('%d %b %H:%M:%S')
52

  
53
	def GetSinceDate(self,element):
54
		date = datetime.now() - self.__dict__[element]
55
		minutes, seconds = divmod(date.seconds, 60)
56
		hours, minutes = divmod(minutes, 60)
57
		return "%dd %dh %d'" % (date.days , hours , minutes)
88
        date = datetime.now() - self.__dict__[element]
89
        minutes, seconds = divmod(date.seconds, 60)
90
        hours, minutes = divmod(minutes, 60)
91
        return "%dd %dh %d'" % (date.days , hours , minutes)
58 92

  
59 93
mapper(Events,events)

Also available in: Unified diff