Source code for centreonapi.webservice.configuration.resourcecfg

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

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


[docs]class ResourceCFG(resourcecfgfactory.ObjResourceCfg): def __init__(self, properties): self.webservice = Webservice.getInstance() self.__clapi_action = 'RESOURCECFG' self.id = properties.get('id') self.instance = properties.get('instance') self.name = properties.get('name') self.activate = properties.get('activate') self.value = properties.get('value')
[docs] def setparam(self, name, value): """ Set specific param for a resource CFG :param name: resource name :param value: resource value :return: """ values = [ self.id, name, value ] return self.webservice.call_clapi('setparam', self.__clapi_action, values)
[docs]class ResourceCFGs(common.CentreonClass): """ Centreon Web Resource object """ def __init__(self): super(ResourceCFGs, self).__init__() self.resources = {} self.__clapi_action = "RESOURCECFG" @staticmethod def _build_resource_line(line): if line: rsc = line if rsc[0] != '$': rsc = '$' + rsc if rsc[len(rsc) - 1] != '$': rsc = rsc + '$' return str(rsc) else: return "" def __contains__(self, name): rsc = self._build_resource_line(name) return rsc in self.resources.keys() def __getitem__(self, name): if not self.resources: self.list(name) rsc = self._build_resource_line(name) if rsc in self.resources.keys(): return True, self.resources[rsc] else: return False, None def _refresh_list(self, name=None): self.resources.clear() state, resource = self.webservice.call_clapi( 'show', self.__clapi_action, name) if state and len(resource['result']) > 0: for r in resource['result']: resource_obj = ResourceCFG(r) self.resources[resource_obj.name] = resource_obj
[docs] def list(self, name=None): """ List all ResourceCFG :return: dict: All Centreon ResourceCFG """ self._refresh_list(name) return self.resources
[docs] def add(self, rscname, rscvalue, rscinstance, rsccomment): values = [ rscname, rscvalue, str(pollerfactory.build_param_poller(rscinstance)[0]), rsccomment ] return self.webservice.call_clapi('add', self.__clapi_action, values)
[docs] def delete(self, resource): value = str(resourcecfgfactory.build_param_resourcecfg(resource)[0]) state, delete = self.webservice.call_clapi('del', self.__clapi_action, value) if state: self.resources.pop(resource, None) return state, delete