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 --+   |       |    
                                                         |   |       |    
                                Persistence.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 --+       |       |    
                                                     |       |       |    
                         AccessControl.Owned.Owned --+       |       |    
                                                     |       |       |    
                              ZenRelations.ZItem.ZItem --+   |       |    
                                                         |   |       |    
                                  Acquisition.Implicit --+   |       |    
                                                         |   |       |    
                        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
 
backup(self, backupDir, logger)
Method called when zenbackup is run.
source code
 
restore(self, backupDir, logger)
Method called when zenrestore is 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
List of dicts
register_portlets(self)
Registers ExtJS portlets from a ZenPack.
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, setTitle, 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, getBreadCrumbName, getBreadCrumbUrlPath, getDmd, getDmdObj, getDmdRoot, getHierarchyObj, getIconPath, getIdLink, getNowString, getObjByPath, getPrimaryDmdId, getUnusedId, getZopeObj, helpLink, isLocalName, manage_deleteObjects, prepId, saveCustProperties, todayDate, upToOrganizerBreadCrumbs, urlLink, view, visibleCustPropertyMap, yesterdayDate, zenScreenUrl, zenpathjoin, zenpathsplit, zentinelTabs

Inherited from ZenModelBase.ZenModelBase (private): _selectedTabName

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_unlinkObjects

Inherited from OFS.ObjectManager.ObjectManager: __class_init__, __contains__, __delitem__, __getitem__, __iter__, __len__, __nonzero__, __setitem__, filtered_meta_types, get, getSiteManager, hasObject, items, keys, 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, values

Inherited from OFS.ObjectManager.ObjectManager (private): _delOb, _getImportPaths, _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_renameObject, 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: __repr__, getId, manage_editedDialog, 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: 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 App.Undo.UndoSupport: get_request_var_or_attr, manage_undo_transactions, undoable_transactions

Inherited from ZenRelations.ZenPropertyManager.ZenPropertyManager: deleteZenProperty, exportZProperties, 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 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 ZenModelBase.ZenModelBase (private): _zendoc

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__, getId__roles__, icon, id, isTopLevelPrincipiaApplicationObject, title

Inherited from App.Management.Tabs: manage_tabs, manage_workspace__roles__

Inherited from webdav.Collection.Collection: __dav_collection__

Inherited from webdav.Resource.Resource: __dav_resource__, __http_methods__

Inherited from OFS.Traversable.Traversable: getPhysicalRoot

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

Method Details [hide private]

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

source code 
Overrides: ZenRelations.RelationshipManager.RelationshipManager.__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?

backup(self, backupDir, logger)

source code 

Method called when zenbackup is run. Override in ZenPack to add any ZenPack-specific backup operations.

Parameters:
  • backupDir (string) - Temporary directory that gets zipped to form backup
  • logger (Log object) - Backup log handler

restore(self, backupDir, logger)

source code 

Method called when zenrestore is run. Override in ZenPack to add any ZenPack-specific restore operations.

Parameters:
  • backupDir (string) - Temporary directory that contains the unzipped backup
  • logger (Log object) - Restore log handler

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

register_portlets(self)

source code 

Registers ExtJS portlets from a ZenPack. Override in ZenPack. ID and title are required, height and permissions are optional. See ZenWidgets.PortletManager.register_extjsPortlet.

Returns: List of dicts
List of dictionary objects describing a portlet

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: ZenModelBase.ZenModelBase.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(), ZPTriggerAction(),\
 ZPZep()

_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",)},)},