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