def read_config(self, *args, **kwargs): try: serialized = self.core.config_manager.get(self.MASTER_KEY) except (ConfigError, KeyError): self.warning('HttpOut not configured, default values loaded.') self.httpout_cfg = HttpOutConf() else: self.httpout_cfg = HttpOutConf.deserialize(serialized)
class HttpOutComponent(AbstractNuConfComponent): NAME = "httpout" VERSION = "1.0" MASTER_KEY = NAME REQUIRES = ('config',) CONFIG = { 'host': '', 'port': '', 'user': '', 'password': '', } CONFIG_DEPENDS = () ROLES = { 'conf_read': set(('getHttpOutConfig',)), 'conf_write': set(('setHttpOutConfig',)), } def read_config(self, *args, **kwargs): try: serialized = self.core.config_manager.get(self.MASTER_KEY) except (ConfigError, KeyError): self.warning('HttpOut not configured, default values loaded.') self.httpout_cfg = HttpOutConf() else: self.httpout_cfg = HttpOutConf.deserialize(serialized) def apply_config(self, *unused): self.read_config() def save_config(self, message, context=None): with self.core.config_manager.begin(self, context) as cm: try: cm.delete(self.MASTER_KEY) except ConfigError: pass cm.set(self.MASTER_KEY, self.httpout_cfg.serialize()) cm.commit(message) # Services: def service_getHttpOutConfig(self, context): return self.httpout_cfg.serialize() def service_setHttpOutConfig(self, context, serialized, message): self.httpout_cfg = HttpOutConf.deserialize(serialized) self.save_config(message, context) def service_status(self, context): """See service status""" return self.NAME, ServiceStatusValues.NOT_A_SERVICE
def service_setHttpOutConfig(self, context, serialized, message): self.httpout_cfg = HttpOutConf.deserialize(serialized) self.save_config(message, context)