Package DataCollector :: Module zenmodeler :: Class ZenModeler
[hide private]
[frames] | no frames]

Class ZenModeler

source code

Products.ZenHub.PBDaemon.PBDaemon --+
                                    |
                                   ZenModeler

Daemon class to attach to zenhub and pass along device configuration information.

Instance Methods [hide private]
 
__init__(self, single=False)
Initalizer
source code
 
reportError(self, error)
Log errors that have occurred
source code
 
connected(self)
Called after connected to the zenhub service
source code
 
configure(self)
Get our configuration from zenhub
source code
 
config(self)
Get the ModelerService
source code
 
selectPlugins(self, device, transport)
Build a list of active plugins for a device, based on:
source code
 
collectDevice(self, device)
Collect data from a single device.
source code
 
wmiCollect(self, device, ip, timeout)
Start the Windows Management Instrumentation (WMI) collector
source code
 
pythonCollect(self, device, ip, timeout)
Start local Python collection client.
source code
 
cmdCollect(self, device, ip, timeout)
Start shell command collection client.
source code
 
snmpCollect(self, device, ip, timeout)
Start SNMP collection client.
source code
 
addClient(self, device, timeout, clientType, name)
If device is not None, schedule the device to be collected.
source code
 
portscanCollect(self, device, ip, timeout)
Start portscan collection client.
source code
 
checkCollection(self, device)
See how old the data is that we've collected
source code
 
clientFinished(self, collectorClient)
Callback that processes the return values from a device.
source code
 
fillError(self, reason)
Twisted errback routine to log an error when unable to collect some data
source code
integer
cycleTime(self)
Return our cycle time (in minutes)
source code
 
heartbeat(self, ignored=None)
Twisted keep-alive mechanism to ensure that we're still connected to zenhub
source code
 
checkStop(self, unused=None)
Check to see if there's anything to do.
source code
 
fillCollectionSlots(self, driver)
An iterator which either returns a device to collect or calls checkStop()
source code
 
buildOptions(self)
Build our list of command-line options
source code
 
processOptions(self)
Check what the user gave us vs what we'll accept for command-line options
source code
 
_timeoutClients(self)
The guts of the timeoutClients method (minus the twisted reactor stuff).
source code
 
timeoutClients(self, unused=None)
Check to see which clients have timed out and which ones haven't.
source code
 
reactorLoop(self)
Twisted main loop
source code
 
getDeviceList(self)
Get the list of devices for which we are collecting:...
source code
Twisted deferred object
mainLoop(self, driver)
Main collection loop, a Python iterable
source code
Twisted deferred object
main(self, unused=None)
Wrapper around the mainLoop
source code
 
remote_deleteDevice(self, device)
Stub function
source code
Class Variables [hide private]
  name = 'zenmodeler'
  initialServices = PBDaemon.initialServices+ ['ModelerService']
  generateEvents = True
  configCycleInterval = 360
  classCollectorPlugins = ()
Method Details [hide private]

__init__(self, single=False)
(Constructor)

source code 
Initalizer
Parameters:
  • single (boolean) - collect from a single device?

reportError(self, error)

source code 
Log errors that have occurred
Parameters:
  • error (string) - error message

selectPlugins(self, device, transport)

source code 

Build a list of active plugins for a device, based on:

* the --collect command-line option which is a regex * the --ignore command-line option which is a regex * transport which is a string describing the type of plugin
Parameters:
  • device (string) - device to collect against
  • transport (string) - python, ssh, snmp, telnet, cmd
Returns:
results of the plugin

To Do: determine if an event for the collector AND the device should be sent

collectDevice(self, device)

source code 
Collect data from a single device.
Parameters:
  • device (string) - device to collect against

wmiCollect(self, device, ip, timeout)

source code 
Start the Windows Management Instrumentation (WMI) collector
Parameters:
  • device (string) - device to collect against
  • ip (string) - IP address of device to collect against
  • timeout (integer) - timeout before failing the connection

pythonCollect(self, device, ip, timeout)

source code 
Start local Python collection client.
Parameters:
  • device (string) - device to collect against
  • ip (string) - IP address of device to collect against
  • timeout (integer) - timeout before failing the connection

cmdCollect(self, device, ip, timeout)

source code 
Start shell command collection client.
Parameters:
  • device (string) - device to collect against
  • ip (string) - IP address of device to collect against
  • timeout (integer) - timeout before failing the connection

snmpCollect(self, device, ip, timeout)

source code 
Start SNMP collection client.
Parameters:
  • device (string) - device to collect against
  • ip (string) - IP address of device to collect against
  • timeout (integer) - timeout before failing the connection

addClient(self, device, timeout, clientType, name)

source code 
If device is not None, schedule the device to be collected. Otherwise log an error.
Parameters:
  • device (string) - device to collect against
  • timeout (integer) - timeout before failing the connection
  • clientType (string) - description of the plugin type
  • name (string) - plugin name

portscanCollect(self, device, ip, timeout)

source code 
Start portscan collection client.
Parameters:
  • device (string) - device to collect against
  • ip (string) - IP address of device to collect against
  • timeout (integer) - timeout before failing the connection

checkCollection(self, device)

source code 
See how old the data is that we've collected
Parameters:
  • device (string) - device to collect against
Returns:
is the SNMP status number > 0 and is the last collection time + collage older than now?

clientFinished(self, collectorClient)

source code 
Callback that processes the return values from a device. Python iterable.
Parameters:
  • collectorClient (collector class) - collector instance
Returns:
Twisted deferred object

fillError(self, reason)

source code 
Twisted errback routine to log an error when unable to collect some data
Parameters:
  • reason (string) - error message

cycleTime(self)

source code 
Return our cycle time (in minutes)
Returns: integer
cycle time

heartbeat(self, ignored=None)

source code 
Twisted keep-alive mechanism to ensure that we're still connected to zenhub
Parameters:
  • ignored (object) - object (unused)

checkStop(self, unused=None)

source code 
Check to see if there's anything to do. If there isn't, report our statistics and exit.
Parameters:
  • unused (string) - unused (unused)

fillCollectionSlots(self, driver)

source code 
An iterator which either returns a device to collect or calls checkStop()
Parameters:
  • driver (driver object) - driver object

_timeoutClients(self)

source code 
The guts of the timeoutClients method (minus the twisted reactor stuff). Breaking this part out as a separate method facilitates unit testing.

timeoutClients(self, unused=None)

source code 
Check to see which clients have timed out and which ones haven't. Stop processing anything that's timed out.
Parameters:
  • unused (string) - unused (unused)

getDeviceList(self)

source code 

Get the list of devices for which we are collecting:
* if -d devicename was used, use the devicename
* if a class path flag was supplied, gather the devices
  along that organizer
* otherwise get all of the devices associated with our collector

@return: list of devices
@rtype: list

mainLoop(self, driver)

source code 
Main collection loop, a Python iterable
Parameters:
  • driver (driver object) - driver object
Returns: Twisted deferred object
Twisted deferred object

main(self, unused=None)

source code 
Wrapper around the mainLoop
Parameters:
  • unused (string) - unused (unused)
Returns: Twisted deferred object
Twisted deferred object

remote_deleteDevice(self, device)

source code 
Stub function
Parameters:
  • device (string) - device name (unused)

To Do: implement