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 tpl = 'viewEvents'
110 else:
111 tpl = 'viewHistoryEvents'
112 url = '%s/%s' % (self.absolute_url_path(), tpl)
113 self.REQUEST.response.redirect(url)
114
115
117 """Return the current event manager for this object.
118 """
119 if self.type == "status":
120 return self.ZenEventManager
121 else:
122 return self.ZenEventHistory
123
124
129
130
135
136
141
142
148
149
158 getEventHistoryList = getEventList
159
160
161 - def getEventDetailFromStatusOrHistory(self, evid=None,
162 dedupid=None, better=False):
163 """
164 Return the event detail for an event within the context of a device
165 or other device organizer
166 """
167 evt = self.getEventManager().getEventDetailFromStatusOrHistory(
168 evid, dedupid, better)
169 return evt.__of__(self)
170
171
174
175
176 security.declareProtected('Manage Events','manage_addLogMessage')
183
184
185 security.declareProtected('Manage Events','manage_deleteEvents')
199
200
201 security.declareProtected('Manage Events','manage_deleteHeartbeat')
210
211
212 security.declareProtected('Manage Events','manage_ackEvents')
217
218
219 security.declareProtected('Manage Events','manage_setEventStates')
225
226
227 security.declareProtected('Manage Events','manage_createEventMap')
236
237
238 security.declareProtected('Change Settings', 'manage_editEventView')
248
249
250 security.declareProtected('Manage Events','manage_deleteBatchEvents')
251 - def manage_deleteBatchEvents(self, selectstatus='none', goodevids=[],
252 badevids=[], filter='',
253 offset=0, count=50, fields=[],
254 getTotalCount=True,
255 startdate=None, enddate=None,
256 severity=2, state=1, orderby='',
257 REQUEST=None, **kwargs):
258 """Delete events form this managed entity.
259 """
260 unused(count)
261 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
262 where=self.getWhere(),
263 selectstatus=selectstatus,
264 goodevids=goodevids,
265 badevids=badevids,
266 filter=filter,
267 offset=offset, fields=fields,
268 getTotalCount=getTotalCount,
269 startdate=startdate,
270 enddate=enddate, severity=severity,
271 state=state, orderby=orderby,
272 **kwargs)
273 request = FakeRequest()
274 self.manage_deleteEvents(evids, request)
275 return request.get('message', '')
276
285
286
287
288 - def manage_undeleteBatchEvents(self, selectstatus='none', goodevids=[],
289 badevids=[], filter='',
290 offset=0, count=50, fields=[],
291 getTotalCount=True,
292 startdate=None, enddate=None,
293 severity=2, state=1, orderby='',
294 REQUEST=None, **kwargs):
295 """Delete events form this managed entity.
296 Only called from event console, so uses FakeRequest to avoid
297 page rendering.
298 """
299 unused(count)
300 evids = self.ZenEventHistory.getEventBatchME(self.dmd.Events,
301 where=self.getWhere(),
302 selectstatus=selectstatus,
303 goodevids=goodevids,
304 badevids=badevids,
305 filter=filter,
306 offset=offset, fields=fields,
307 getTotalCount=getTotalCount,
308 startdate=startdate,
309 enddate=enddate, severity=severity,
310 state=state, orderby=orderby,
311 **kwargs)
312 request = FakeRequest()
313 self.manage_undeleteEvents(evids, request)
314 return request.get('message', '')
315
316
317 security.declareProtected('Manage Events','manage_ackBatchEvents')
318 - def manage_ackBatchEvents(self, selectstatus='none', goodevids=[],
319 badevids=[], filter='',
320 offset=0, count=50, fields=[],
321 getTotalCount=True,
322 startdate=None, enddate=None,
323 severity=2, state=1, orderby='',
324 REQUEST=None, **kwargs):
325 """Delete events form this managed entity.
326 Only called from event console, so uses FakeRequest to avoid
327 page rendering.
328 """
329 unused(count)
330 evids = self.getEventManager().getEventBatchME(self.dmd.Events,
331 where=self.getWhere(),
332 selectstatus=selectstatus,
333 goodevids=goodevids,
334 badevids=badevids,
335 filter=filter,
336 offset=offset, fields=fields,
337 getTotalCount=getTotalCount,
338 startdate=startdate,
339 enddate=enddate, severity=severity,
340 state=state, orderby=orderby,
341 **kwargs)
342 request = FakeRequest()
343 self.manage_ackEvents(evids, request)
344 return request.get('message', '')
345
346
347 InitializeClass(CustomEventView)
348