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' : 'editEventView',
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, REQUEST)
88 if self._selectedTabName(templateName, REQUEST).endswith("Events"):
89 tabs[0]['selected']=True
90
91 if self.hasNoGlobalRoles():
92 return [tabs[0]]
93 return tabs
94
95
97 """Return the breadcrumb links for this object add CustomViews list.
98 [('url','id'), ...]
99 """
100 crumbs = super(CustomEventView, self).breadCrumbs(terminator)
101 url = aq_parent(self).absolute_url_path() + "/editEventViews"
102 crumbs.insert(-1,(url,'Event Views'))
103 return crumbs
104
105
107 """Return the url for the default screen for this custom view.
108 """
109 tpl = 'viewEvents' if self.type == "status" else 'viewHistoryEvents'
110 return '%s/%s' % (self.absolute_url_path(), tpl)
111
112
117
118
126
127
129 """Return the current event manager for this object.
130 """
131 if self.type == "status":
132 return self.ZenEventManager
133 else:
134 return self.ZenEventHistory
135
136
141
142
147
148
153
154
160
161
170 getEventHistoryList = getEventList
171
172
173 - def getEventDetailFromStatusOrHistory(self, evid=None,
174 dedupid=None, better=False):
175 """
176 Return the event detail for an event within the context of a device
177 or other device organizer
178 """
179 evt = self.getEventManager().getEventDetailFromStatusOrHistory(
180 evid, dedupid, better)
181 return evt.__of__(self)
182
183
186
187
188 security.declareProtected('Manage Events','manage_addLogMessage')
195
196
197 security.declareProtected('Manage Events','manage_deleteEvents')
211
212
213 security.declareProtected('Manage Events','manage_deleteHeartbeat')
222
223
224 security.declareProtected('Manage Events','manage_ackEvents')
229
230
231 security.declareProtected('Manage Events','manage_setEventStates')
237
238
239 security.declareProtected('Manage Events','manage_createEventMap')
248
249
250 security.declareProtected('Change Settings', 'manage_editEventView')
260
261
262 security.declareProtected('Manage Events','manage_deleteBatchEvents')
263 - def manage_deleteBatchEvents(self, selectstatus='none', goodevids=[],
264 badevids=[], filter='',
265 offset=0, count=50, fields=[],
266 getTotalCount=True,
267 startdate=None, enddate=None,
268 severity=2, state=1, orderby='',
269 REQUEST=None, **kwargs):
270 """Delete events form this managed entity.
271 """
272 unused(count)
273 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
274 where=self.getWhere(),
275 selectstatus=selectstatus,
276 goodevids=goodevids,
277 badevids=badevids,
278 filter=filter,
279 offset=offset, fields=fields,
280 getTotalCount=getTotalCount,
281 startdate=startdate,
282 enddate=enddate, severity=severity,
283 state=state, orderby=orderby,
284 **kwargs)
285 request = FakeRequest()
286 self.manage_deleteEvents(evids, request)
287 return request.get('message', '')
288
297
298
299
300 - def manage_undeleteBatchEvents(self, selectstatus='none', goodevids=[],
301 badevids=[], filter='',
302 offset=0, count=50, fields=[],
303 getTotalCount=True,
304 startdate=None, enddate=None,
305 severity=2, state=1, orderby='',
306 REQUEST=None, **kwargs):
307 """Delete events form this managed entity.
308 Only called from event console, so uses FakeRequest to avoid
309 page rendering.
310 """
311 unused(count)
312 evids = self.ZenEventHistory.getEventBatchME(self.dmd.Events,
313 where=self.getWhere(),
314 selectstatus=selectstatus,
315 goodevids=goodevids,
316 badevids=badevids,
317 filter=filter,
318 offset=offset, fields=fields,
319 getTotalCount=getTotalCount,
320 startdate=startdate,
321 enddate=enddate, severity=severity,
322 state=state, orderby=orderby,
323 **kwargs)
324 request = FakeRequest()
325 self.manage_undeleteEvents(evids, request)
326 return request.get('message', '')
327
328
329 security.declareProtected('Manage Events','manage_ackBatchEvents')
330 - def manage_ackBatchEvents(self, selectstatus='none', goodevids=[],
331 badevids=[], filter='',
332 offset=0, count=50, fields=[],
333 getTotalCount=True,
334 startdate=None, enddate=None,
335 severity=2, state=1, orderby='',
336 REQUEST=None, **kwargs):
337 """Delete events form this managed entity.
338 Only called from event console, so uses FakeRequest to avoid
339 page rendering.
340 """
341 unused(count)
342 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
343 where=self.getWhere(),
344 selectstatus=selectstatus,
345 goodevids=goodevids,
346 badevids=badevids,
347 filter=filter,
348 offset=offset, fields=fields,
349 getTotalCount=getTotalCount,
350 startdate=startdate,
351 enddate=enddate, severity=severity,
352 state=state, orderby=orderby,
353 **kwargs)
354 request = FakeRequest()
355 self.manage_ackEvents(evids, request)
356 return request.get('message', '')
357
358
359 InitializeClass(CustomEventView)
360