def disconnect(self): """ 主动断开持久化请求 :return: 无返回 :rtype: None """ raise exception.ENotImplement("function is not implement")
def run_next(self): """ 接口方法, 进行一个状态的轮转,子类需要根据具体的轮转逻辑,实现该方法 :return: None :raises ENotImplement: 该接口未实现 """ raise exception.ENotImplement()
def get_control_message(self, session): """ 获取当前是否有控制消息需要处理。如果没有,则应返回None, None :param object session: 状态机的session :return: 控制消息ID,控制消息 :rtype: str, object """ raise exception.ENotImplement("function is not implement")
def get_event(self): """ 获取外部事件的虚接口 :return: 外部事件 :rtype: dict :raises ENotImplement: 虚接口,不能直接调用 """ raise exception.ENotImplement("function is not implement")
def exception_handler(self, cause, params): """ 当状态机执行出现异常时需要向用户提供处理异常情况的途径,而不仅仅是退出执行 该函数需要用户继承的子类去实现 :param cause: 状态机捕获到的异常 :param params: 用户下发的事件 :return: """ raise exception.ENotImplement("function is not implement")
def execute_message(self, message): """ 事件具体执行逻辑 :param Message message: 消息对象 :return: 执行结果 :rtype: dict :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def decision_logic(self, message): """ 决策逻辑,生成待执行事件 :param Message message: 消息对象 :return: 待发送消息 :rtype: Message :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def execute(self, operation): """ 事件具体执行逻辑 :param Operation operation: operation操作对象 :return: 执行结果 :rtype: dict :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def exists(self, path): """ 查询制定path路径的节点是否存在 :param str path: 待检查的节点路径 :return: True表示节点存在,False表示节点不存在 :rtype: bool :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def add_listener(self, watcher): """ 监听会话状态 :param watcher: 状态监听函数。函数形参为(state),可能的取值包括"SUSPENDED"、"CONNECTED"、"LOST" :return: 无返回 :rtype: None :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def on_decision_message(self, message): """ 消息处理 :param Message message: 消息对象 :return: 无返回 :rtype: None :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def on_execute_message(self, message): """ 消息处理 :param Message message: 消息对象 :return: 执行结果 :rtype: Message :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def delete_node(self, path): """ 删除node节点 :param str path: 数据存储路径 :return: 无返回 :rtype: None :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def _compose_filter(self, time_begin, time_end): """ 根据过滤项/或者过滤表达式,以及时间字段,构造完整的ES查询请求 :param int time_begin: 查询筛选的开始时间 :param int time_end: 查询筛选的结束时间 :return: 拼接好的查询请求 :rtype: str :raises ENotImplement: 未实现 """ raise exception.ENotImplement("function is not implement")
def process(self, session, current_node, nodes_process): """ 节点处理接口 :param object session: 状态机运行信息 :param str current_node: 当前节点 :param dict nodes_process: 节点运行情况 :return: 返回下一个节点名 :raises ENotImplement: 接口未实现 """ raise exception.ENotImplement()
def get_data(self, path): """ 获得指定路径path的节点数据 :param str path: 数据存储路径 :return: 节点数据 :rtype: str :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def delete_node(self, path, force=False): """ 删除node节点 :param str path: 数据存储路径 :param bool force: 是否强行删除而不判断节点有效性 :return: 无返回 :rtype: None :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def get_result(self, job_handle_list, node_name, session): """ 刷新任务状态 :param list job_handle_list: job句柄列表,每个句柄都包含job的必要信息,可根据该句柄获取job的当前状态,控制job的暂停,取消等动作 :param str node_name: 当前的状态机节点名 :param object session: 状态机的session :return: 返回码 :rtype: int """ raise exception.ENotImplement("function is not implement")
def control(self, job_handle_list, control_message, session): """ 根据控制消息进行任务控制 :param job_handle_list stage结果 :param dict control_message: 控制消息 :param object session: 状态机的session :return: 返回码 :rtype: int """ raise exception.ENotImplement("function is not implement")
def create(self, job_desc, node_name, session): """ 创建任务 :param dict job_desc: 任务参数 :param str node_name: 当前的状态机节点名 :param object session: 状态机的session :return: job_handle :rtype: str """ raise exception.ENotImplement("function is not implement")
def refresh(self): """ 重新获取定时列表。定时列表是一个list,每行均为二值元组:linux风格的定时时间(具体格式参考manpage)、附属参数(字符串)。 .. Note:: 为了避免影响主消息泵及CronSensor的定时触发,刷新定时触发列表会在单独的子线程进行,因此访问共享数据时应注意加锁 :return: 返回的定时列表 :rtype: list """ raise exception.ENotImplement("function is not implement")
def on_message(self, message): """ 消息处理入口方法,消息处理器获得关注的消息后,调用此方法进行消息处理。 ..Note:: 该方法必须被实现,不能直接调用 :param Message message: 消息对象 :return: 无返回 :rtype: None :raises ENotImplement: 虚接口,不能直接调用 """ raise exception.ENotImplement("function is not implement")
def check(self, session, current_node, nodes_process): """ 节点检查接口 :param object session: 状态机运行信息 :param str current_node: 当前节点 :param dict nodes_process: 节点运行情况 :return: 是否检查通过 :rtype: bool :raises ENotImplement: 接口未实现 """ raise exception.ENotImplement()
def get_children(self, path, watcher=None, include_data=False): """ 获取所有子节点 :param str path: 待获取子节点的路径 :param watcher: 状态监听函数。函数形参为(event),event包括三个成员属性:path(发生状态变化的路径)、state(server链接状态)、type(事件类型,包括CREATED|DELETED|CHANGED|CHILD|NONE) :param bool include_data: 是否同时返回数据 :return: 子节点名字列表 :rtype: str :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def save_data(self, path, data): """ 存储数据data到特定的path路径节点 :param str path: 数据存储路径 :param str data: 待存储的数据 :return: 无返回 :rtype: None :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def persist(self, session, message_name, finished_name, next_name): """ 提供必要的持久化实现 .. Note:: session中的控制消息应在处理完成之后被清理,否则会造成重复触发 :param object session: 状态机的session :param str message_name: 状态机的session :param str finished_name: 已经完成的节点名 :param str next_name: 下一个将处理的节点名 :return: 无返回 :rtype: None """ raise exception.ENotImplement("function is not implement")
def create_node(self, path, value="", ephemeral=False, sequence=False, makepath=False): """ 根据节点各属性创建节点 :param str path: 待创建的节点路径 :param str value: 待存数据 :param bool ephemeral: 是否是临时节点 :param bool sequence: 是否是自动分配节点序号 :param bool makepath: 是否创建父节点 :return: 无返回 :rtype: None :raises: exception.EPNoNodeError 节点不存在 :raises: exception.EPIOError IO异常 """ raise exception.ENotImplement("function is not implement")
def send(self, message): """ 发送一个消息到消息泵 .. Note:: 此方法必须在主进程中调用,严禁在子进程中调用send方法,否则可能导致执行记录被覆盖、发送的消息未处理等严重问题。 .. Note:: 该函数涉及到的与消息持久化相关的操作在装饰器中实现,为避免非预期的问题,尽量避免对此方法进行重写操作,如需重写, 需明确可能的行为,并显式添加装饰器 :param Message message: 消息对象 :return: 无返回 :rtype: None """ if multiprocessing.current_process().name != "MainProcess": raise exception.ENotImplement( "send() only be used in \'MainProcess\'") self._message_pump.put(message) log.d("send message to message pump success, message:{}".format( message.name))
def _touch(self, tp, now): """ 更新临时节点的时间,并清理已经过期的临时节点 """ raise exception.ENotImplement("function is not implement")
def _valid_node(self, path): """ 用于获取有效的节点数据 :return: """ raise exception.ENotImplement("function is not implement")