Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / vigiboard / model / vigiboard_bdd / events.py @ 49c8da1d

History | View | Annotate | Download (2.95 KB)

1
# -*- coding: utf-8 -*-
2
"""Model For Events Table"""
3

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

    
8
from sqlalchemy.databases.mysql import MSEnum
9

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

    
14
# Generation par SQLAutoCode
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
    
36
    )
37

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

    
41
# Classe a mapper
42

    
43
class Events(object):
44

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

    
59
mapper(Events,events)