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

Source Code for Package Products.ZenModel

  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  __doc__="""__init__ 
 12   
 13  Initialize the Confmon Product 
 14   
 15  Products must follow the following standard 
 16  The name of the module (file) and the name of the product class inside 
 17  the file must be the same. 
 18   
 19  If there is a ZMI add screen it must be called "add" + class name (ie addDevice)and it must be defined at the module level. 
 20   
 21  the class factory must be a function at the module level called  
 22  manage_add + class name (ie manage_addDevice) 
 23   
 24  If there is an icon for the product it should be called class name + _icon.gif 
 25  """ 
 26   
 27  import os 
 28  import logging 
 29  log = logging.getLogger("zenmodel") 
 30   
 31  if 0: 
 32      __path__ = None                     # keep pyflakes quiet 
 33   
 34  from Products.CMFCore.DirectoryView import registerDirectory 
 35   
 36  confmon_globals = globals() 
 37   
 38  productNames = ( 
 39      'AdministrativeRole', 
 40      'AdministrativeRoleable', 
 41      'AreaGraphPoint', 
 42      'BasicDataSource', 
 43      'BasicDeviceLoader', 
 44      'BatchDeviceLoader', 
 45      'BuiltInDS', 
 46      'CPU', 
 47      'CdefGraphPoint', 
 48      'CiscoLoader', 
 49      'Classifier', 
 50      'ClassifierEntry', 
 51      'Collection', 
 52      'CollectionItem', 
 53      'Commandable', 
 54      'CommentGraphPoint', 
 55      'ComplexGraphPoint', 
 56      'ConfigurationError', 
 57      'ConfmonPropManager', 
 58      'CustomDeviceReportClass', 
 59      'DataPointGraphPoint', 
 60      'DataRoot', 
 61      'DefGraphPoint', 
 62      'Device', 
 63      'DeviceClass', 
 64      'DeviceComponent', 
 65      'DeviceGroup', 
 66      'DeviceHW', 
 67      'DeviceManagerBase', 
 68      'DeviceOrganizer', 
 69      'DeviceReport', 
 70      'DeviceReportClass', 
 71      'DeviceResultInt', 
 72      'DmdBuilder', 
 73      'EventView', 
 74      'Exceptions', 
 75      'ExpansionCard', 
 76      'Fan', 
 77      'FileSystem', 
 78      'GprintGraphPoint', 
 79      'GraphDefinition', 
 80      'GraphGroup', 
 81      'GraphPoint', 
 82      'GraphReport', 
 83      'GraphReportClass', 
 84      'GraphReportElement', 
 85      'HWComponent', 
 86      'HardDisk', 
 87      'Hardware', 
 88      'HardwareClass', 
 89      'HruleGraphPoint', 
 90      'IpAddress', 
 91      'IpInterface', 
 92      'IpNetwork', 
 93      'IpRouteEntry', 
 94      'IpService', 
 95      'IpServiceClass', 
 96      'IpServiceLoader', 
 97      'LineGraphPoint', 
 98      'Link', 
 99      'LinkManager', 
100      'Linkable', 
101      'Location', 
102      'Lockable', 
103      'MEProduct', 
104      'MaintenanceWindow', 
105      'MaintenanceWindowable', 
106      'ManagedEntity', 
107      'Manufacturer', 
108      'ManufacturerRoot', 
109      'MibBase', 
110      'MibModule', 
111      'MibNode', 
112      'MibNotification', 
113      'MibOrganizer', 
114      'MinMaxThreshold', 
115      'Monitor', 
116      'MonitorClass', 
117      'MultiGraphReport', 
118      'MultiGraphReportClass', 
119      'OSComponent', 
120      'OSProcess', 
121      'OSProcessClass', 
122      'OSProcessOrganizer', 
123      'OperatingSystem', 
124      'Organizer', 
125      'PerformanceConf', 
126      'PingDataSource', 
127      'PowerSupply', 
128      'PrintGraphPoint', 
129      'ProductClass', 
130      'RRDDataPoint', 
131      'RRDDataSource', 
132      'RRDGraph', 
133      'RRDTemplate', 
134      'RRDThreshold', 
135      'RRDView', 
136      'Report', 
137      'ReportClass', 
138      'Service', 
139      'ServiceClass', 
140      'ServiceOrganizer', 
141      'ShiftGraphPoint', 
142      'SiteError', 
143      'Software', 
144      'SoftwareClass', 
145      'StatusColor', 
146      'System', 
147      'TemperatureSensor', 
148      'TemplateContainer', 
149      'ThresholdClass', 
150      'ThresholdGraphPoint', 
151      'ThresholdInstance', 
152      'TickGraphPoint', 
153      'UserCommand', 
154      'UserSettings', 
155      'VdefGraphPoint', 
156      'VruleGraphPoint', 
157      'WinService', 
158      'XmlDataLoader', 
159      'ZDeviceLoader', 
160      'ZVersion', 
161      'ZenDate', 
162      'ZenMenu', 
163      'ZenMenuItem', 
164      'ZenMenuable', 
165      'ZenModelBase', 
166      'ZenModelItem', 
167      'ZenModelRM', 
168      'ZenPack', 
169      'ZenPackLoader', 
170      'ZenPackManager', 
171      'ZenPackPersistence', 
172      'ZenPackable', 
173      'ZenPacker', 
174      'ZenStatus', 
175      'ZenossInfo', 
176      'ZenossSecurity', 
177      'ZentinelPortal', 
178  ) 
179   
180  # Make the skins available as DirectoryViews. 
181  registerDirectory('skins', globals()) 
182  registerDirectory('help', globals()) 
183   
184   
185  confmonModules = [] 
186 -def loadConfmonModules():
187 # import all modules 188 for product in productNames: 189 mod = __import__(product, globals(), locals(), []) 190 confmonModules.append(mod)
191 192
193 -def initialize(registrar):
194 contentClasses = () 195 contentConstructors = () 196 197 registrar.registerHelp() 198 registrar.registerHelpTitle('Zentinel Portal Help') 199 200 if not confmonModules: loadConfmonModules() 201 # register products with zope 202 for module in confmonModules: 203 args = [] 204 kwargs = {} 205 className = module.__name__.split('.')[-1] 206 addDtmlName = "add%s" % className 207 factoryName = "manage_add%s" % className 208 iconName = "www/%s_icon.gif" % className 209 confclass = getattr(module, className, None) 210 #contentClasses.append(confclass) 211 if not confclass: continue 212 args.append(confclass) 213 constructors = [] 214 addDtml = getattr(module, addDtmlName, None) 215 if addDtml: constructors.append(addDtml) 216 factory = getattr(module, factoryName, None) 217 if factory: constructors.append(factory) 218 if not constructors: continue 219 kwargs['constructors'] = constructors 220 kwargs['permission'] = "Add DMD Objects" 221 if os.path.exists(os.path.join(__path__[0], iconName)): 222 kwargs['icon'] = iconName 223 log.debug("Register Class=%s",className) 224 log.debug("kwargs=%s", constructors) 225 apply(registrar.registerClass, args, kwargs)
226