def inner(func, self, *args, **kwargs): try: return func(self, *args, **kwargs) except ZepConnectionError, e: msg = 'Connection refused. Check zeneventserver status on <a href="/zport/About/zenossInfo">Daemons</a>' messaging.IMessageSender(self).sendToBrowser("ZEP connection error", msg, priority=messaging.CRITICAL, sticky=True) log.warn("Could not connect to ZEP")
def manage_addMultiGraphReportClass(context, id, title=None, REQUEST=None): """ Construct a new MultiGraphreportclass """ frc = MultiGraphReportClass(id, title) context._setObject(id, frc) if REQUEST is not None: audit('UI.ReportClass.Add', frc.id, title=title, organizer=context) messaging.IMessageSender(self).sendToBrowser( 'Organizer Created', 'Report organizer %s was created.' % id) REQUEST['RESPONSE'].redirect(context.absolute_url() + '/manage_main')
def deleteDatabases(self, componentNames=[], REQUEST=None): """Delete Databases""" self.deleteDeviceComponents(self.softwaredatabases, componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Databases Deleted', 'Databases %s were deleted.' % (', '.join(componentNames))) REQUEST['RESPONSE'].redirect(self.absolute_url()) return self.callZenScreen(REQUEST)
def addOSProcess(self, newClassName, example, userCreated, REQUEST=None): """Add an OSProcess. """ osp = manage_addOSProcess(self.processes, newClassName, example, userCreated) self._p_changed = True if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Process Created', 'OS process %s was created.' % newClassName) REQUEST['RESPONSE'].redirect(osp.absolute_url())
def zmanage_delProperties(self, ids=(), REQUEST=None): """Delete properties from an object. """ for id in ids: self._delProperty(id) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Properties Deleted', 'Properties %s have been deleted' % (', '.join(ids))) return self.callZenScreen(REQUEST)
def manage_addGraphDefinition(context, id, REQUEST=None): """ This is here so that Zope will let us copy/paste/rename graph points. """ if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Unsupported', 'That operation is not supported.', priority=messaging.WARNING) context.callZenScreen(REQUEST)
def manage_addRemoteMonitor(self, id=None, submon=None, REQUEST=None): 'Add an object of sub_class, from a module of the same name' if REQUEST: REQUEST['data'] = json({'uids':[id], 'command':'add'}) UpdateRemoteCollectorView(self, REQUEST)() messaging.IMessageSender(self).sendToBrowser( 'Remote Collector Created', 'Remote collector %s was created.' % id ) return self.callZenScreen(REQUEST)
def unlockLogicalVolumes(self, componentNames=[], REQUEST=None): """Unlock Logical Volumes""" self.unlockLVComponents(componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Logical Volumes Unlocked', 'Logical Volumes %s were unlocked.' % (', '.join(componentNames))) REQUEST['RESPONSE'].redirect(self.absolute_url()) return self.callZenScreen(REQUEST)
def unlockFileSystems(self, componentNames=[], REQUEST=None): """Unlock FileSystems""" self.unlockDeviceComponents(self.filesystems, componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Filesystems Unlocked', 'Filesystems %s were unlocked.' % (', '.join(componentNames)) ) REQUEST['RESPONSE'].redirect(self.absolute_url_path()) return self.callZenScreen(REQUEST)
def deleteIpRouteEntries(self, componentNames=[], REQUEST=None): """Delete IpRouteEntries""" self.deleteDeviceComponents(self.routes, componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Routes Deleted', 'IP route entries %s were deleted.' % (', '.join(componentNames)) ) REQUEST['RESPONSE'].redirect(self.absolute_url_path()) return self.callZenScreen(REQUEST)
def zmanage_editProperties(self, REQUEST=None): """Validate input before updating properties.""" if REQUEST: if not REQUEST.form.get('splunkSearch'): messaging.IMessageSender(self).sendToBrowser( 'Update Failed', 'Search cannot be blank.', priority=messaging.WARNING) return self.callZenScreen(REQUEST) return BasicDataSource.zmanage_editProperties(self, REQUEST)
def manage_removeRemoteMonitors(self, ids=None, submon="", REQUEST=None): 'Remove an object from this one' if REQUEST: REQUEST['data'] = json({'uids':ids, 'command':'remove'}) UpdateRemoteCollectorView(self, REQUEST)() messaging.IMessageSender(self).sendToBrowser( 'Remote Collectors Deleted', 'Deleted remote collectors: %s' % (', '.join(ids)) ) return self.callZenScreen(REQUEST)
def removeLocalRRDTemplate(self, templateName=None, REQUEST=None): """Make a local delete of our RRDTemplate if one doesn't exist. """ if templateName is None: templateName = self.getRRDTemplateName() if self.isLocalName(templateName): self._delObject(templateName) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Template Removed', 'Local copy "%s" removed.' % templateName) return self.callZenScreen(REQUEST)
def unlockMessageQueues(self, componentNames=[], REQUEST=None): """ Callback function that unlocks queues. """ self.unlockDeviceComponents(self.msmq, componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Queues Unlocked', 'Message Queues %s were unlocked.' % (', '.join(componentNames))) REQUEST['RESPONSE'].redirect(self.absolute_url()) return self.callZenScreen(REQUEST)
def manage_removeRemoteMonitors(self, ids=None, submon="", REQUEST=None): 'Remove an object from this one' self.manage_removeMonitor(ids, submon, None) transaction.commit() setupRemoteMonitors(ids, self.commandTestOutput(), REQUEST, remove=True) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Remote Collectors Deleted', 'Deleted remote collectors: %s' % (', '.join(ids)) ) return self.callZenScreen(REQUEST)
def manage_deleteGraphDefinitions(self, ids=(), REQUEST=None): """Remove GraphDefinitions from this RRDTemplate. """ for id in ids: self.graphDefs._delObject(id) self.manage_resequenceGraphDefs() if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Graphs Deleted', 'Graph%s %s deleted.' % ('' if len(ids) == 1 else 's', ', '.join(ids))) return self.callZenScreen(REQUEST)
def manage_addMibModule(self, id, REQUEST=None): """Create a new service class in this Organizer. """ mm = MibModule(id) self.mibs._setObject(id, mm) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Mib Module Created', 'Mib module %s was created.' % id) return self.callZenScreen(REQUEST) else: return self.mibs._getOb(id)
def deleteMibNotifications(self, ids=[], REQUEST=None): """Delete MibNotifications """ for notification in self.notifications(): id = getattr(notification, 'id', None) if id in ids: self.notifications._delObject(id) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Traps Deleted', 'Traps deleted: %s' % (', '.join(ids))) return self.callZenScreen(REQUEST)
def deleteMibNodes(self, ids=[], REQUEST=None): """Delete MibNodes """ for node in self.nodes(): id = getattr(node, 'id', None) if id in ids: self.nodes._delObject(id) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Mappings Deleted', 'Mib nodes deleted: %s' % (', '.join(ids))) return self.callZenScreen(REQUEST)
def removeProfileModules(self, ids=None, REQUEST=None): """ Remove Profile Modules from an EventClass. """ if not ids: return self() if type(ids) == types.StringType: ids = (ids, ) for id in ids: self.rulesets._delObject(id) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Rule Sets Deleted', 'rule sets deleted: %s' % ', '.join(ids)) return self()
def manage_deletePackable(self, packables=(), REQUEST=None): "Delete objects from this ZenPack" packables = set(packables) for obj in self.packables(): if obj.getPrimaryUrlPath() in packables: self.packables.removeRelation(obj) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Objects Deleted', 'Deleted objects from ZenPack %s.' % self.id) return self.callZenScreen(REQUEST)
def moveDevicesToClass(self, moveTarget, deviceNames=None, REQUEST=None): """Move Devices from one DeviceClass to Another""" if deviceNames is None: if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Error', 'No devices were selected', priority=messaging.WARNING) return self.callZenScreen(REQUEST) deviceNames = [x.split('/')[-1] for x in deviceNames] return self.dmd.Devices.moveDevices(moveTarget, deviceNames, REQUEST)
def manage_addReportClass(self, id, title=None, REQUEST=None): """make a report class""" rClass = self.getReportClass() dc = rClass(id, title) self._setObject(id, dc) if REQUEST: audit('UI.Organizer.Add', dc.id, title=title) messaging.IMessageSender(self).sendToBrowser( 'Report Organizer Created', 'Report organizer %s was created.' % id) return self.callZenScreen(REQUEST)
def unlockDBSrvInsts(self, componentNames=[], REQUEST=None): """Unlock DBSrvInsts""" self.unlockDeviceComponents(self.softwaredbsrvinstances, componentNames, REQUEST) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Database Server Instances Unlocked', 'Database Server Instances %s were unlocked.' % (', '.join(componentNames))) REQUEST['RESPONSE'].redirect(self.absolute_url()) return self.callZenScreen(REQUEST)
def addIpInterface(self, newId, userCreated, REQUEST=None): """Add IpInterfaces. """ manage_addIpInterface(self.interfaces, newId, userCreated) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Interface Created', 'IP Interface %s was created.' % newId) REQUEST['RESPONSE'].redirect( self.interfaces._getOb(newId).absolute_url_path()) self._p_changed = True return self.callZenScreen(REQUEST)
def manage_copyAndPasteRRDTemplates(self, ids=(), copyTarget=None, REQUEST=None): """ Copy the selected templates into the specified device class. """ if not ids: messaging.IMessageSender(self).sendToBrowser( 'Invalid', 'No templates were selected.', priority=messaging.WARNING ) return self.callZenScreen(REQUEST) if copyTarget is None: messaging.IMessageSender(self).sendToBrowser( 'Invalid', 'No target was selected.', priority=messaging.WARNING ) return self.callZenScreen(REQUEST) cp = self.manage_copyRRDTemplates(ids) return self.manage_pasteRRDTemplates(copyTarget, cp, REQUEST)
def removeZDeviceTemplates(self, REQUEST=None): """ Deletes the local zProperty, zDeviceTemplates """ if self.getPrimaryPath()[-2:] == ('dmd', 'Devices'): self.setZenProperty('zDeviceTemplates', ['Device']) else: self.deleteZenProperty('zDeviceTemplates') messaging.IMessageSender(self).sendToBrowser( 'Bindings Reset', 'Template bindings for this class were reset.') return self.callZenScreen(REQUEST)
def createComment(self, comments='', REQUEST=''): """ Set comments attribute for a device """ self.comments = comments if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Device comment set', 'Device comment created as %s ' % comments ) return self.callZenScreen(REQUEST)
def manage_addReportClass(context, id, title=None, REQUEST=None): """make a report class""" dc = ReportClass(id, title) context._setObject(id, dc) if REQUEST is not None: audit('UI.Organizer.Add', dc.id, title=title, organizer=context) messaging.IMessageSender(context).sendToBrowser( 'Report Organizer Created', 'Report organizer %s was created.' % id) REQUEST['RESPONSE'].redirect(context.absolute_url() + '/manage_main')
def manage_addRRDTemplate(self, id, REQUEST=None): """Add an RRDTemplate to this DeviceClass. """ if not id: return self.callZenScreen(REQUEST) id = self.prepId(id) org = RRDTemplate(id) self.rrdTemplates._setObject(org.id, org) if REQUEST: messaging.IMessageSender(self).sendToBrowser( 'Template Added', 'Template %s was created.' % id) return self.callZenScreen(REQUEST)