def set_handler(self, method, config): """更换子处理模块 参数: method:方法名, config:配置dict 返回: 如果成功设置handler,返回{"status":0,"ret":""} 设置失败,返回{"status":1,"ret":error_message} """ #如果存在实例,在更换模块前清理之前模块的连接 if self.handler_instance != None: self.handler_instance.destroy_connection() self.handler_instance = str_to_class( "handler_module."+method+"_handler", "".join([m.capitalize() for m in method.split("_")]) +"Handler", config) #如果实例化失败,返回错误信息 if self.handler_instance is None: return { "status":1, "ret":"fail to set handler." } return { "status":0, "ret":"" }
def set_modules(self, modules): """更换收集模块 参数: 更换的模块string list 返回: 更换模块并实例化成功返回 {"status":0,"ret":module list} 失败返回{"status":1,"ret":error_message} """ self.modules = modules for module in self.modules: #更换模块没有被初始化过或者之前实例化失败时重新实例化 if (module not in self.module_instance.keys() or self.module_instance[module] == None): self.module_instance[module] = str_to_class( "collector_module."+module+"_collector", "".join([m.capitalize() for m in module.split("_")]) +"Collector") #如果此次实例化还是失败,返回错误信息 if self.module_instance[module] == None: return { "status":1, "ret":"fail to set modules for collector." } return { "status":0, "ret":self.modules }
def __init__(self, modules): self.modules = modules self.module_instance = {} #由于要记录缓存,所以需要持有模块实例 for module in modules: self.module_instance[module] = str_to_class( "collector_module."+module+"_collector", "".join([m.capitalize() for m in module.split("_")]) +"Collector")
def __init__(self, method, config): """初始化处理类 参数: method:方法名 config:配置dict 返回: 无 """ self.handler_instance = str_to_class( "handler_module."+method+"_handler", "".join([m.capitalize() for m in method.split("_")]) +"Handler", config)