Package Products :: Package ZenModel :: Module Trigger
[hide private]
[frames] | no frames]

Source Code for Module Products.ZenModel.Trigger

  1  ############################################################################## 
  2  #  
  3  # Copyright (C) Zenoss, Inc. 2007, all rights reserved. 
  4  #  
  5  # This content is made available according to terms specified in 
  6  # License.zenoss under the directory where your Zenoss product is installed. 
  7  #  
  8  ############################################################################## 
  9   
 10   
 11  import logging 
 12  log = logging.getLogger("zen.triggers") 
 13   
 14  from Globals import InitializeClass 
 15  from Globals import DTMLFile 
 16  from AccessControl import ClassSecurityInfo 
 17  from AdministrativeRoleable import AdministrativeRoleable 
 18  from Products.ZenModel.ZenossSecurity import * 
 19  from Products.ZenRelations.RelSchema import * 
 20  from Products.ZenModel.ZenModelRM import ZenModelRM 
 21  from zope.interface import implements 
 22  from Products.ZenUtils.guid.interfaces import IGloballyIdentifiable 
 23   
 24   
25 -class InvalidTriggerActionType(Exception): pass
26 27
28 -def manage_addTriggerManager(context, REQUEST=None):
29 """Create the trigger manager.""" 30 tm = TriggerManager(TriggerManager.root) 31 context._setObject(TriggerManager.root, tm) 32 if REQUEST is not None: 33 REQUEST['RESPONSE'].redirect(context.absolute_url() + '/manage_main')
34
35 -class TriggerManager(ZenModelRM):
36 """Manage triggers.""" 37 38 _id = "TriggerManager" 39 root = 'Triggers' 40 meta_type = _id 41 42 sub_meta_types = ("Trigger",) 43 44 factory_type_information = ( 45 { 46 'id' : _id, 47 'meta_type' : _id, 48 'description' : """Management of triggers""", 49 'icon' : 'UserSettingsManager.gif', 50 'product' : 'ZenModel', 51 'factory' : 'manage_addTriggerManager', 52 'immediate_view' : 'editSettings', 53 'actions' : ( 54 { 55 'id' : 'settings', 56 'name' : 'Settings', 57 'action' : '../editSettings', 58 'permissions' : ( ZEN_MANAGE_DMD, ) 59 }) 60 }, 61 )
62 63 addTrigger = DTMLFile('dtml/addTrigger',globals()) 64 65
66 -def manage_addTrigger(context, id, title = None, REQUEST = None):
67 """Create a trigger""" 68 ns = Trigger(id, title) 69 context._setObject(id, ns) 70 if REQUEST: 71 REQUEST['RESPONSE'].redirect(context.absolute_url() + '/manage_main')
72
73 -class Trigger(ZenModelRM, AdministrativeRoleable):
74 """ 75 A stub object that is used for managing permissions. 76 """ 77 implements(IGloballyIdentifiable) 78 security = ClassSecurityInfo() 79 80 _id = "Trigger" 81 meta_type = _id 82 83 _properties = ZenModelRM._properties 84 85 _relations = ( 86 ("adminRoles", 87 ToManyCont( 88 ToOne, 89 "Products.ZenModel.AdministrativeRole", 90 "managedObject" 91 )), 92 ) 93 94 factory_type_information = ( 95 { 96 'id' : _id, 97 'meta_type' : _id, 98 'description' : """Stub object representing a trigger.""", 99 'icon' : 'ActionRule.gif', 100 'product' : 'ZenEvents', 101 'factory' : 'manage_addTrigger', 102 'immediate_view' : 'editTrigger', 103 'actions' :( 104 { 105 'id' : 'edit', 106 'name' : 'Edit', 107 'action' : 'editTrigger', 108 'permissions' : (ZEN_CHANGE_ALERTING_RULES,) 109 } 110 ) 111 }, 112 ) 113 114 # a property storing user permission mappings 115 users = [] 116
117 - def __init__(self, id, title=None, buildRelations=True):
118 self.globalRead = False 119 self.globalWrite = False 120 self.globalManage = False 121 122 self.userRead = False 123 self.userWrite = False 124 self.userManage = False 125 126 super(ZenModelRM, self).__init__(id, title=title, buildRelations=buildRelations)
127 128 security.declareProtected(ZEN_CHANGE_ALERTING_RULES, 'manage_editTrigger')
129 - def manage_editTrigger(self, REQUEST=None):
130 """Update trigger properties""" 131 return self.zmanage_editProperties(REQUEST)
132 133 InitializeClass(TriggerManager) 134 InitializeClass(Trigger) 135