Package Products :: Package ZenWin :: Module WMIPlugin |
[hide private]
[frames] | no frames]

# Source Code for Module Products.ZenWin.WMIPlugin

     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 Products.DataCollector.plugins.CollectorPlugin import CollectorPlugin
    15
    16 -class WMIPlugin(CollectorPlugin):
    17      """
    18      A WMIPlugin defines a native Python collection routine and a parsing
    19      method to turn the returned data structure into a datamap. A valid
    20      WMIPlugin must implement the process method.
    21      """
    22      transport = "wmi"
    23      deviceProperties = CollectorPlugin.deviceProperties + (
    24          'zWmiMonitorIgnore',
    25          'zWinUser',
    26          'zWinPassword',
    27          'zWinEventlogMinSeverity',
    28          'zWinEventlogClause',
    29      )
    30
    31 -    def condition(self, device, log):
    32          return not getattr(device, 'zWmiMonitorIgnore', True)
    33
    34 -    def copyDataToProxy(self, device, proxy):
    35          for prop in self.deviceProperties:
    36              if hasattr(device, prop):
    37                  setattr(proxy, prop, getattr(device, prop))
    38          # Do any other prep of plugin here
    39          setattr(proxy, 'lastChange', getattr(device, '_lastChange', ''))
    40
    41 -    def queries(self):
    42          raise NotImplementedError
    43
    44 -    def preprocess(self, results, log):
    45          if isinstance(results, Exception):
    46              log.error(results)
    47              return None
    48          return results
    49