Exemplo n.º 1
0
 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
         }
Exemplo n.º 2
0
 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}
Exemplo n.º 3
0
 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}
Exemplo n.º 4
0
 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
         }