setup both monitor and zabbix databases in /etc/plc.d/monitor
[monitor.git] / monitor / database / infovacuum / __init__.py
1 #__connection__ = hub = PackageHub('infovacuum')
2 try:
3         import pkg_resources
4         pkg_resources.require("SQLAlchemy>=0.4.9")
5         pkg_resources.require("Elixir>=0.4.0")
6         ## NOTE!!!!!!
7         # with this line enabled, other models cannot import this file.
8         # it results in the wrong metadata value being loaded, I think.
9         #from turbogears.database import metadata, mapper
10
11         #import pkg_resources
12         #pkg_resources.require("SQLObject>=0.7.1")
13         #from turbogears.database import PackageHub, AutoConnectHub
14         #from turbogears import config
15         #uri = config.get("sqlobject.dburi")
16         #from sqlobject import connectionForURI,sqlhub
17         #sqlhub.processConnection = connectionForURI(uri)
18
19 except:
20         # NOTE:  this try, will allow external modules to import the model without
21         # requring the turbogears garbage.
22         import traceback
23         print traceback.print_exc()
24         pass
25
26 from elixir import Entity, Field, OneToMany, ManyToOne, ManyToMany
27 from elixir import options_defaults, using_options, setup_all
28 from elixir import String, Unicode, Integer, DateTime
29 options_defaults['autosetup'] = False
30
31 from monitor.database.dborm import mon_metadata, mon_session
32 __metadata__ = mon_metadata
33 __session__  = mon_session
34
35 def findby_or_create(cls, if_new_set={}, **kwargs):
36         result = cls.get_by(**kwargs)
37         if not result:
38                 result = cls(**kwargs)
39                 result.set(**if_new_set)
40         return result
41 Entity.findby_or_create = classmethod(findby_or_create)
42
43 from monitor.database.infovacuum.actionrecord import *
44 from monitor.database.infovacuum.findbad import *
45 from monitor.database.infovacuum.historyrecord import *
46 setup_all()