1
2
3
4
5
6
7
8
9
10
11 __doc__="""CmdBase
12
13 Add data base access functions for command line programs
14
15 $Id: CheckRelations.py,v 1.2 2004/10/19 22:28:59 edahl Exp $"""
16
17 __version__ = "$Revision: 1.2 $"[11:-2]
18
19
20 import transaction
21
22 import Globals
23
24 from Products.ZenUtils.Utils import getAllConfmonObjects
25
26 from ZenScriptBase import ZenScriptBase
27
29
31 repair = self.options.repair
32 ccount = 0
33 self.log.info("Checking relations...")
34 for object in getAllConfmonObjects(self.dmd):
35 ccount += 1
36 self.log.debug("checking relations on object %s"
37 % object.getPrimaryDmdId())
38 object.checkRelations(repair=repair)
39 ch = object._p_changed
40 if not ch: object._p_deactivate()
41 if ccount >= self.options.savepoint:
42 transaction.savepoint()
43 ccount = 0
44 if self.options.nocommit:
45 self.log.info("not commiting any changes")
46 else:
47 trans = transaction.get()
48 trans.note('CheckRelations cleaned relations' )
49 trans.commit()
50
51
53 ZenScriptBase.buildOptions(self)
54
55 self.parser.add_option('-r', '--repair',
56 dest='repair', action="store_true",
57 help='repair all inconsistant relations')
58
59 self.parser.add_option('-x', '--savepoint',
60 dest='savepoint', default=500, type="int",
61 help='how many lines should be loaded before savepoint')
62
63 self.parser.add_option('-n', '--nocommit',
64 dest='nocommit', action="store_true",
65 help='Do not store changes to the Dmd (for debugging)')
66
67
68 if __name__ == "__main__":
69 tmbk = CheckRelations(connect=True)
70 tmbk.rebuild()
71