vigiboard / vigiboard / model / vigilo_bdd / state.py @ 57f7cb3f
History | View | Annotate | Download (2.26 KB)
1 |
# -*- coding: utf-8 -*-
|
---|---|
2 |
# vim:set expandtab tabstop=4 shiftwidth=4:
|
3 |
"""Modèle pour la table State"""
|
4 |
|
5 |
from __future__ import absolute_import |
6 |
|
7 |
from sqlalchemy.orm import mapper |
8 |
from sqlalchemy import Table, Column, DefaultClause, ForeignKey |
9 |
from sqlalchemy.types import Integer, String, Text, DateTime |
10 |
|
11 |
from sqlalchemy.databases.mysql import MSEnum |
12 |
|
13 |
from datetime import datetime |
14 |
|
15 |
from ..vigilo_bdd_config import bdd_basename, metadata |
16 |
|
17 |
# Generation par SQLAutoCode
|
18 |
|
19 |
state = Table(bdd_basename + 'state', metadata,
|
20 |
Column(u'idstat', Integer(), primary_key=True, nullable=False, |
21 |
autoincrement=True),
|
22 |
Column(u'hostname',
|
23 |
String(length=100, convert_unicode=True, assert_unicode=None), |
24 |
ForeignKey(bdd_basename +'host.name'),
|
25 |
index=True, primary_key=False, nullable=False), |
26 |
Column(u'servicename',
|
27 |
String(length=100, convert_unicode=True, assert_unicode=None), |
28 |
ForeignKey(bdd_basename + 'service.name'),
|
29 |
index=True, primary_key=False), |
30 |
Column(u'ip',
|
31 |
String(length=40, convert_unicode=True, assert_unicode=None), |
32 |
primary_key=False),
|
33 |
Column(u'timestamp', DateTime(timezone=False), primary_key=False), |
34 |
Column(u'statename', MSEnum('WARNING','OK','CRITICAL','UNKNOWN'), |
35 |
primary_key=False, nullable=False, |
36 |
server_default=DefaultClause('OK', for_update=False)), |
37 |
Column(u'type', MSEnum('SOFT','HARD'), |
38 |
primary_key=False, nullable=False, |
39 |
server_default=DefaultClause('SOFT', for_update=False)), |
40 |
Column(u'attempt', Integer(), primary_key=False, nullable=False, |
41 |
autoincrement=False),
|
42 |
Column(u'message',
|
43 |
Text(length=None, convert_unicode=True, assert_unicode=None), |
44 |
primary_key=False),
|
45 |
mysql_engine='InnoDB',
|
46 |
mysql_charset='utf8'
|
47 |
) |
48 |
|
49 |
# Classe a mapper
|
50 |
|
51 |
class State(object): |
52 |
|
53 |
"""
|
54 |
Classe liée avec la table associée
|
55 |
"""
|
56 |
|
57 |
def __init__(self, hostname, servicename, ip, timestamp = datetime.now(), |
58 |
statename = 'OK', type = 'SOFT', attempt = 1, message = ''): |
59 |
|
60 |
self.hostname = hostname
|
61 |
self.servicename = servicename
|
62 |
self.ip = ip
|
63 |
self.timestamp = timestamp
|
64 |
self.statename = statename
|
65 |
self.type = type |
66 |
self.attempt = attempt
|
67 |
self.message = message
|
68 |
|
69 |
mapper(State, state) |