Source code for centreonapi.webservice.configuration.poller

# -*- coding: utf-8 -*-

import centreonapi.webservice.configuration.common as common
import centreonapi.webservice.configuration.factory.pollerfactory as pollerfactory
from centreonapi.webservice import Webservice


[docs]class Poller(pollerfactory.ObjPoller): def __init__(self, properties): super(pollerfactory.ObjPoller, self).__init__() self.webservice = Webservice.getInstance() self.__clapi_action = 'INSTANCE' self.id = properties.get('id') self.bin = properties.get('bin') self.activate = properties.get('activate') self.init_script = properties.get('init script') self.ipaddress = properties.get('ip address') self.localhost = properties.get('localhost') self.name = properties.get('name') self.ssh_port = properties.get('ssh port') self.stats_bin = properties.get('stats bin') self.status = properties.get('status') self.pollerHost = {}
[docs] def add(self, *args, **kwargs): pass
[docs] def delete(self, *args, **kwargs): pass
[docs] def setparam(self, *args, **kwargs): pass
[docs] def gethosts(self): state, poller = self.webservice.call_clapi( 'gethosts', self.__clapi_action, self.name) if state and len(poller['result']) > 0: for p in poller['result']: p['poller'] = self.name pollerhost_obj = PollerHost(p) self.pollerHost[pollerhost_obj.name] = pollerhost_obj return state, self.pollerHost else: return state, poller
[docs] def applycfg(self): return self.webservice.call_clapi( 'applycfg', None, self.id)
[docs] def restart(self): return self.webservice.call_clapi( 'pollerrestart', None, self.id)
[docs] def relaod(self): return self.webservice.call_clapi( 'pollerreload', None, self.id)
[docs] def generatecfg(self): return self.webservice.call_clapi( 'pollergenerate', None, self.id)
[docs] def testcfg(self): return self.webservice.call_clapi( 'pollertest', None, self.id)
[docs] def movecfg(self): return self.webservice.call_clapi( 'cfgmove', None, self.id)
[docs]class PollerHost(common.CentreonObject): def __init__(self, properties): self.id = properties.get('id') self.address = properties.get('address') self.name = properties.get('name') self.poller = properties.get('poller')
[docs]class Pollers(common.CentreonDecorator, common.CentreonClass): def __init__(self): super(Pollers, self).__init__() self.pollers = {} self.__clapi_action = 'INSTANCE' def __contains__(self, name): return name in self.pollers.keys() or None def __getitem__(self, name): if not self.pollers: self.list(name) if name in self.pollers.keys(): return True, self.pollers[name] else: return False, None def _refresh_list(self, name=None): self.pollers.clear() state, poller = self.webservice.call_clapi( 'show', self.__clapi_action, name) if state and len(poller['result']) > 0: for p in poller['result']: poller_obj = Poller(p) self.pollers[poller_obj.name] = poller_obj
[docs] def applycfg(self, pollername): """ Apply the configuration to a poller name """ return self.webservice.call_clapi('applycfg', None, pollername)
[docs] def list(self, name=None): self._refresh_list(name) return self.pollers