def getProcessList(self, deviceGuid): if deviceGuid and len(deviceGuid) > 0: s = '' try: import subprocess from Products.ZenUtils.Utils import binPath device = IGUIDManager(self._dmd).getObject(deviceGuid) s = '# ' + device.id zenmodelerOpts = ['run', '--now', '--debug', '-v10', '-d', device.id] isPerfMonRemote = False zenmodelerName = 'zenmodeler' zenmodelerPath = binPath(zenmodelerName) monitorId = device.perfServer().id if monitorId != 'localhost': zenmodelerName = monitorId + '_' + zenmodelerName zenmodelerPath = binPath(zenmodelerName) if len(zenmodelerPath) == 0: isPerfMonRemote = True if isPerfMonRemote: cmd = "ssh %s %s %s" % (device.perfServer().hostname, zenmodelerName, ' '.join(zenmodelerOpts)) else: cmd = "%s %s" % (zenmodelerPath, ' '.join(zenmodelerOpts)) processList = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT).splitlines() filterProcessLine = re.compile('DEBUG zen\.osprocessmatcher: COMMAND LINE: (?P<process>.*)$') for processListLine in processList: m = filterProcessLine.search(processListLine) if m: s += '\n' + m.group('process') except Exception, e: s += '\n# ' + str(e) yield { 'uid': '0', 'process': s }
def getProcessList(self, deviceGuid): if deviceGuid and len(deviceGuid) > 0: s = '' try: import subprocess from Products.ZenUtils.Utils import binPath device = IGUIDManager(self._dmd).getObject(deviceGuid) s = '# ' + device.id zenmodelerOpts = [ 'run', '--now', '--debug', '-v10', '-d', device.id ] isPerfMonRemote = False zenmodelerName = 'zenmodeler' zenmodelerPath = binPath(zenmodelerName) monitorId = device.perfServer().id if monitorId != 'localhost': isPerfMonRemote = True if isPerfMonRemote: cmd = 'zminion --minion-name zminion_%s run -- "%s %s"' % ( device.getPerformanceServerName(), zenmodelerName, ' '.join(zenmodelerOpts)) else: cmd = "%s %s" % (zenmodelerPath, ' '.join(zenmodelerOpts)) processList = subprocess.check_output( cmd, shell=True, stderr=subprocess.STDOUT).splitlines() filterProcessLine = re.compile( 'DEBUG zen\.osprocessmatcher: COMMAND LINE: (?P<process>.*)$' ) for processListLine in processList: m = filterProcessLine.search(processListLine) if m: s += '\n' + m.group('process') except Exception, e: s += '\n# ' + str(e) yield {'uid': '0', 'process': s}
def getProcessList(self, deviceGuid): if deviceGuid and len(deviceGuid) > 0: s = '' try: device = IGUIDManager(self._dmd).getObject(deviceGuid) s = '# ' + device.id response = Response() zenmodelerOpts = [ 'run', '--now', '--debug', '-v10', '-d', device.id ] exitCode = device.perfServer().executeCollectorCommand( 'zenmodeler', zenmodelerOpts, REQUEST=None, write=response.write) processList = response.getLines() if not exitCode: filterProcessLine = re.compile( 'DEBUG zen\.osprocessmatcher: COMMAND LINE: (?P<process>.*)$' ) for processListLine in processList: m = filterProcessLine.search(processListLine) if m: s += '\n' + m.group('process') else: s += "==> " + str(exitCode) for line in processList: s += '\n# ' + line.strip() except Exception, e: s += '\n# ' + str(e) yield {'uid': '0', 'process': s}
def getProcessList(self, deviceGuid): if deviceGuid and len(deviceGuid) > 0: s = '' try: device = IGUIDManager(self._dmd).getObject(deviceGuid) s = '# ' + device.id response = Response() zenmodelerOpts = ['run', '--now', '--debug', '-v10', '-d', device.id] exitCode = device.perfServer().executeCollectorCommand('zenmodeler', zenmodelerOpts, REQUEST=None, write=response.write) processList = response.getLines() if not exitCode: filterProcessLine = re.compile('DEBUG zen\.osprocessmatcher: COMMAND LINE: (?P<process>.*)$') for processListLine in processList: m = filterProcessLine.search(processListLine) if m: s += '\n' + m.group('process') else: s += "==> " + str(exitCode) for line in processList: s += '\n# ' + line.strip() except Exception, e: s += '\n# ' + str(e) yield { 'uid': '0', 'process': s }