Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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)