1
2
3
4
5
6
7
8
9
10
11
12
13
14 import logging
15 log = logging.getLogger("zen.EventView")
16
17 from Globals import DTMLFile, InitializeClass
18 from AccessControl import ClassSecurityInfo
19 from Acquisition import aq_parent
20 from zope.interface import implements
21
22 from Products.ZenModel.ZenModelRM import ZenModelRM
23 from Products.ZenEvents.EventFilter import EventFilter
24 from Products.ZenModel.EventView import IEventView
25 from Products.ZenUtils.FakeRequest import FakeRequest
26
27 from Products.ZenUtils.Utils import unused
28
35
36 addCustomEventView = DTMLFile('dtml/addCustomEventView',globals())
37
38 __pychecker__='no-argsused no-varargsused'
39
41
42 implements(IEventView)
43
44 meta_type = "CustomEventView"
45
46 type = "status"
47 evtypes = ("status", "history")
48 orderby = ""
49 where = ""
50 resultFields = ()
51
52 _properties = ZenModelRM._properties + (
53 {'id':'type', 'type':'selection',
54 'select_variable':'evtypes', 'mode':'w'},
55 {'id':'orderby', 'type':'string', 'mode':'w'},
56 {'id':'where', 'type':'text', 'mode':'w'},
57 {'id':'resultFields', 'type':'lines', 'mode':'w'},
58 )
59
60 factory_type_information = (
61 {
62 'immediate_view' : 'getEventView',
63 'actions' :
64 (
65 { 'id' : 'view'
66 , 'name' : 'View'
67 , 'action' : 'getEventView'
68 , 'permissions' : ("View",)
69 },
70 { 'id' : 'edit'
71 , 'name' : 'Edit'
72 , 'action' : 'editEventView'
73 , 'permissions' : ("Change Settings",)
74 },
75 )
76 },
77 )
78
79 security = ClassSecurityInfo()
80
81
82 security.declareProtected('View', 'zentinelTabs')
84 """Return a list of hashs that define the screen tabs for this object.
85 [{'name':'Name','action':'template','selected':False},...]
86 """
87 tabs = super(CustomEventView, self).zentinelTabs(templateName)
88 if templateName.endswith("Events"): tabs[0]['selected']=True
89
90 if self.hasNoGlobalRoles():
91 return [tabs[0]]
92 return tabs
93
94
96 """Return the breadcrumb links for this object add CustomViews list.
97 [('url','id'), ...]
98 """
99 crumbs = super(CustomEventView, self).breadCrumbs(terminator)
100 url = aq_parent(self).absolute_url_path() + "/editEventViews"
101 crumbs.insert(-1,(url,'Event Views'))
102 return crumbs
103
104
106 """Return the default screen for this custom view.
107 """
108 if self.type == "status":
109 return self.viewEvents()
110 else:
111 return self.viewHistoryEvents()
112
113
115 """Return the current event manager for this object.
116 """
117 if self.type == "status":
118 return self.ZenEventManager
119 else:
120 return self.ZenEventHistory
121
122
127
128
133
134
139
140
146
147
156 getEventHistoryList = getEventList
157
158
159 - def getEventDetailFromStatusOrHistory(self, evid=None,
160 dedupid=None, better=False):
161 """
162 Return the event detail for an event within the context of a device
163 or other device organizer
164 """
165 evt = self.getEventManager().getEventDetailFromStatusOrHistory(
166 evid, dedupid, better)
167 return evt.__of__(self)
168
169
172
173
174 security.declareProtected('Manage Events','manage_addLogMessage')
181
182
183 security.declareProtected('Manage Events','manage_deleteEvents')
197
198
199 security.declareProtected('Manage Events','manage_deleteHeartbeat')
208
209
210 security.declareProtected('Manage Events','manage_ackEvents')
215
216
217 security.declareProtected('Manage Events','manage_setEventStates')
223
224
225 security.declareProtected('Manage Events','manage_createEventMap')
234
235
236 security.declareProtected('Change Settings', 'manage_editEventView')
246
247
248 security.declareProtected('Manage Events','manage_deleteBatchEvents')
249 - def manage_deleteBatchEvents(self, selectstatus='none', goodevids=[],
250 badevids=[], filter='',
251 offset=0, count=50, fields=[],
252 getTotalCount=True,
253 startdate=None, enddate=None,
254 severity=2, state=1, orderby='',
255 REQUEST=None, **kwargs):
256 """Delete events form this managed entity.
257 """
258 unused(count)
259 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
260 where=self.getWhere(),
261 selectstatus=selectstatus,
262 goodevids=goodevids,
263 badevids=badevids,
264 filter=filter,
265 offset=offset, fields=fields,
266 getTotalCount=getTotalCount,
267 startdate=startdate,
268 enddate=enddate, severity=severity,
269 state=state, orderby=orderby,
270 **kwargs)
271 request = FakeRequest()
272 self.manage_deleteEvents(evids, request)
273 return request.get('message', '')
274
283
284
285
286 - def manage_undeleteBatchEvents(self, selectstatus='none', goodevids=[],
287 badevids=[], filter='',
288 offset=0, count=50, fields=[],
289 getTotalCount=True,
290 startdate=None, enddate=None,
291 severity=2, state=1, orderby='',
292 REQUEST=None, **kwargs):
293 """Delete events form this managed entity.
294 Only called from event console, so uses FakeRequest to avoid
295 page rendering.
296 """
297 unused(count)
298 evids = self.ZenEventHistory.getEventBatchME(self.dmd.Events,
299 where=self.getWhere(),
300 selectstatus=selectstatus,
301 goodevids=goodevids,
302 badevids=badevids,
303 filter=filter,
304 offset=offset, fields=fields,
305 getTotalCount=getTotalCount,
306 startdate=startdate,
307 enddate=enddate, severity=severity,
308 state=state, orderby=orderby,
309 **kwargs)
310 request = FakeRequest()
311 self.manage_undeleteEvents(evids, request)
312 return request.get('message', '')
313
314
315 security.declareProtected('Manage Events','manage_ackBatchEvents')
316 - def manage_ackBatchEvents(self, selectstatus='none', goodevids=[],
317 badevids=[], filter='',
318 offset=0, count=50, fields=[],
319 getTotalCount=True,
320 startdate=None, enddate=None,
321 severity=2, state=1, orderby='',
322 REQUEST=None, **kwargs):
323 """Delete events form this managed entity.
324 Only called from event console, so uses FakeRequest to avoid
325 page rendering.
326 """
327 unused(count)
328 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
329 where=self.getWhere(),
330 selectstatus=selectstatus,
331 goodevids=goodevids,
332 badevids=badevids,
333 filter=filter,
334 offset=offset, fields=fields,
335 getTotalCount=getTotalCount,
336 startdate=startdate,
337 enddate=enddate, severity=severity,
338 state=state, orderby=orderby,
339 **kwargs)
340 request = FakeRequest()
341 self.manage_ackEvents(evids, request)
342 return request.get('message', '')
343
344
345 InitializeClass(CustomEventView)
346