Trees | Indices | Help |
|
---|
|
1 ########################################################################### 2 # 3 # This program is part of Zenoss Core, an open source monitoring platform. 4 # Copyright (C) 2007, Zenoss Inc. 5 # 6 # This program is free software; you can redistribute it and/or modify it 7 # under the terms of the GNU General Public License version 2 as published by 8 # the Free Software Foundation. 9 # 10 # For complete information please visit: http://www.zenoss.com/oss/ 11 # 12 ########################################################################### 13 14 from PerformanceConfig import PerformanceConfig 15 from ZODB.POSException import POSError 16 from Products.ZenRRD.zencommand import Cmd, DeviceConfig, DataPointConfig 17 from Products.ZenHub.PBDaemon import translateError 18 from Products.DataCollector.Plugins import getParserLoader 19 import logging 20 log = logging.getLogger('zen.CommandConfig') 2123 """Return list of command definitions. 24 """ 25 perfServer = comp.device().getPerformanceServer() 26 for templ in comp.getRRDTemplates(): 27 basepath = comp.rrdPath() 28 for ds in templ.getRRDDataSources('COMMAND'): 29 if not ds.enabled: continue 30 parserName = getattr(ds, "parser", "Auto") 31 ploader = getParserLoader(dmd, parserName) 32 if ploader is None: 33 log.error("Could not load %s plugin", parserName) 34 continue 35 component_name = ds.getComponent(comp) 36 parser = ploader.create() 37 points = [] 38 for dp in ds.getRRDDataPoints(): 39 dpc = DataPointConfig() 40 dpc.id = dp.id 41 dpc.component = component_name 42 dpc.rrdPath = "/".join((basepath, dp.name())) 43 dpc.rrdType = dp.rrdtype 44 dpc.rrdCreateCommand = dp.getRRDCreateCommand(perfServer) 45 dpc.rrdMin = dp.rrdmin 46 dpc.rrdMax = dp.rrdmax 47 dpc.data = parser.dataForParser(comp, dp) 48 points.append(dpc) 49 cmd = Cmd() 50 cmd.useSsh = getattr(ds, 'usessh', False) 51 cmd.cycleTime = ds.cycletime 52 cmd.component = component_name 53 cmd.eventClass = ds.eventClass 54 cmd.eventKey = ds.eventKey or ds.id 55 cmd.severity = ds.severity 56 cmd.parser = ploader 57 cmd.command = ds.getCommand(comp) 58 cmd = commandCache.setdefault(cmd.commandKey(), cmd) 59 cmd.points.extend(points) 60 commandSet.add(cmd) 61 return comp.getThresholdInstances('COMMAND')62 6365 if not dev.monitorDevice(): 66 return None 67 cache = {} 68 cmds = set() 69 threshs = getComponentCommands(dev, cache, cmds, dev.getDmd()) 70 for o in dev.getMonitoredComponents(collector="zencommand"): 71 threshs.extend(getComponentCommands(o, cache, cmds, dev.getDmd())) 72 if cmds: 73 d = DeviceConfig() 74 d.lastChange = dev.getLastChange() 75 d.device = dev.id 76 d.ipAddress = dev.getManageIp() 77 d.port = dev.getProperty('zCommandPort') 78 d.username = dev.getProperty('zCommandUsername') 79 d.password = dev.getProperty('zCommandPassword') 80 d.loginTimeout = dev.getProperty('zCommandLoginTimeout') 81 d.commandTimeout = dev.getProperty('zCommandCommandTimeout') 82 d.keyPath = dev.getProperty('zKeyPath') 83 d.maxOids = dev.getProperty('zMaxOIDPerRequest') 84 d.concurrentSessions = dev.getProperty('zSshConcurrentSessions') 85 d.commands = list(cmds) 86 d.thresholds = threshs 87 return d 88 return None89 9092 93 @translateError12995 return self.getDataSourceCommands(devices)96 97 100 101 104 105107 '''Get the command configuration for all devices. 108 ''' 109 result = [] 110 for dev in self.config.devices(): 111 if devices and dev.id not in devices: continue 112 dev = dev.primaryAq() 113 try: 114 cmdinfo = getDeviceCommands(dev) 115 if not cmdinfo: continue 116 result.append(cmdinfo) 117 except POSError: raise 118 except: 119 self.log.exception("device %s", dev.id) 120 return result121123 from Products.ZenModel.RRDDataSource import RRDDataSource 124 if isinstance(object, RRDDataSource): 125 if object.sourcetype != 'COMMAND': 126 return 127 128 PerformanceConfig.update(self, object)
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0beta1 on Mon Oct 19 14:44:24 2009 | http://epydoc.sourceforge.net |