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

Class ZenModelBase

source code

object --+
         |
        ZenModelBase
Known Subclasses:
ZenModelRM.ZenModelRM, ManufacturerRoot.ManufacturerRoot, ZenModelItem.ZenModelItem

All ZenModel Persistent classes inherit from this class. It provides some screen management functionality, and general utility methods.

Instance Methods [hide private]
 
__call__(self)
Invokes the default view.
source code
 
view(self)
Returns the default view even if index_html is overridden.
source code
 
__hash__(self)
hash(x)
source code
string
>>> dmd.Devices.prepId('ab^*cd')
'ab__cd'
>>> dmd.Devices.prepId('ab^*cd', subchar='Z') 
'abZZcd'
>>> dmd.Devices.prepId('/boot')
'boot'
>>> dmd.Devices.prepId('/')
'-'
prepId(self, id, subchar='_')
Clean out an id of illegal characters.
source code
boolean
>>> dmd.Devices.checkValidId('^*')
'The id "^*" contains characters illegal in URLs.'
>>> dmd.Devices.checkValidId('Server')
'The id "Server" is invalid - it is already in use.'
>>> dmd.Devices.checkValidId('ZenTestId')
True
checkValidId(self, id, prep_id=False)
Checks that an id is a valid Zope id.
source code
string
>>> id1 = dmd.Devices.getUnusedId('devices', 'dev')
>>> id1
'dev'
>>> dmd.Devices.createInstance(id1)
<Device at /zport/dmd/Devices/devices/dev>
>>> id2 = dmd.Devices.getUnusedId('devices', 'dev')
>>> id2
'dev2'
getUnusedId(self, relName, baseKey, extensionIter=None)
Return a new id that is not already in use in the relationship.
source code
string
>>> dmd.Devices.getIdLink()
'<a href="/zport/dmd/Devices">/</a>'
getIdLink(self)
DEPRECATED Return an a link to this object with its id as the name.
source code
 
callZenScreen(self, REQUEST, redirect=False)
Call and return screen specified by zenScreenName value of REQUEST.
source code
string
zenScreenUrl(self)
Return the url for the current screen as defined by zenScreenName.
source code
string
urlLink(self, text=None, url=None, attrs={})
Return an anchor tag if the user has access to the remote object.
source code
string
>>> dmd.Devices.getBreadCrumbUrlPath()
'/zport/dmd/Devices'
>>> rc = dmd.Reports._getOb('Graph Reports')
>>> rc.manage_addGraphReport('test').getBreadCrumbUrlPath()
'/zport/dmd/Reports/Graph%20Reports/test/editGraphReport'
getBreadCrumbUrlPath(self)
Return the url to be used in breadcrumbs for this object.
source code
list
>>> dmd.Devices.Server.breadCrumbs()
[('/zport/dmd/Devices', 'Devices'), 
    ('/zport/dmd/Devices/Server', 'Server')]
breadCrumbs(self, terminator='dmd')
Return the data to create the breadcrumb links for this object.
source code
 
getZ(self, zpropname)
Return the value of a zProperty on this object.
source code
boolean
checkRemotePerm(self, permission, robject)
Look to see if the current user has permission on remote object.
source code
 
zentinelTabs(self, templateName)
Return a list of hashes that define the screen tabs for this object.
source code
 
zmanage_editProperties(self, REQUEST=None, redirect=False)
Edit a ZenModel object and return its proper page template.
source code
string
getPrimaryDmdId(self, rootName='dmd', subrel='')
Return the full dmd id of this object for instance /Devices/Server.
source code
 
zenpathjoin(self, path)
DEPRECATED Build a Zenoss path based on a list or tuple.
source code
 
zenpathsplit(self, path)
DEPRECATED Split a path on its '/'.
source code
 
createHierarchyObj(self, root, name, factory, relpath='', log=None)
DEPRECATED this is only seems to be used in Organizer.createOrganizer - Create an object from its path we use relpath to skip down any missing relations in the path and factory is the constructor for this object.
source code
 
getHierarchyObj(self, root, name, relpath)
DEPRECATED this doesn't seem to be used anywere don't use it!!!
source code
 
getDmd(self)
DEPRECATED Return the dmd root object with unwraped acquisition path.
source code
 
getDmdRoot(self, name)
Return a dmd root organizer such as "Systems".
source code
 
getDmdObj(self, path)
DEPRECATED Return an object from path that starts at dmd.
source code
 
getZopeObj(self, path)
DEPRECATED Return an object from path tat starts at zope root.
source code
string
getNowString(self)
Return the current time as a string in the format '2007/09/27 14:09:53'.
source code
string
todayDate(self)
Return today's date as a string in the format 'mm/dd/yyyy'.
source code
string
yesterdayDate(self)
Return yesterday's date as a string in the format 'mm/dd/yyyy'.
source code
 
all_meta_types(self, interfaces=None)
DEPRECATED Override the ObjectManager method that is used to control the items available in the add drop down in the ZMI.
source code
 
manage_deleteObjects(self, ids=(), REQUEST=None)
Delete objects by id from this object and return to the current template as defined by callZenScreen.
source code
 
custPropertyIds(self)
List custom properties that are defined at root node.
source code
[{'id':'cName','label':'Name', 'type':'string'},]
custPropertyMap(self)
Return custom property definitions.
source code
[{'id':'cName','label':'Name', 'type':'string'},]
visibleCustPropertyMap(self)
List custom property definitions that are visible using custPropertyMap:
source code
 
saveCustProperties(self, REQUEST)
Save custom properties from REQUEST.form.
source code
 
getObjByPath(self, path)
Lookup and object by its path.
source code
boolean
>>> dmd.isLocalName('Devices')
True
>>> dmd.Devices.Server.isLocalName('Devices')
False
isLocalName(self, name)
Check to see if a name is local to our current context or if it comes from our acquisition chain.
source code
 
helpLink(self)
DEPRECATED Return a link to the objects help file.
source code
string
getIconPath(self)
Return the icon associated with this object.
source code

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

Class Variables [hide private]
  sub_meta_types = ()
  security = ClassSecurityInfo()
  index_html = None
  __ac_permissions__ = (('Delete objects', ('manage_deleteObject...
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

view(self)

source code 
Returns the default view even if index_html is overridden.

Permission: ZEN_VIEW

__hash__(self)
(Hashing function)

source code 
hash(x)
Overrides: object.__hash__
(inherited documentation)

prepId(self, id, subchar='_')

source code 
Clean out an id of illegal characters.
Parameters:
  • subchar (string) - Character to be substituted with illegal characters
Returns: string
>>> dmd.Devices.prepId('ab^*cd')
'ab__cd'
>>> dmd.Devices.prepId('ab^*cd', subchar='Z') 
'abZZcd'
>>> dmd.Devices.prepId('/boot')
'boot'
>>> dmd.Devices.prepId('/')
'-'

checkValidId(self, id, prep_id=False)

source code 
Checks that an id is a valid Zope id. Looks for invalid characters and checks that the id doesn't already exist in this context.
Returns: boolean
>>> dmd.Devices.checkValidId('^*')
'The id "^*" contains characters illegal in URLs.'
>>> dmd.Devices.checkValidId('Server')
'The id "Server" is invalid - it is already in use.'
>>> dmd.Devices.checkValidId('ZenTestId')
True

getUnusedId(self, relName, baseKey, extensionIter=None)

source code 
Return a new id that is not already in use in the relationship. If baseKey is not already in use, return that. Otherwise append values from extensionIter to baseKey until an used key is found. The default extensionIter appends integers starting with 2 and counting up.
Returns: string
>>> id1 = dmd.Devices.getUnusedId('devices', 'dev')
>>> id1
'dev'
>>> dmd.Devices.createInstance(id1)
<Device at /zport/dmd/Devices/devices/dev>
>>> id2 = dmd.Devices.getUnusedId('devices', 'dev')
>>> id2
'dev2'

getIdLink(self)

source code 
DEPRECATED Return an a link to this object with its id as the name.
Returns: string
>>> dmd.Devices.getIdLink()
'<a href="/zport/dmd/Devices">/</a>'
An HTML link to this object

callZenScreen(self, REQUEST, redirect=False)

source code 
Call and return screen specified by zenScreenName value of REQUEST. If zenScreenName is not present call the default screen. This is used in functions that are called from forms to get back to the correct screen with the correct context.

zenScreenUrl(self)

source code 
Return the url for the current screen as defined by zenScreenName. If zenScreenName is not found in the request the request url is used.
Returns: string
An url to this object

urlLink(self, text=None, url=None, attrs={})

source code 
Return an anchor tag if the user has access to the remote object.
Parameters:
  • text - the text to place within the anchor tag or string. Defaults to the id of this object.
  • url - url for the href. Default is getPrimaryUrlPath
  • attrs (dict) - any other attributes to be place in the in the tag.
Returns: string
An HTML link to this object

getBreadCrumbUrlPath(self)

source code 
Return the url to be used in breadcrumbs for this object. normally this is equal to getPrimaryUrlPath. It can be used as a hook to modify the url so that it points towards a different tab then the default.
Returns: string
>>> dmd.Devices.getBreadCrumbUrlPath()
'/zport/dmd/Devices'
>>> rc = dmd.Reports._getOb('Graph Reports')
>>> rc.manage_addGraphReport('test').getBreadCrumbUrlPath()
'/zport/dmd/Reports/Graph%20Reports/test/editGraphReport'
A url to this object

breadCrumbs(self, terminator='dmd')

source code 

Return the data to create the breadcrumb links for this object.

This is a list of tuples where the first value is the URL of the bread crumb and the second is the lable.
Returns: list
>>> dmd.Devices.Server.breadCrumbs()
[('/zport/dmd/Devices', 'Devices'), 
    ('/zport/dmd/Devices/Server', 'Server')]
List of tuples to create a bread crumbs

getZ(self, zpropname)

source code 
Return the value of a zProperty on this object. This method is used to lookup zProperties for a user with a role that doesn't have direct access to an attribute further up the acquisition path.
Parameters:
  • zpropname (string) - Name of zProperty
Returns:
Value of zProperty

Permission: ZEN_VIEW

>>> dmd.Devices.getZ('zSnmpPort')
161

checkRemotePerm(self, permission, robject)

source code 
Look to see if the current user has permission on remote object.
Parameters:
  • permission - Zope permission to be tested. ie "View"
  • robject - remote objecct on which test is run. Will test on primary acquisition path.
Returns: boolean

Permission: ZEN_COMMON

zentinelTabs(self, templateName)

source code 

Return a list of hashes that define the screen tabs for this object.

Keys in the hash are:
  • action = the name of the page template for this tab
  • name = the label used on the tab
  • permissions = a tuple of permissions to view this template

Permission: ZEN_VIEW

>>> dmd.Devices.zentinelTabs('deviceOrganizerStatus')
[{'action': 'deviceOrganizerStatus', 'selected': True, 
    'name': 'Classes', 'permissions': ('View',)}, 
{'action': 'viewEvents', 'name': 'Events', 'permissions': ('View',)}, 
{'action': 'viewHistoryEvents', 'name': 'History', 
    'permissions': ('View',)}, 
{'action': 'zPropertyEdit', 'name': 'zProperties', 
    'permissions': ('View',)}, 
{'action': 'perfConfig', 'name': 'Templates', 
    'permissions': ('Manage DMD',)}]

zmanage_editProperties(self, REQUEST=None, redirect=False)

source code 
Edit a ZenModel object and return its proper page template. Object will be reindexed if nessesary.

Permission: ZEN_MANAGE_DMD

getPrimaryDmdId(self, rootName='dmd', subrel='')

source code 
Return the full dmd id of this object for instance /Devices/Server. Everything before dmd is removed. A different rootName can be passed to stop at a different object in the path. If subrel is passed any relationship name in the path to the object will be removed.
Parameters:
  • rootName (string) - Name of root
  • subrel (string) - Name of relation
Returns: string
Path to object

Permission: ZEN_VIEW

>>> d = dmd.Devices.Server.createInstance('test')
>>> d.getPrimaryDmdId()
'/Devices/Server/devices/test'
>>> d.getPrimaryDmdId('Devices')
'/Server/devices/test'
>>> d.getPrimaryDmdId('Devices','devices')
'/Server/test'

zenpathjoin(self, path)

source code 
DEPRECATED Build a Zenoss path based on a list or tuple.

getDmd(self)

source code 
DEPRECATED Return the dmd root object with unwraped acquisition path.
>>> dmd.Devices.Server.getDmd()
<DataRoot at /zport/dmd>

getDmdRoot(self, name)

source code 
Return a dmd root organizer such as "Systems". The acquisition path will be cleaned so that it points directly to the root.
>>> dmd.Devices.Server.getDmdRoot("Systems")
<System at /zport/dmd/Systems>

getDmdObj(self, path)

source code 
DEPRECATED Return an object from path that starts at dmd.
>>> dmd.getDmdObj('/Devices/Server')
<DeviceClass at /zport/dmd/Devices/Server>

getZopeObj(self, path)

source code 
DEPRECATED Return an object from path tat starts at zope root.
>>> dmd.getZopeObj('/zport/dmd/Devices/Server')
<DeviceClass at /zport/dmd/Devices/Server>

all_meta_types(self, interfaces=None)

source code 
DEPRECATED Override the ObjectManager method that is used to control the items available in the add drop down in the ZMI. It uses the attribute sub_menu_items to create the data structures. This is a list of meta_types for the available classes. This functionality is rarely used in Zenoss because the ZMI is not the perfered management interface.

manage_deleteObjects(self, ids=(), REQUEST=None)

source code 
Delete objects by id from this object and return to the current template as defined by callZenScreen. Uses ObjectManager._delObject to remove the object.

Permission: ZEN_VIEW

custPropertyIds(self)

source code 
List custom properties that are defined at root node. Custom properties start with a lower "c" followed by a uppercase character.

visibleCustPropertyMap(self)

source code 
List custom property definitions that are visible using custPropertyMap:

Returns: [{'id':'cName','label':'Name', 'type':'string'},]

saveCustProperties(self, REQUEST)

source code 
Save custom properties from REQUEST.form.

Permission: ZEN_MANAGE_DMD

getObjByPath(self, path)

source code 
Lookup and object by its path. Basically does a Zope unrestricted traverse on the path given.

helpLink(self)

source code 
DEPRECATED Return a link to the objects help file.

Permission: ZEN_VIEW

getIconPath(self)

source code 
Return the icon associated with this object. The icon path is defined in the zPropoerty zIcon.
Returns: string
Path to icon

Permission: ZEN_VIEW

>>> d = dmd.Devices.Server.createInstance('test')
>>> d.getIconPath()
'/zport/dmd/img/icons/server.png'


Class Variable Details [hide private]

__ac_permissions__

Value:
(('Delete objects', ('manage_deleteObjects')),
 ('Manage DMD', ('zmanage_editProperties', 'saveCustProperties')),
 ('View',
  ('getIconPath',
   'helpLink',
   'zentinelTabs',
   'getZ',
   'getPrimaryDmdId',
...