Project

General

Profile

Revision 9ac8bfb5

ID9ac8bfb502bc3f12b9bc8d79d495ba34b0816b94
Parent 2e5394d8
Child 40762a09

Added by Gabriel DE PERTHUIS almost 15 years ago

Move duplicated models to a separate egg for reuse.

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

View differences:

setup.py
25 25
        "repoze.what-quickstart >= 1.0",
26 26
        "psycopg2",
27 27
        "tw.jquery >= 0.9.5",
28
        "vigiboard",
28
        "vigilo-models",
29 29
        ],
30 30
    setup_requires=["PasteScript >= 1.7"],
31 31
    paster_plugins=['PasteScript', 'Pylons', 'TurboGears2', 'tg.devtools'],
vigiboard/config/middleware.py
35 35
    
36 36
   
37 37
    """
38
    # Petit hack permettant d'importer la configuration de vigiboard
39
    try:
40
        # chargement de l'application
41
        
42
        myapp = __import__(app_conf['appname'] ,globals(), locals(), [],-1)
43
        base_config.package = myapp
44

  
45
        # chargement de la conf de l'application
46
        myconf = __import__(
47
            app_conf['appname'] + '.config.' + app_conf['appname'] ,globals(), locals(), [app_conf['appname'] + '_config'],-1)
48
        myconf = getattr(myconf,app_conf['appname'] + '_config')
49
        for conf in myconf:
50
            app_conf[conf] = myconf[conf]
51
    except:
52
        print "vigilo-core runing without application"
53 38

  
54 39
    for i in vigiboard_config:
55 40
        app_conf[i] = vigiboard_config[i]
......
65 50
        )
66 51
    
67 52
    return app
53

  
vigiboard/model/__init__.py
60 60

  
61 61
# Import your model modules here.
62 62
from vigiboard.model.auth import User, Group, Permission
63
from vigiboard.model.vigilo_bdd import Events, EventHistory, Graph, \
63
from vigilo.models.vigilo_bdd import Events, EventHistory, Graph, \
64 64
    GraphGroups, GraphToGroups, Groups, GroupPermissions, HostGroups, Host, \
65 65
    PerfDataSource, ServiceGroups, ServiceHautNiveau, Service, ServiceTopo
vigiboard/model/vigilo_bdd/__init__.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""BdD Vigiboard"""
4

  
5
from .eventhistory import EventHistory
6
from .events import Events
7
from .graphgroups import GraphGroups
8
from .graph import Graph
9
from .groups import Groups
10
from .grouppermissions import GroupPermissions
11
from .hostgroups import HostGroups
12
from .host import Host
13
from .perfdatasource import PerfDataSource
14
from .servicegroups import ServiceGroups
15
from .servicehautniveau import ServiceHautNiveau
16
from .service import Service
17
from .servicetopo import ServiceTopo
18
from .graphtogroups import GraphToGroups
19
from .version import Version
20
from .state import State
vigiboard/model/vigilo_bdd/eventhistory.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4: 
3
"""Modèle pour la table EventHistory"""
4
from __future__ import absolute_import
5
from sqlalchemy.orm import mapper
6
from sqlalchemy import ForeignKey, Table, Column
7
from sqlalchemy.types import Integer, String, Text, DateTime
8

  
9
from sqlalchemy.databases.mysql import MSEnum
10
from datetime import datetime
11
from ..vigilo_bdd_config import bdd_basename, metadata
12

  
13
# Generation par SQLAutoCode
14

  
15
event_history =  Table(
16
    bdd_basename + 'event_history', metadata,
17
    Column(u'idhistory', Integer(), primary_key=True, nullable=False, 
18
        autoincrement=True),
19
    Column(u'type_action',
20
        MSEnum('Nagios update state', 'Acknowlegement change state',
21
            'New occurence', 'User comment', 'Ticket change', 'Oncall',
22
            'Forced state'),
23
        primary_key=False, nullable=False),
24
    Column(u'idevent', Integer(),
25
        ForeignKey(
26
            bdd_basename +'events.idevent'
27
        ), index=True, primary_key=False, nullable=False),
28
    Column(u'value',
29
        String(length=255, convert_unicode=True, assert_unicode=None),
30
        primary_key=False),
31
    Column(u'text',
32
        Text(length=None, convert_unicode=True, assert_unicode=None),
33
        primary_key=False),
34
    Column(u'timestamp', DateTime(timezone=False), default=datetime.now(),
35
        primary_key=False),
36
    Column(u'username',
37
        String(length=255, convert_unicode=True, assert_unicode=None),
38
        primary_key=False),
39
    mysql_engine='InnoDB',
40
    mysql_charset='utf8'
41
)
42

  
43
# Classe a mapper
44

  
45
class EventHistory(object):
46
    """
47
    Classe liée avec la table associée
48
    """
49
    def __init__(self, type_action, idevent, value='', text='', username=''):
50
        
51
        """
52
        Fonction d'initialisation, permet de faire un INSERT en une fonction
53

  
54
        @param type_action: Le type d'action effectué, peut être 'Nagios update state',
55
                            'Acknowlegement change state', 'New occurence', 'User comment', 'Ticket change',
56
                            'Oncall' ou 'Forced state'
57
        @param idevent: Identifiant de l'évènement
58
        @param value: Nouvelle sévérité
59
        @param text: Commentaire sur l'action effectuée
60
        @param username: Nom d'utilisateur de la personne effectuant l'action
61
        """
62

  
63
        self.type_action = type_action
64
        self.idevent = idevent 
65
        self.value = value
66
        self.text = text
67
        self.username = username
68

  
69
mapper(EventHistory, event_history)
vigiboard/model/vigilo_bdd/events.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Events"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column, DefaultClause, ForeignKey
8
from sqlalchemy.types import Integer, String, Text, DateTime
9

  
10
from sqlalchemy.databases.mysql import MSEnum, MSBoolean
11

  
12
from datetime import datetime
13

  
14
from ..vigilo_bdd_config import bdd_basename, metadata
15

  
16
# Generation par SQLAutoCode
17

  
18
events = Table(bdd_basename + 'events', metadata,
19
    Column(u'idevent', Integer(), primary_key=True, nullable=False,
20
        autoincrement=True),
21
    Column(u'hostname',
22
        String(length=100, convert_unicode=True, assert_unicode=None),
23
        ForeignKey(bdd_basename +'host.name'),
24
        index=True, primary_key=False, nullable=False),
25
    Column(u'servicename',
26
        String(length=100, convert_unicode=True, assert_unicode=None),
27
        ForeignKey(bdd_basename + 'service.name'),
28
        index=True, primary_key=False),
29
    Column(u'severity', Integer(), primary_key=False, nullable=False),
30
    Column(u'status', MSEnum('None','Acknowledged','AAClosed'), 
31
        primary_key=False, nullable=False, 
32
        server_default=DefaultClause('None', for_update=False)),
33
    Column(u'active', MSBoolean(), primary_key=False, default='True'),
34
    Column(u'timestamp', DateTime(timezone=False), primary_key=False),
35
    Column(u'output',
36
        Text(length=None, convert_unicode=True, assert_unicode=None),
37
        primary_key=False, nullable=False),
38
    Column(u'timestamp_active', DateTime(timezone=False), primary_key=False),
39
    Column(u'trouble_ticket',
40
        String(length=20, convert_unicode=True, assert_unicode=None),
41
        primary_key=False),
42
    Column(u'occurence', Integer(), primary_key=False),
43
    Column(u'impact', Integer(), primary_key=False),
44
    Column(u'rawstate', MSEnum('WARNING','OK','CRITICAL','UNKNOWN')),
45
    mysql_engine='InnoDB',
46
    mysql_charset='utf8'
47
)
48

  
49
# Classe a mapper
50

  
51
class Events(object):
52
    
53
    """
54
    Classe liée avec la table associée
55
    """
56

  
57
    def __init__(self, hostname, servicename, server_source = '', severity = 0,
58
            status = 'None', active = True, timestamp = datetime.now(), 
59
            output = '', event_timestamp = datetime.now(),
60
            last_check = datetime.now(), recover_output = '',
61
            timestamp_active = datetime.now(),
62
            timestamp_cleared=None, trouble_ticket = None,
63
            occurence = 1):
64

  
65
        self.hostname = hostname
66
        self.servicename = servicename
67
        self.server_source = server_source
68
        self.severity = severity
69
        self.status = status
70
        self.active = active
71
        self.timestamp = timestamp
72
        self.output = output
73
        self.event_timestamp = event_timestamp
74
        self.last_check = last_check
75
        self.recover_output = recover_output
76
        self.timestamp_active = timestamp_active
77
        self.timestamp_cleared = timestamp_cleared
78
        self.trouble_ticket = trouble_ticket
79
        self.occurence = occurence
80

  
81
    def get_date(self, element):
82
        
83
        """
84
        Permet de convertir une variable de temps en la chaîne de caractère : 
85
        jour mois heure:minutes:secondes
86

  
87
        @param element: nom de l'élément à convertir de la classe elle même
88
        """
89

  
90
        element = self.__dict__[element]
91
        date = datetime.now() - element
92
        if date.days < 7 :
93
            return element.strftime('%a %H:%M:%S')
94
        else :    
95
            return element.strftime('%d %b %H:%M:%S')
96

  
97
    def get_since_date(self, element):
98
        
99
        """
100
        Permet d'obtenir le temps écoulé entre maintenant (datetime.now())
101
        et le temps contenu dans la variable de temps indiquée
102

  
103
        @param element: nom de l'élément de la classe elle même à utiliser
104
                        pour le calcul
105
        """
106

  
107
        date = datetime.now() - self.__dict__[element]
108
        minutes, seconds = divmod(date.seconds, 60)
109
        hours, minutes = divmod(minutes, 60)
110
        return "%dd %dh %d'" % (date.days , hours , minutes)
111

  
112
mapper(Events, events)
vigiboard/model/vigilo_bdd/graph.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Graph"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
graph =  Table(bdd_basename + 'graph',
15
        metadata,
16
        Column(u'name',
17
            String(length=100, convert_unicode=True, assert_unicode=None),
18
            primary_key=True, nullable=False),
19
        Column(u'template',
20
            String(length=2500, convert_unicode=True, assert_unicode=None),
21
            primary_key=False, nullable=False),
22
        Column(u'vlabel',
23
            String(length=2500, convert_unicode=True, assert_unicode=None),
24
            primary_key=False, nullable=False),
25
        mysql_engine='InnoDB',
26
        mysql_charset='utf8'
27
    )
28

  
29
# Classe a mapper
30

  
31
class Graph(object):
32
    
33
    """
34
    Classe liée avec la table associée
35
    """
36
    
37
    def __init__(self, name, template = '', vlabel = ''):
38
        self.name = name
39
        self.template = template
40
        self.vlabel = vlabel
41
        
42
mapper(Graph, graph)
vigiboard/model/vigilo_bdd/graphgroups.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table GraphGroups"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import Integer, String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
graphgroups = Table(bdd_basename + 'graphgroups',
15
        metadata,
16
        Column(u'name',
17
            String(length=100, convert_unicode=True, assert_unicode=None),
18
            primary_key=True, nullable=False),
19
        Column(u'parent', Integer(), primary_key=False, nullable=True),
20
        mysql_engine='InnoDB',
21
        mysql_charset='utf8'
22
    )
23

  
24
# Classe a mapper
25

  
26
class GraphGroups(object):
27
    """
28
    Classe liée avec la table associée
29
    """
30
    
31
    def __init__(self, name, parent=None):
32
        self.name = name
33
        self.parent = parent
34

  
35
mapper(GraphGroups, graphgroups)
vigiboard/model/vigilo_bdd/graphtogroups.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table GraphToGroups"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
graphtogroups =  Table(
15
    bdd_basename + 'graphtogroups',
16
    metadata,
17
    Column(u'graphname',
18
        String(length=100, convert_unicode=False, assert_unicode=None),
19
        ForeignKey(bdd_basename + 'graph.name'),
20
        primary_key=True, nullable=False),
21
    Column(u'groupname',
22
        String(length=100, convert_unicode=False, assert_unicode=None),
23
        ForeignKey(bdd_basename + \
24
                'graphgroups.name'),
25
        primary_key=True, nullable=False),
26
        mysql_engine='InnoDB',
27
        mysql_charset='utf8'
28
    )
29

  
30
# Classe a mapper
31

  
32
class GraphToGroups(object):
33
    """
34
    Classe liée avec la table associée
35
    """
36
    
37
    def __init__(self, graphname, groupname):
38
        self.graphname = graphname
39
        self.groupname = groupname
40

  
41

  
42
mapper(GraphToGroups, graphtogroups)
vigiboard/model/vigilo_bdd/grouppermissions.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table GroupPermissions"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import Integer, String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
grouppermissions = Table(
15
    bdd_basename + 'grouppermissions',
16
    metadata,
17
    Column(u'groupname',
18
        String(length=100, convert_unicode=True, assert_unicode=None),
19
        ForeignKey(bdd_basename +'groups.name'),
20
        primary_key=True, nullable=False),
21
    Column(u'idpermission',
22
        Integer(), autoincrement=False, primary_key=True, nullable=False),
23
    mysql_engine='InnoDB',
24
    mysql_charset='utf8'
25
)
26

  
27
# Classe a mapper
28

  
29
class GroupPermissions(object):
30
    
31
    """
32
    Classe liée avec la table associée
33
    """
34

  
35
    def __init__(self, groupname, idpermission = 0):
36
        self.groupname = groupname
37
        self.idpermission = idpermission
38

  
39
mapper(GroupPermissions, grouppermissions)
vigiboard/model/vigilo_bdd/groups.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Groups"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
groups =  Table(bdd_basename + 'groups',
15
        metadata,
16
        Column(u'name',
17
            String(length=100, convert_unicode=True, assert_unicode=None),
18
            primary_key=True, nullable=False),
19
        Column(u'parent',
20
            String(length=100, convert_unicode=True, assert_unicode=None),
21
            index=True, primary_key=False),
22
        mysql_engine='InnoDB',
23
        mysql_charset='utf8'
24
    )
25

  
26
# Classe a mapper
27

  
28
class Groups(object):
29
    
30
    """
31
    Classe liée avec la table associée
32
    """
33
    
34
    def __init__(self, name, parent=None):
35
        self.name = name
36
        self.parent = parent
37

  
38
mapper(Groups, groups)
vigiboard/model/vigilo_bdd/host.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Host"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import Integer, String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
host = Table(bdd_basename + 'host',
15
        metadata,
16
        Column(u'name',
17
            String(length=255, convert_unicode=True, assert_unicode=None),
18
            index=True,primary_key=True, nullable=False),
19
        Column(u'checkhostcmd',
20
            String(length=255, convert_unicode=True, assert_unicode=None),
21
            primary_key=False, nullable=False),
22
        Column(u'community',
23
            String(length=255, convert_unicode=True, assert_unicode=None),
24
            primary_key=False, nullable=False),
25
        Column(u'fqhn',
26
            String(length=255, convert_unicode=True, assert_unicode=None),
27
            primary_key=False, nullable=False),
28
        Column(u'hosttpl',
29
            String(length=255, convert_unicode=True, assert_unicode=None),
30
            primary_key=False, nullable=False),
31
        Column(u'mainip',
32
            String(length=255, convert_unicode=True, assert_unicode=None),
33
            primary_key=False, nullable=False),
34
        Column(u'port', Integer(), primary_key=False, nullable=False),
35
        Column(u'snmpoidsperpdu', Integer(), primary_key=False),
36
        Column(u'snmpversion',
37
            String(length=255, convert_unicode=True, assert_unicode=None),
38
            primary_key=False),
39
        mysql_engine='InnoDB',
40
        mysql_charset='utf8'
41
    )
42

  
43
# Classe a mapper
44

  
45
class Host(object):
46
    
47
    """
48
    Classe liée avec la table associée
49
    """
50
    
51
    def __init__(self, name, checkhostcmd = '', community = '', fqhn = '',
52
            hosttpl = '', mainip = '', port = 0, snmpoidsperdu = 0,
53
            snmpversion = ''):
54
        self.name = name
55
        self.checkhostcmd = checkhostcmd
56
        self.community = community
57
        self.fqhn = fqhn
58
        self.hosttpl = hosttpl
59
        self.mainip = mainip
60
        self.port = port
61
        self.snmpoidsperdu = snmpoidsperdu
62
        self.snmpversion = snmpversion
63

  
64
mapper(Host, host)
65

  
66

  
vigiboard/model/vigilo_bdd/hostgroups.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table HostGroups"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
hostgroups = Table(bdd_basename + 'hostgroups',
15
    metadata,
16
    Column(u'hostname',
17
        String(length=100, convert_unicode=True, assert_unicode=None),
18
        ForeignKey(bdd_basename + u'host.name'),
19
        primary_key=True, nullable=False),
20
    Column(u'groupname',
21
        String(length=100, convert_unicode=True, assert_unicode=None),
22
        ForeignKey(bdd_basename + u'groups.name'),
23
        index=True ,primary_key=True, nullable=False),
24
    mysql_engine='InnoDB',
25
    mysql_charset='utf8'
26
)
27

  
28
# Classe a mapper
29

  
30
class HostGroups(object):
31
    
32
    """
33
    Classe liée avec la table associée
34
    """
35
    
36
    def __init__(self, hostname, groupname):
37
        self.hostname = hostname
38
        self.groupname = groupname
39

  
40
mapper(HostGroups, hostgroups)
41

  
42

  
vigiboard/model/vigilo_bdd/perfdatasource.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table PerfDataSource"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String, Float
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
perfdatasource = Table(
15
    bdd_basename + 'perfdatasource',
16
    metadata,
17
    Column(u'hostname',
18
        String(length=100, convert_unicode=True, assert_unicode=None),
19
        ForeignKey(bdd_basename + u'host.name'),
20
        primary_key=True, nullable=False),
21
    Column(u'servicename',
22
        String(length=100, convert_unicode=True, assert_unicode=None),
23
        ForeignKey(
24
            bdd_basename + u'service.name'
25
        ), index=True, primary_key=True, nullable=False),
26
    Column(u'graphname',
27
        String(length=100, convert_unicode=True, assert_unicode=None),
28
        ForeignKey(bdd_basename + u'graph.name'),
29
        index=True,primary_key=False, nullable=False),
30
    Column(u'type',
31
        String(length=100, convert_unicode=True, assert_unicode=None),
32
        primary_key=False, nullable=False),
33
    Column(u'label',
34
        String(length=255, convert_unicode=True, assert_unicode=None),
35
        primary_key=False),
36
    Column(u'factor',
37
        Float(precision=None, asdecimal=False),
38
        primary_key=False, nullable=False),
39
    mysql_engine='InnoDB',
40
    mysql_charset='utf8'
41
)
42

  
43
# Classe a mapper
44

  
45
class PerfDataSource(object):
46
    
47
    """
48
    Classe liée avec la table associée
49
    """
50
    
51
    def __init__(self, hostname, servicename, graphname, typeperf = '',
52
            label = '', factor = 0.0):
53
        self.hostname = hostname
54
        self.servicename = servicename
55
        self.graphname = graphname
56
        self.type = typeperf
57
        self.label = label
58
        self.factor = factor
59

  
60
mapper(PerfDataSource, perfdatasource)
vigiboard/model/vigilo_bdd/service.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Service"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
service =  Table(bdd_basename + 'service',
15
        metadata,
16
        Column(u'name',
17
            String(length=255, convert_unicode=True, assert_unicode=None),
18
            index=True, primary_key=True, nullable=False),
19
        Column(u'type',
20
            String(length=255, convert_unicode=True, assert_unicode=None),
21
            primary_key=False, nullable=False),
22
        Column(u'command',
23
            String(length=255, convert_unicode=True, assert_unicode=None),
24
            primary_key=False, nullable=False),
25
        mysql_engine='InnoDB',
26
        mysql_charset='utf8'
27
    )
28

  
29
# Classe a mapper
30

  
31
class Service(object):
32
    
33
    """
34
    Classe liée avec la table associée
35
    """
36
    
37
    def __init__(self, name, servicetype = 0, command = ''):
38
        self.name = name
39
        self.type = servicetype
40
        self.command = command
41
      
42
mapper(Service, service)
43

  
44

  
vigiboard/model/vigilo_bdd/servicegroups.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table ServiceGroups"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
servicegroups =  Table(
15
    bdd_basename + 'servicegroups',
16
    metadata,
17
    Column(u'servicename',
18
        String(length=100, convert_unicode=True, assert_unicode=None),
19
        ForeignKey(
20
            bdd_basename + u'service.name'
21
        ), primary_key=True, nullable=False),
22
    Column(u'groupname',
23
        String(length=100, convert_unicode=True, assert_unicode=None),
24
        ForeignKey(
25
            bdd_basename + u'groups.name'
26
        ), index=True, primary_key=True, nullable=False),
27
    mysql_engine='InnoDB',
28
    mysql_charset='utf8'
29
)
30

  
31
# Classe a mapper
32

  
33
class ServiceGroups(object):
34
    
35
    """
36
    Classe liée avec la table associée
37
    """
38
    
39
    def __init__(self, servicename, groupname):
40
        self.servicename = servicename
41
        self.groupname = groupname
42

  
43
mapper(ServiceGroups, servicegroups)
44

  
45

  
vigiboard/model/vigilo_bdd/servicehautniveau.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table ServiceHautNiveau"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
servicehautniveau = Table(
15
    bdd_basename + 'servicehautniveau',
16
    metadata,
17
    Column(u'servicename',
18
        String(length=100, convert_unicode=True, assert_unicode=None),
19
        ForeignKey(
20
            bdd_basename + u'service.name'
21
        ), primary_key=True, nullable=False),
22
    Column(u'servicename_dep',
23
        String(length=100, convert_unicode=True, assert_unicode=None),
24
        ForeignKey(
25
            bdd_basename + u'service.name'
26
        ), index=True ,primary_key=True, nullable=False),
27
    mysql_engine='InnoDB',
28
    mysql_charset='utf8'
29
)
30

  
31
# Classe a mapper
32

  
33
class ServiceHautNiveau(object):
34
    
35
    """
36
    Classe liée avec la table associée
37
    """
38
    
39
    def __init__(self, servicename, servicename_dep):
40
        self.servicename = servicename
41
        self.servicename_dep = servicename_dep
42

  
43
mapper(ServiceHautNiveau, servicehautniveau)
vigiboard/model/vigilo_bdd/servicetopo.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table ServiceTopo"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, ForeignKey, Column
8
from sqlalchemy.types import String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
servicetopo =  Table(bdd_basename + 'servicetopo',
15
    metadata,
16
    Column(u'servicename',
17
        String(length=100, convert_unicode=True, assert_unicode=None),
18
        ForeignKey(bdd_basename + \
19
                u'service.name'),
20
        primary_key=True, nullable=False),
21
    Column(u'function',
22
        String(length=50, convert_unicode=True, assert_unicode=None),
23
        primary_key=False, nullable=False),
24
    mysql_engine='InnoDB',
25
    mysql_charset='utf8'
26
)
27

  
28
# Classe a mapper
29

  
30
class ServiceTopo(object):
31
    
32
    """
33
    Classe liée avec la table associée
34
    """
35
    
36
    def __init__(self, servicename, function=''):
37
        self.servicename = servicename
38
        self.function = function
39

  
40
mapper(ServiceTopo, servicetopo)
vigiboard/model/vigilo_bdd/state.py
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)
vigiboard/model/vigilo_bdd/version.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
"""Modèle pour la table Version"""
4
from __future__ import absolute_import
5

  
6
from sqlalchemy.orm import mapper
7
from sqlalchemy import Table, Column
8
from sqlalchemy.types import Integer, String
9

  
10
from ..vigilo_bdd_config import bdd_basename, metadata
11

  
12
# Generation par SQLAutoCode
13

  
14
version = Table(bdd_basename + 'version',
15
        metadata,
16
        Column(u'name',
17
            String(length=255, convert_unicode=True, assert_unicode=None),
18
            index=True,primary_key=True, nullable=False),
19
        Column(u'version',
20
            String(length=255, convert_unicode=True, assert_unicode=None),
21
            primary_key=False, nullable=False),
22
        mysql_engine='InnoDB',
23
        mysql_charset='utf8'
24
    )
25

  
26
# Classe a mapper
27

  
28
class Version(object):
29
    
30
    """
31
    Classe liée avec la table associée
32
    """
33
    
34
    pass
35

  
36
mapper(Version, version)
37

  
38

  

Also available in: Unified diff