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

Class ZenPack

source code

                                                        object --+        
                                                                 |        
                                         ZenModelBase.ZenModelBase --+    
                                                                     |    
                               ExtensionClass.Base --+               |    
                                                     |               |    
                         OFS.CopySupport.CopyContainer --+           |    
                                                         |           |    
              ZenRelations.RelCopySupport.RelCopyContainer --+       |    
                                                             |       |    
                               ExtensionClass.Base --+       |       |    
                                                     |       |       |    
                         OFS.CopySupport.CopyContainer --+   |       |    
                                                         |   |       |    
                               ExtensionClass.Base --+   |   |       |    
                                                     |   |   |       |    
                             App.Management.Navigation --+   |       |    
                                                         |   |       |    
                               ExtensionClass.Base --+   |   |       |    
                                                     |   |   |       |    
                                   App.Management.Tabs --+   |       |    
                                                         |   |       |    
                                  Acquisition.Implicit --+   |       |    
                                                         |   |       |    
                                    Globals.Persistent --+   |       |    
                                                         |   |       |    
                           ExtensionClass.Base --+       |   |       |    
                                                 |       |   |       |    
            webdav.EtagSupport.EtagSupport --+   |       |   |       |    
                                             |   |       |   |       |    
                  webdav.Lockable.LockableItem --+       |   |       |    
                                                 |       |   |       |    
                          webdav.Resource.Resource --+   |   |       |    
                                                     |   |   |       |    
                          webdav.Collection.Collection --+   |       |    
                                                         |   |       |    
                           OFS.Traversable.Traversable --+   |       |    
                                                         |   |       |    
                           OFS.ObjectManager.ObjectManager --+       |    
                                                             |       |    
                               ExtensionClass.Base --+       |       |    
                                                     |       |       |    
                           ExtensionClass.Base --+   |       |       |    
                                                 |   |       |       |    
                        OFS.CopySupport.CopySource --+       |       |    
                                                     |       |       |    
                           ExtensionClass.Base --+   |       |       |    
                                                 |   |       |       |    
                               App.Management.Tabs --+       |       |    
                                                     |       |       |    
                       OFS.Traversable.Traversable --+       |       |    
                                                     |       |       |    
                           ExtensionClass.Base --+   |       |       |    
                                                 |   |       |       |    
                         AccessControl.Owned.Owned --+       |       |    
                                                     |       |       |    
                              ZenRelations.ZItem.ZItem --+   |       |    
                                                         |   |       |    
                                  Acquisition.Implicit --+   |       |    
                                                         |   |       |    
                               ExtensionClass.Base --+   |   |       |    
                                                     |   |   |       |    
       AccessControl.PermissionMapping.RoleManager --+   |   |       |    
                                                     |   |   |       |    
                        AccessControl.Role.RoleManager --+   |       |    
                                                         |   |       |    
  ZenRelations.PrimaryPathObjectManager.PrimaryPathManager --+       |    
                                                             |       |    
                                   ExtensionClass.Base --+   |       |    
                                                         |   |       |    
                                      App.Undo.UndoSupport --+       |    
                                                             |       |    
ZenRelations.PrimaryPathObjectManager.PrimaryPathObjectManager --+   |    
                                                                 |   |    
                                                    object --+   |   |    
                                                             |   |   |    
                                   ExtensionClass.Base --+   |   |   |    
                                                         |   |   |   |    
                                 OFS.ZDOM.Node --+       |   |   |   |    
                                                 |       |   |   |   |    
                                  OFS.ZDOM.Element --+   |   |   |   |    
                                                     |   |   |   |   |    
                        OFS.ZDOM.ElementWithAttributes --+   |   |   |    
                                                         |   |   |   |    
                       OFS.PropertyManager.PropertyManager --+   |   |    
                                                             |   |   |    
            ZenRelations.ZenPropertyManager.ZenPropertyManager --+   |    
                                                                 |   |    
              ZenRelations.RelationshipManager.RelationshipManager --+    
                                                                     |    
                                           ExtensionClass.Base --+   |    
                                                                 |   |    
                                            OFS.History.Historical --+    
                                                                     |    
                                                        object --+   |    
                                                                 |   |    
                                               ZenPacker.ZenPacker --+    
                                                                     |    
                                                 ZenModelRM.ZenModelRM --+
                                                                         |
                                                                        ZenPack

The root of all ZenPacks: has no implementation, but sits here to be the target of the Relation

Instance Methods [hide private]
 
__init__(self, id, title=None, buildRelations=True) source code
 
install(self, app)
Stop daemons, load any loaders, create zProperties, migrate and start daemons
source code
 
upgrade(self, app)
This is essentially an install() call except that a different method is called on the loaders.
source code
 
remove(self, app, leaveObjects=False)
This prepares the ZenPack for removal but does not actually remove the instance from ZenPackManager.packs This is sometimes called during the course of an upgrade where the loaders' unload methods need to be run.
source code
 
migrate(self, previousVersion=None)
Migrate to a new version
source code
list of objects
list(self, app)
Show the list of loaders
source code
 
createZProperties(self, app)
Create zProperties in the ZenPack's self.packZProperties
source code
 
removeZProperties(self, app)
Remove any zProperties defined in the ZenPack
source code
 
removeCatalogedObjects(self, app)
Delete all objects in the zenPackPersistence catalog that are associated with this zenpack.
source code
 
getCatalogedObjects(self)
Return a list of objects from the ZenPackPersistence catalog for this zenpack.
source code
 
zmanage_editProperties(self, REQUEST, redirect=False)
Edit a ZenPack object
source code
 
manage_deletePackable(self, packables=(), REQUEST=None)
Delete objects from this ZenPack
source code
 
manage_uploadPack(self, znetProject, description, REQUEST=None)
Create a new release of the given project.
source code
 
manage_exportPack(self, download="no", REQUEST=None)
Export the ZenPack to the /export directory
source code
 
manage_download(self, REQUEST)
Download the already exported zenpack from $ZENHOME/export
source code
 
_getClassesByPath(self, name) source code
 
getDataSourceClasses(self) source code
 
getThresholdClasses(self) source code
 
getFilenames(self)
Get the filenames of a ZenPack exclude .svn, .pyc and .xml files
source code
 
getDaemonNames(self)
Return a list of daemons in the daemon subdirectory that should be stopped/started before/after an install or an upgrade of the zenpack.
source code
 
stopDaemons(self)
Stop all the daemons provided by this pack.
source code
 
startDaemons(self)
Start all the daemons provided by this pack.
source code
 
restartDaemons(self)
Restart all the daemons provided by this pack.
source code
 
path(self, *parts)
Return the path to the ZenPack module.
source code
 
isDevelopment(self)
Return True if 1) the pack is an old-style ZenPack (not a Python egg) or 2) the pack is a Python egg and is a source install (includes a setup.py file)
source code
 
isEggPack(self)
Return True if this is a new-style (egg) zenpack, false otherwise
source code
 
moduleName(self)
Return the importable dotted module name for this zenpack.
source code
 
writeSetupValues(self)
Write appropriate values to the setup.py file
source code
 
buildEggInfo(self)
Rebuild the egg info to update dependencies, etc
source code
 
getDistribution(self)
Return the distribution that provides this zenpack
source code
 
getEntryPoint(self)
Return a tuple of (packName, packEntry) that comes from the distribution entry map for zenoss.zenopacks.
source code
 
getModule(self)
Get the loaded module from the given entry point.
source code
 
eggPath(self, *parts)
Return the path to the egg supplying this zenpack
source code
 
eggName(self) source code
 
shouldDeleteFilesOnRemoval(self)
Return True if the egg itself should be deleted when this ZenPack is removed from Zenoss.
source code
 
getPackageName(self)
Return the name of submodule of zenpacks that contains this zenpack.
source code
 
getEligibleDependencies(self)
Return a list of installed zenpacks that could be listed as dependencies for this zenpack
source code
 
isInZenPacksDir(self)
Return True if the egg is located in the ZenPacks directory, False otherwise.
source code
 
isBroken(self)
Make sure that the ZenPack can be instantiated and that it is physically present on the filesystem.
source code

Inherited from ZenModelRM.ZenModelRM: changePythonClass, creator, editableDeviceList, findChild, getCreatedTimeString, getDmdKey, getModificationTimeString, getSubObjects, getTreeItems, getZenRootNode, index_object, primarySortKey, reindex_all, rename, unindex_object, viewName, zmanage_addProperty, zmanage_delObjects, zmanage_delProperties, 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, getIconPath, getIdLink, getNowString, getObjByPath, getPrimaryDmdId, getUnusedId, getZopeObj, helpLink, isLocalName, manage_deleteObjects, prepId, saveCustProperties, todayDate, urlLink, view, visibleCustPropertyMap, yesterdayDate, zenScreenUrl, zenpathjoin, zenpathsplit, zentinelTabs

Inherited from ZenRelations.RelationshipManager.RelationshipManager: addRelation, buildRelations, cb_isMoveable, checkRelations, exportXml, exportXmlProperties, exportXmlRelationships, getRelationshipManagerId, getRelationshipNames, getRelationships, manage_addRelation, manage_removeRelation, manage_workspace, moveMeBetweenRels, moveObject, removeRelation

Inherited from ZenRelations.RelCopySupport.RelCopyContainer: manage_linkObjects, manage_renameObject, manage_unlinkObjects

Inherited from OFS.ObjectManager.ObjectManager: __class_init__, __getitem__, filtered_meta_types, getSiteManager, hasObject, list_imports, manage_FTPlist, manage_FTPstat, manage_afterAdd, manage_afterClone, manage_beforeDelete, manage_delObjects, manage_exportObject, manage_hasId, manage_importObject, objectIds, objectIds_d, objectItems, objectItems_d, objectMap, objectMap_d, objectValues, objectValues_d, setSiteManager, superValues, tpValues

Inherited from OFS.ObjectManager.ObjectManager (private): _checkId, _delOb, _getOb, _importObjectFromFile, _setOb, _subobject_permissions

Inherited from OFS.CopySupport.CopyContainer: cb_dataItems, cb_dataValid, manage_CopyContainerAllItems, manage_CopyContainerFirstItem, manage_clone, manage_copyObjects, manage_cutObjects, manage_pasteObjects, manage_renameObjects, validClipData

Inherited from OFS.CopySupport.CopyContainer (private): _get_id

Inherited from App.Management.Navigation: manage_zmi_logout

Inherited from ZenRelations.PrimaryPathObjectManager.PrimaryPathManager: getPrimaryId, getPrimaryParent, getPrimaryPath, getPrimaryUrlPath, primaryAq

Inherited from ZenRelations.ZItem.ZItem: __len__, __repr__, getId, manage_editedDialog, raise_standardErrorMessage, this, titleOrId, title_and_id, title_or_id, tpURL

Inherited from OFS.CopySupport.CopySource: cb_isCopyable, cb_userHasCopyOrMovePermission

Inherited from OFS.CopySupport.CopySource (private): _canCopy, _postCopy, _setId

Inherited from App.Management.Tabs: class_manage_path, filtered_manage_options, tabs_path_default, tabs_path_info

Inherited from webdav.Collection.Collection: DELETE, HEAD, PUT, dav__init, listDAVObjects

Inherited from webdav.Resource.Resource: COPY, LOCK, MKCOL, MOVE, OPTIONS, PROPFIND, PROPPATCH, TRACE, UNLOCK, dav__simpleifhandler, dav__validate, manage_DAVget

Inherited from webdav.Lockable.LockableItem: wl_clearLocks, wl_delLock, wl_getLock, wl_hasLock, wl_isLocked, wl_lockItems, wl_lockTokens, wl_lockValues, wl_lockmapping, wl_setLock

Inherited from webdav.EtagSupport.EtagSupport: http__etag, http__parseMatchList, http__processMatchHeaders, http__refreshEtag

Inherited from OFS.Traversable.Traversable: absolute_url, absolute_url_path, getPhysicalPath, restrictedTraverse, unrestrictedTraverse, virtual_url_path

Inherited from AccessControl.Owned.Owned: changeOwnership, getOwner, getOwnerTuple, getWrappedOwner, manage_changeOwnershipType, manage_fixupOwnershipAfterAdd, manage_takeOwnership, owner_info, userCanTakeOwnership

Inherited from AccessControl.Owned.Owned (private): _deleteOwnershipAfterAdd

Inherited from AccessControl.Role.RoleManager: ac_inherited_permissions, access_debug_info, acquiredRolesAreUsedBy, get_local_roles, get_local_roles_for_userid, get_valid_userids, has_local_roles, manage_access, manage_acquiredPermissions, manage_addLocalRoles, manage_changePermissions, manage_defined_roles, manage_delLocalRoles, manage_editRoles, manage_getUserRolesAndPermissions, manage_permission, manage_role, manage_setLocalRoles, permission_settings, permissionsOfRole, possible_permissions, rolesOfPermission, userdefined_roles, users_with_local_role, validRoles, valid_roles, validate_roles

Inherited from AccessControl.Role.RoleManager (private): _addRole, _delRoles, _has_user_defined_role, _setRoles

Inherited from AccessControl.PermissionMapping.RoleManager: manage_getPermissionMapping, manage_setPermissionMapping

Inherited from AccessControl.PermissionMapping.RoleManager (private): _isBeingAccessedAsZClassDefinedInstanceMethod, _isBeingUsedAsAMethod

Inherited from App.Undo.UndoSupport: get_request_var_or_attr, manage_undo_transactions, undoable_transactions

Inherited from ZenRelations.ZenPropertyManager.ZenPropertyManager: deleteZenProperty, getOverriddenObjects, getProperty, getPropertyType, getZ, hasProperty, isLocal, manage_editProperties, saveZenProperties, setZenProperty, zenPropIsPassword, zenPropertyIds, zenPropertyItems, zenPropertyMap, zenPropertyOptions, zenPropertyPath, zenPropertyString

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 object: __delattr__, __getattribute__, __new__, __reduce__, __reduce_ex__, __setattr__, __str__

Inherited from OFS.PropertyManager.PropertyManager: manage_addProperty, manage_changeProperties, manage_changePropertyTypes, manage_delProperties, propdict, propertyDescription, propertyIds, propertyItems, propertyLabel, propertyMap, propertyValues, valid_property_id

Inherited from OFS.PropertyManager.PropertyManager (private): _delPropValue, _delProperty, _propertyMap, _wrapperCheck

Inherited from OFS.ZDOM.ElementWithAttributes: getAttribute, getAttributeNode, getAttributes

Inherited from OFS.ZDOM.Element: getChildNodes, getElementsByTagName, getFirstChild, getLastChild, getNextSibling, getNodeName, getNodeType, getParentNode, getPreviousSibling, getTagName

Inherited from OFS.ZDOM.Node: getNodeValue, getOwnerDocument, hasChildNodes

Class Methods [hide private]

Inherited from ZenRelations.RelationshipManager.RelationshipManager: lookupSchema

Class Variables [hide private]
  objectPaths = None
  version = '0.1'
  author = ''
  organization = ''
  url = ''
  license = ''
  compatZenossVers = ''
  prevZenPackName = ''
  prevZenPackVersion = None
  eggPack = False
  requires = ()
  loaders = ZPLObject(), ZPLReport(), ZPLDaemons(), ZPLBin(), ZP...
  _properties = ZenModelRM._properties+({'id': 'objectPaths', 't...
  _relations = 'root', ToOne(ToManyCont, 'Products.ZenModel.Data...
  factory_type_information = {'immediate_view': 'viewPackDetail'...
  packZProperties = []
  security = ClassSecurityInfo()

Inherited from ZenModelRM.ZenModelRM: default_catalog, isInTree, meta_type

Inherited from ZenModelBase.ZenModelBase: index_html, sub_meta_types

Inherited from ZenRelations.RelationshipManager.RelationshipManager: manage_main, manage_options

Inherited from OFS.ObjectManager.ObjectManager: has_order_support, isAnObjectManager, isPrincipiaFolderish, manage_addProduct, manage_importExportForm, manage_index_main, meta_types

Inherited from OFS.ObjectManager.ObjectManager (private): _components, _objects

Inherited from OFS.CopySupport.CopyContainer: manage_renameForm

Inherited from App.Management.Navigation: manage, manage_copyright, manage_form_title, manage_menu, manage_page_footer, manage_page_header, manage_top_frame, manage_zmi_prefs, zope_quick_start

Inherited from ZenRelations.ZItem.ZItem: REQUEST, __allow_access_to_unprotected_subobjects__, __name__, __propsets__, icon, id, isTopLevelPrincipiaApplicationObject, title

Inherited from App.Management.Tabs: manage_tabs

Inherited from webdav.Collection.Collection: __dav_collection__

Inherited from webdav.Resource.Resource: __dav_resource__, __http_methods__

Inherited from webdav.EtagSupport.EtagSupport: __implements__

Inherited from OFS.Traversable.Traversable: getPhysicalRoot

Inherited from AccessControl.Owned.Owned: manage_owner

Inherited from AccessControl.Role.RoleManager: __ac_local_roles__, __ac_roles__, aclAChecked, aclEChecked, aclPChecked, manage_acquiredForm, manage_editLocalRoles, manage_listLocalRoles, manage_permissionForm, manage_reportUserPermissions, manage_roleForm, permissionMappingPossibleValues, selectedRoles, smallRolesWidget

Inherited from AccessControl.Role.RoleManager (private): _method_manage_access, _normal_manage_access

Inherited from App.Undo.UndoSupport: manage_UndoForm

Inherited from ZenRelations.ZenPropertyManager.ZenPropertyManager: __pychecker__, manage_propertiesForm

Inherited from OFS.History.Historical: HistoricalRevisions, manage_change_history_page

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

Inherited from OFS.PropertyManager.PropertyManager: manage_propertyTypeForm, propertysheets

Inherited from OFS.PropertyManager.PropertyManager (private): _reserved_names

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, id, title=None, buildRelations=True)
(Constructor)

source code 
Overrides: ZenModelRM.ZenModelRM.__init__

install(self, app)

source code 
Stop daemons, load any loaders, create zProperties, migrate and start daemons
Parameters:
  • app (ZenPack object) - ZenPack

upgrade(self, app)

source code 
This is essentially an install() call except that a different method is called on the loaders. NB: Newer ZenPacks (egg style) do not use this upgrade method. Instead the proper method is to remove(leaveObjects=True) and install again. See ZenPackCmd.InstallDistAsZenPack().
Parameters:
  • app (ZenPack object) - ZenPack

remove(self, app, leaveObjects=False)

source code 
This prepares the ZenPack for removal but does not actually remove the instance from ZenPackManager.packs This is sometimes called during the course of an upgrade where the loaders' unload methods need to be run.
Parameters:
  • app (ZenPack object) - ZenPack
  • leaveObjects (boolean) - remove zProperties and things?

migrate(self, previousVersion=None)

source code 
Migrate to a new version
Parameters:
  • previousVersion (string) - previous version number

list(self, app)

source code 
Show the list of loaders
Parameters:
  • app (ZenPack object) - ZenPack
Returns: list of objects
list of loaders

createZProperties(self, app)

source code 
Create zProperties in the ZenPack's self.packZProperties
Parameters:
  • app (ZenPack object) - ZenPack

removeZProperties(self, app)

source code 
Remove any zProperties defined in the ZenPack
Parameters:
  • app (ZenPack object) - ZenPack

removeCatalogedObjects(self, app)

source code 
Delete all objects in the zenPackPersistence catalog that are associated with this zenpack.
Parameters:
  • app (ZenPack object) - ZenPack

zmanage_editProperties(self, REQUEST, redirect=False)

source code 
Edit a ZenPack object
Overrides: ZenModelRM.ZenModelRM.zmanage_editProperties

manage_exportPack(self, download="no", REQUEST=None)

source code 
Export the ZenPack to the /export directory
Parameters:
  • download (string) - download to client's desktop? ('yes' vs anything else)
  • REQUEST (Zope REQUEST object) - Zope REQUEST object
To Do:
  • make this more modular
  • add better XML headers

manage_download(self, REQUEST)

source code 
Download the already exported zenpack from $ZENHOME/export
Parameters:
  • REQUEST (Zope REQUEST object) - Zope REQUEST object

stopDaemons(self)

source code 
Stop all the daemons provided by this pack. Called before an upgrade or a removal of the pack.

startDaemons(self)

source code 
Start all the daemons provided by this pack. Called after an upgrade or an install of the pack.

restartDaemons(self)

source code 
Restart all the daemons provided by this pack. Called after an upgrade or an install of the pack.

path(self, *parts)

source code 
Return the path to the ZenPack module. It would be convenient to store the module name/path in the zenpack object, however this would make things more complicated when the name of the package under ZenPacks changed on us (do to a user edit.)

isDevelopment(self)

source code 

Return True if 1) the pack is an old-style ZenPack (not a Python egg) or 2) the pack is a Python egg and is a source install (includes a setup.py file)

Returns False otherwise.

getModule(self)

source code 
Get the loaded module from the given entry point. if not packEntry then retrieve it.

shouldDeleteFilesOnRemoval(self)

source code 
Return True if the egg itself should be deleted when this ZenPack is removed from Zenoss. If the ZenPack code resides in $ZENHOME/ZenPacks then it is deleted, otherwise it is not.

Class Variable Details [hide private]

loaders

Value:
ZPLObject(), ZPLReport(), ZPLDaemons(), ZPLBin(), ZPLLibExec(), ZPLSki\
ns(), ZPLDataSources(), ZPLLibraries(), ZPLAbout()

_properties

Value:
ZenModelRM._properties+({'id': 'objectPaths', 'type': 'lines', 'mode':\
 'w'}, {'id': 'version', 'type': 'string', 'mode': 'w', 'description':\
 'ZenPack version'}, {'id': 'author', 'type': 'string', 'mode': 'w', '\
description': 'ZenPack author'}, {'id': 'organization', 'type': 'strin\
g', 'mode': 'w', 'description': 'Sponsoring organization for the ZenPa\
ck'}, {'id': 'url', 'type': 'string', 'mode': 'w', 'description': 'Hom\
epage for the ZenPack'}, {'id': 'license', 'type': 'string', 'mode': '\
w', 'description': 'Name of the license under which this ZenPack is av\
...

_relations

Value:
'root', ToOne(ToManyCont, 'Products.ZenModel.DataRoot', 'packs'), ('ma\
nager', ToOne(ToManyCont, 'Products.ZenModel.ZenPackManager', 'packs')\
), ("packables", ToMany(ToOne, "Products.ZenModel.ZenPackable", "pack"\
)),

factory_type_information

Value:
{'immediate_view': 'viewPackDetail', 'factory': 'manage_addZenPack', '\
actions':({'id': 'viewPackDetail', 'name': 'Detail', 'action': 'viewPa\
ckDetail', 'permissions':("Manage DMD",)},)},