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

Class ZenPack

source code

Products.ZenModel.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
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()
Method Details [hide private]

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

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