예제 #1
0
    def __init__(self, name, status, result=None, context=None):
        if not statuses.is_valid(status):
            raise exc.InvalidStatus(status)

        self.name = name
        self.status = status
        self.result = result
        self.context = context
예제 #2
0
    def is_transition_valid(cls, old_status, new_status):
        if old_status is None:
            old_status = 'null'

        if new_status is None:
            new_status = 'null'

        if not statuses.is_valid(old_status):
            raise exc.InvalidStatus(old_status)

        if not statuses.is_valid(new_status):
            raise exc.InvalidStatus(new_status)

        if old_status not in TASK_STATE_MACHINE_DATA.keys():
            return False

        if old_status == new_status or new_status in TASK_STATE_MACHINE_DATA[old_status].values():
            return True

        return False