1
2
3
4
5
6
7
8
9
10
11
12
13
14 import logging
15 log = logging.getLogger("zen.triggers")
16
17 from Globals import InitializeClass
18 from Globals import DTMLFile
19 from AccessControl import ClassSecurityInfo
20 from AdministrativeRoleable import AdministrativeRoleable
21 from Products.ZenModel.ZenossSecurity import *
22 from Products.ZenRelations.RelSchema import *
23 from Products.ZenModel.ZenModelRM import ZenModelRM
24 from zope.interface import implements
25 from Products.ZenUtils.guid.interfaces import IGloballyIdentifiable
26
27
29
30
37
39 """Manage triggers."""
40
41 _id = "TriggerManager"
42 root = 'Triggers'
43 meta_type = _id
44
45 sub_meta_types = ("Trigger",)
46
47 factory_type_information = (
48 {
49 'id' : _id,
50 'meta_type' : _id,
51 'description' : """Management of triggers""",
52 'icon' : 'UserSettingsManager.gif',
53 'product' : 'ZenModel',
54 'factory' : 'manage_addTriggerManager',
55 'immediate_view' : 'editSettings',
56 'actions' : (
57 {
58 'id' : 'settings',
59 'name' : 'Settings',
60 'action' : '../editSettings',
61 'permissions' : ( ZEN_MANAGE_DMD, )
62 })
63 },
64 )
65
66 addTrigger = DTMLFile('dtml/addTrigger',globals())
67
68
75
76 -class Trigger(ZenModelRM, AdministrativeRoleable):
77 """
78 A stub object that is used for managing permissions.
79 """
80 implements(IGloballyIdentifiable)
81 security = ClassSecurityInfo()
82
83 _id = "Trigger"
84 meta_type = _id
85
86 _properties = ZenModelRM._properties
87
88 _relations = (
89 ("adminRoles",
90 ToManyCont(
91 ToOne,
92 "Products.ZenModel.AdministrativeRole",
93 "managedObject"
94 )),
95 )
96
97 factory_type_information = (
98 {
99 'id' : _id,
100 'meta_type' : _id,
101 'description' : """Stub object representing a trigger.""",
102 'icon' : 'ActionRule.gif',
103 'product' : 'ZenEvents',
104 'factory' : 'manage_addTrigger',
105 'immediate_view' : 'editTrigger',
106 'actions' :(
107 {
108 'id' : 'edit',
109 'name' : 'Edit',
110 'action' : 'editTrigger',
111 'permissions' : (ZEN_CHANGE_ALERTING_RULES,)
112 }
113 )
114 },
115 )
116
117
118 users = []
119
120 - def __init__(self, id, title=None, buildRelations=True):
130
131 security.declareProtected(ZEN_CHANGE_ALERTING_RULES, 'manage_editTrigger')
135
136 InitializeClass(TriggerManager)
137 InitializeClass(Trigger)
138