示例#1
0
文件: persistence.py 项目: baidu/ARK
    def disconnect(self):
        """
        主动断开持久化请求

        :return: 无返回
        :rtype: None
        """
        raise exception.ENotImplement("function is not implement")
示例#2
0
    def run_next(self):
        """
        接口方法, 进行一个状态的轮转,子类需要根据具体的轮转逻辑,实现该方法

        :return: None
        :raises ENotImplement: 该接口未实现
        """
        raise exception.ENotImplement()
示例#3
0
    def get_control_message(self, session):
        """
        获取当前是否有控制消息需要处理。如果没有,则应返回None, None

        :param object session: 状态机的session
        :return: 控制消息ID,控制消息
        :rtype: str, object
        """
        raise exception.ENotImplement("function is not implement")
示例#4
0
    def get_event(self):
        """
        获取外部事件的虚接口

        :return: 外部事件
        :rtype: dict
        :raises ENotImplement: 虚接口,不能直接调用
        """
        raise exception.ENotImplement("function is not implement")
示例#5
0
 def exception_handler(self, cause, params):
     """
     当状态机执行出现异常时需要向用户提供处理异常情况的途径,而不仅仅是退出执行
     该函数需要用户继承的子类去实现
     :param cause: 状态机捕获到的异常
     :param params: 用户下发的事件
     :return:
     """
     raise exception.ENotImplement("function is not implement")
示例#6
0
    def execute_message(self, message):
        """
        事件具体执行逻辑

        :param Message message: 消息对象
        :return: 执行结果
        :rtype: dict
        :raises ENotImplement: 未实现
        """
        raise exception.ENotImplement("function is not implement")
示例#7
0
    def decision_logic(self, message):
        """
        决策逻辑,生成待执行事件

        :param Message message: 消息对象
        :return: 待发送消息
        :rtype: Message
        :raises ENotImplement: 未实现
        """
        raise exception.ENotImplement("function is not implement")
示例#8
0
文件: executor.py 项目: baidu/ARK
    def execute(self, operation):
        """
        事件具体执行逻辑

        :param Operation operation: operation操作对象
        :return: 执行结果
        :rtype: dict
        :raises ENotImplement: 未实现
        """
        raise exception.ENotImplement("function is not implement")
示例#9
0
文件: persistence.py 项目: pspk/ARK
    def exists(self, path):
        """
        查询制定path路径的节点是否存在

        :param str path: 待检查的节点路径
        :return: True表示节点存在,False表示节点不存在
        :rtype: bool
        :raises: exception.EPIOError IO异常
        """
        raise exception.ENotImplement("function is not implement")
示例#10
0
文件: persistence.py 项目: pspk/ARK
    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")
示例#11
0
文件: framework.py 项目: pspk/ARK
    def on_decision_message(self, message):
        """
        消息处理

        :param Message message: 消息对象
        :return: 无返回
        :rtype: None
        :raises ENotImplement: 未实现
        """
        raise exception.ENotImplement("function is not implement")
示例#12
0
文件: framework.py 项目: pspk/ARK
    def on_execute_message(self, message):
        """
        消息处理

        :param Message message: 消息对象
        :return: 执行结果
        :rtype: Message
        :raises ENotImplement: 未实现
        """
        raise exception.ENotImplement("function is not implement")
示例#13
0
文件: persistence.py 项目: pspk/ARK
 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")
示例#14
0
文件: es_sensor.py 项目: meetbill/ARK
    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")
示例#15
0
    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()
示例#16
0
文件: persistence.py 项目: pspk/ARK
    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")
示例#17
0
文件: persistence.py 项目: baidu/ARK
 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")
示例#18
0
    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")
示例#19
0
    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")
示例#20
0
    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")
示例#21
0
    def refresh(self):
        """
        重新获取定时列表。定时列表是一个list,每行均为二值元组:linux风格的定时时间(具体格式参考manpage)、附属参数(字符串)。

        .. Note:: 为了避免影响主消息泵及CronSensor的定时触发,刷新定时触发列表会在单独的子线程进行,因此访问共享数据时应注意加锁

        :return: 返回的定时列表
        :rtype: list
        """

        raise exception.ENotImplement("function is not implement")
示例#22
0
文件: framework.py 项目: pspk/ARK
    def on_message(self, message):
        """
        消息处理入口方法,消息处理器获得关注的消息后,调用此方法进行消息处理。

        ..Note:: 该方法必须被实现,不能直接调用

        :param Message message: 消息对象
        :return: 无返回
        :rtype: None
        :raises ENotImplement: 虚接口,不能直接调用
        """
        raise exception.ENotImplement("function is not implement")
示例#23
0
    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()
示例#24
0
文件: persistence.py 项目: pspk/ARK
 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")
示例#25
0
文件: persistence.py 项目: pspk/ARK
    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")
示例#26
0
    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")
示例#27
0
文件: persistence.py 项目: pspk/ARK
    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")
示例#28
0
文件: framework.py 项目: pspk/ARK
    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))
示例#29
0
文件: persistence.py 项目: baidu/ARK
 def _touch(self, tp, now):
     """
     更新临时节点的时间,并清理已经过期的临时节点
     """
     raise exception.ENotImplement("function is not implement")
示例#30
0
文件: persistence.py 项目: baidu/ARK
 def _valid_node(self, path):
     """
     用于获取有效的节点数据
     :return:
     """
     raise exception.ENotImplement("function is not implement")