Package ZenModel :: Module DeviceClass :: Class DeviceClass
[hide private]
[frames] | no frames]

Class DeviceClass

source code

                                                   object --+                
                                                            |                
                                    ZenModelBase.ZenModelBase --+            
                                                                |            
Products.ZenRelations.RelationshipManager.RelationshipManager --+            
                                                                |            
                                      ExtensionClass.Base --+   |            
                                                            |   |            
                                       OFS.History.Historical --+            
                                                                |            
                                                   object --+   |            
                                                            |   |            
                                          ZenPacker.ZenPacker --+            
                                                                |            
                                            ZenModelRM.ZenModelRM --+        
                                                                    |        
                                                       object --+   |        
                                                                |   |        
                                              EventView.EventView --+        
                                                                    |        
                                                  Organizer.Organizer --+    
                                                                        |    
                                  DeviceManagerBase.DeviceManagerBase --+    
                                                                        |    
                                              Commandable.Commandable --+    
                                                                        |    
                                              ZenMenuable.ZenMenuable --+    
                                                                        |    
                          MaintenanceWindowable.MaintenanceWindowable --+    
                                                                        |    
                        AdministrativeRoleable.AdministrativeRoleable --+    
                                                                        |    
                                          DeviceOrganizer.DeviceOrganizer --+
                                                                            |
                                                               object --+   |
                                                                        |   |
                                                  ZenPackable.ZenPackable --+
                                                                            |
                                                               object --+   |
                                                                        |   |
                                      TemplateContainer.TemplateContainer --+
                                                                            |
                                                                           DeviceClass

DeviceClass is a device organizer that manages the primary classification of device objects within the Zenoss system. It manages properties that are inherited through acquisition that modify the behavior of many different sub systems within Zenoss. It also handles the creation of new devices in the system.

Instance Methods [hide private]
list of strings
getPeerDeviceClassNames(self, pyclass=None)
Return a list of all device paths that have the Python class pyclass
source code
list of strings
deviceMoveTargets(self, pyclass=None)
Return a list of all device paths that have the Python class pyclass
source code
list of strings
childMoveTargets(self, pyclass=None)
Return a list of all device paths that have the Python class pyclass
source code
device object
createInstance(self, id)
Create an instance based on its location in the device tree walk up the primary aq path looking for a python instance class that matches the name of the closest node in the device tree.
source code
device class
getPythonDeviceClass(self)
Return the Python class object to be used for device instances in this device class.
source code
 
moveDevices(self, moveTarget, deviceNames=None, REQUEST=None)
Override default moveDevices because this is a contained relation.
source code
 
removeDevices(self, deviceNames=None, deleteStatus=False, deleteHistory=False, deletePerf=False, REQUEST=None)
See IManageDevice overrides DeviceManagerBase.removeDevices
source code
 
getEventDeviceInfo()
Returns: return the info for NcoEventPopulator
source code
 
getDeviceWinInfo(self, lastPoll=0, eventlog=False)
Return list of (devname,user,passwd,url) for each device.
source code
 
getWinServices(self)
Return a list of (devname, user, passwd, {'EvtSys':0,'Exchange':0})
source code
 
searchDeviceSummary(self, query)
Search device summary index and return device objects
source code
 
searchInterfaces(self, query)
Search interfaces index and return interface objects
source code
 
_convertResultsToObj(self, results) source code
 
_findDevice(self, devicename) source code
 
findDevicePath(self, devicename)
Look up a device and return its path
source code
 
findDevice(self, devicename)
Look up device in catalog and return it
source code
 
findDeviceExact(self, devicename)
Look up device in catalog and return it.
source code
 
findDevicePingStatus(self, devicename)
look up device in catalog and return its pingStatus
source code
 
getSubComponents(self, meta_type="", monitored=True)
Return generator of components, by meta_type if specified
source code
 
getMonitoredComponents(self)
Return monitored components for devices within this DeviceDeviceClass
source code
 
getRRDTemplates(self, context=None)
Return the actual RRDTemplate instances.
source code
 
getAvailableTemplates(self)
Returns all available templates
source code
 
bindTemplates(self, ids=(), REQUEST=None)
This will bind available templates to the zDeviceTemplates
source code
 
removeZDeviceTemplates(self, REQUEST=None)
Deletes the local zProperty, zDeviceTemplates
source code
 
getAllRRDTemplates(self, rrdts=None)
Return all RRDTemplates at this level and below in the object tree.
source code
 
getAllRRDTemplatesPainfully(self, rrdts=None)
RRDTemplate.YieldAllRRDTemplates() is probably what you want.
source code
 
manage_addRRDTemplate(self, id, REQUEST=None)
Add an RRDTemplate to this DeviceClass.
source code
 
manage_copyRRDTemplates(self, ids=(), REQUEST=None)
Put a reference to the objects named in ids in the clip board
source code
 
manage_pasteRRDTemplates(self, moveTarget=None, cb_copy_data=None, REQUEST=None)
Paste RRDTemplates that have been copied before.
source code
 
manage_copyAndPasteRRDTemplates(self, ids=(), copyTarget=None, REQUEST=None)
Copy the selected templates into the specified device class.
source code
 
manage_deleteRRDTemplates(self, ids=(), paths=(), REQUEST=None)
Delete RRDTemplates from this DeviceClass (skips ones in other Classes)
source code
 
createCatalog(self)
Make the catalog for device searching
source code
 
reIndex(self)
Go through all devices in this tree and reindex them.
source code
 
buildDeviceTreeProperties(self)
Create a new device tree with a default configuration
source code
list
zenPropertyOptions(self, propname)
Provide a set of default options for a zProperty
source code
 
pushConfig(self, REQUEST=None)
This will result in a push of all the devices to live collectors
source code
 
setLastChange(self, value=None)
Set the changed datetime for this device.
source code
 
register_devtype(self, description, protocol)
Define this class in terms of a description of the devices it should contain and the protocol by which they would normally be monitored.
source code
 
unregister_devtype(self, description, protocol) source code

Inherited from DeviceOrganizer.DeviceOrganizer: collectDevice, countDevices, deviceClassMoveTargets, getAllCounts, getIconPath, getLinks, getPrettyLink, getSubDevices, getSubDevicesGen, getSubDevicesGenTest, getSubDevicesGen_recursive, getSubDevices_recursive, getUrlForUserCommands, getUserCommandTargets, index_object, lockDevicesFromDeletion, lockDevicesFromUpdates, manage_addAdministrativeRole, manage_deleteAdministrativeRole, manage_editAdministrativeRoles, manage_snmpCommunity, moveDevicesToClass, pingStatus, setGroups, setLocation, setManageIp, setPerformanceMonitor, setPriority, setProdState, setSystems, snmpStatus, statusColor, unindex_object, unlockDevices

Inherited from DeviceOrganizer.DeviceOrganizer (private): _buildDeviceList, _buildReturnMessage, _handleOrganizerCall, _status

Inherited from Organizer.Organizer: __init__, childIds, children, countChildren, createOrganizer, exportXmlHook, getChildMoveTarget, getDmdKey, getOrganizer, getOrganizerName, getOrganizerNames, getSubInstanceIds, getSubInstances, getSubInstancesGen, getSubOrganizers, manage_addOrganizer, manage_deleteOrganizer, manage_deleteOrganizers, moveOrganizer, urlLink

Inherited from Organizer.Organizer (private): _getCatalog

Inherited from ZenModelRM.ZenModelRM: changePythonClass, creator, editableDeviceList, findChild, getCreatedTimeString, getModificationTimeString, getSubObjects, getTreeItems, getZenRootNode, primarySortKey, reindex_all, rename, viewName, zmanage_addProperty, zmanage_delObjects, zmanage_delProperties, zmanage_editProperties, zmanage_exportObject, zmanage_importObject, zmanage_importObjects

Inherited from ZenModelBase.ZenModelBase: __call__, __hash__, all_meta_types, aqBaseHasAttr, breadCrumbs, callZenScreen, checkRemotePerm, checkValidId, createHierarchyObj, custPropertyIds, custPropertyMap, getBreadCrumbUrlPath, getDmd, getDmdObj, getDmdRoot, getHierarchyObj, getIdLink, getNowString, getObjByPath, getPrimaryDmdId, getUnusedId, getZ, getZopeObj, helpLink, isLocalName, manage_deleteObjects, prepId, saveCustProperties, todayDate, view, visibleCustPropertyMap, yesterdayDate, zenScreenUrl, zenpathjoin, zenpathsplit, zentinelTabs

Inherited from OFS.History.Historical: manage_afterHistoryCopy, manage_beforeHistoryCopy, manage_change_history, manage_historicalComparison, manage_historyCompare, manage_historyCopy

Inherited from ZenPacker.ZenPacker: addToZenPack, eligiblePacks, findObject

Inherited from EventView.EventView: convertEventField, getEventDetail, getEventDetailFromStatusOrHistory, getEventHistory, getEventManager, getEventOwnerList, getEventSummary, getStatus, getStatusCssClass, getStatusImgSrc, getStatusString, manage_ackBatchEvents, manage_ackEvents, manage_addLogMessage, manage_createEventMap, manage_deleteBatchEvents, manage_deleteEvents, manage_deleteHeartbeat, manage_setEventStates, manage_undeleteBatchEvents, manage_undeleteEvents

Inherited from object: __delattr__, __getattribute__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Inherited from DeviceManagerBase.DeviceManagerBase: getDevices

Inherited from Commandable.Commandable: compile, doCommandForTarget, getAqChainForUserCommands, getUserCommand, getUserCommandEnvironment, getUserCommandIds, getUserCommands, manage_addUserCommand, manage_deleteUserCommand, manage_doUserCommand, manage_editUserCommand, redirectToUserCommands, write

Inherited from ZenMenuable.ZenMenuable: buildMenus, getMenus, manage_addItemsToZenMenu, manage_addZenMenu, manage_addZenMenuItem, manage_deleteZenMenu, manage_deleteZenMenuItem, manage_saveMenuItemOrdering

Inherited from MaintenanceWindowable.MaintenanceWindowable: getMaintenanceWindows, manage_addMaintenanceWindow, manage_deleteMaintenanceWindow

Inherited from AdministrativeRoleable.AdministrativeRoleable: getAdministrativeRoles, manage_listAdministrativeRoles, setAdminLocalRoles

Class Variables [hide private]
  dmdRootName = "Devices"
  manageDeviceSearch = DTMLFile('dtml/manageDeviceSearch', globa...
  manageDeviceSearchResults = DTMLFile('dtml/manageDeviceSearchR...
  event_key = "DeviceClass"
  meta_type = "DeviceClass"
  portal_type = "DeviceClass"
  default_catalog = 'deviceSearch'
  _properties = DeviceOrganizer._properties+({'id': 'devtypes', ...
  _relations = DeviceOrganizer._relations+ ZenPackable._relation...
  factory_type_information = {'id': 'DeviceClass', 'meta_type': ...
  security = ClassSecurityInfo()

Inherited from ZenModelRM.ZenModelRM: isInTree

Inherited from ZenModelBase.ZenModelBase: index_html, sub_meta_types

Inherited from OFS.History.Historical: HistoricalRevisions, __ac_permissions__, manage_change_history_page, manage_options

Inherited from OFS.History.Historical (private): _manage_historyComparePage

Inherited from Commandable.Commandable: defaultTimeout

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

getPeerDeviceClassNames(self, pyclass=None)

source code 
Return a list of all device paths that have the Python class pyclass
Parameters:
  • pyclass (Python class) - Python class (default is this class)
Returns: list of strings
list of device paths

deviceMoveTargets(self, pyclass=None)

source code 
Return a list of all device paths that have the Python class pyclass
Parameters:
  • pyclass (Python class) - Python class (default is this class)
Returns: list of strings
list of device paths
Overrides: Organizer.Organizer.deviceMoveTargets

childMoveTargets(self, pyclass=None)

source code 
Return a list of all device paths that have the Python class pyclass
Parameters:
  • pyclass (Python class) - Python class (default is this class)
Returns: list of strings
list of device paths
Overrides: Organizer.Organizer.childMoveTargets

createInstance(self, id)

source code 
Create an instance based on its location in the device tree walk up the primary aq path looking for a python instance class that matches the name of the closest node in the device tree.
Parameters:
  • id (string) - id in DMD path
Returns: device object
new device object

getPythonDeviceClass(self)

source code 
Return the Python class object to be used for device instances in this device class. This is done by walking up the aq_chain of a deviceclass to find a node that has the same name as a Python class or has an attribute named zPythonClass that matches a Python class.
Returns: device class
device class

moveDevices(self, moveTarget, deviceNames=None, REQUEST=None)

source code 
Override default moveDevices because this is a contained relation. If the Python class bound to a DeviceClass is different we convert to the new Python class adding / removing relationships as needed.
Parameters:
  • moveTarget (string) - organizer in DMD path
  • deviceNames (list of stringa) - devices to move
  • REQUEST (Zope REQUEST object) - Zope REQUEST object

removeDevices(self, deviceNames=None, deleteStatus=False, deleteHistory=False, deletePerf=False, REQUEST=None)

source code 
See IManageDevice overrides DeviceManagerBase.removeDevices
Overrides: DeviceManagerBase.DeviceManagerBase.removeDevices

getEventDeviceInfo()

source code 
Returns:
return the info for NcoEventPopulator

getDeviceWinInfo(self, lastPoll=0, eventlog=False)

source code 
Return list of (devname,user,passwd,url) for each device. user and passwd are used to connect via wmi.

findDeviceExact(self, devicename)

source code 
Look up device in catalog and return it. devicename must match device id exactly

getMonitoredComponents(self)

source code 
Return monitored components for devices within this DeviceDeviceClass
Overrides: DeviceOrganizer.DeviceOrganizer.getMonitoredComponents

getAllRRDTemplates(self, rrdts=None)

source code 

Return all RRDTemplates at this level and below in the object tree. If rrdts is provided then it must be a list of RRDTemplates which will be extended with the templates from here and returned.

The original getAllRRDTemplates() method has been renamed getAllRRDTemplatesPainfully(). It walks the object tree looking for templates which is a very slow way of going about things. The newer RRDTemplate.YieldAllRRDTemplate() method uses the searchRRDTemplates catalog to speed things up dramatically. YieldAllRRDTemplates is smart enough to revert to getAllRRDTemplatesPainfully if the catalog is not present.

The searchRRDTemplates catalog was added in 2.2

getAllRRDTemplatesPainfully(self, rrdts=None)

source code 
RRDTemplate.YieldAllRRDTemplates() is probably what you want. It takes advantage of the searchRRDTemplates catalog to get much better performance. This method iterates over objects looking for templates which is a slow, painful process.

zenPropertyOptions(self, propname)

source code 
Provide a set of default options for a zProperty
Parameters:
  • propname (string) - zProperty name
Returns: list
list of zProperty options

pushConfig(self, REQUEST=None)

source code 
This will result in a push of all the devices to live collectors
Parameters:
  • REQUEST (Zope REQUEST object) - Zope REQUEST object

setLastChange(self, value=None)

source code 
Set the changed datetime for this device.
Parameters:
  • value (number) - changed datetime. Default is now.

Class Variable Details [hide private]

manageDeviceSearch

Value:
DTMLFile('dtml/manageDeviceSearch', globals())

manageDeviceSearchResults

Value:
DTMLFile('dtml/manageDeviceSearchResults', globals())

_properties

Value:
DeviceOrganizer._properties+({'id': 'devtypes', 'type': 'lines', 'mode\
': 'w'},)

_relations

Value:
DeviceOrganizer._relations+ ZenPackable._relations+ TemplateContainer.\
_relations+(("devices", ToManyCont(ToOne, "Products.ZenModel.Device", \
"deviceClass")),)

factory_type_information

Value:
{'id': 'DeviceClass', 'meta_type': 'DeviceClass', 'description': """Ba\
se class for all devices""", 'icon': 'DeviceClass_icon.gif', 'product'\
: 'ZenModel', 'factory': 'manage_addDeviceClass', 'immediate_view': 'd\
eviceOrganizerStatus', 'actions':({'name': 'Classes', 'action': 'devic\
eOrganizerStatus', 'permissions':(permissions.view,)}, {'name': 'Event\
s', 'action': 'viewEvents', 'permissions':(permissions.view,)}, {'name\
': 'zProperties', 'action': 'zPropertyEdit', 'permissions':(permission\
s.view,)}, {'name': 'Templates', 'action': 'perfConfig', 'permissions'\
...