Ejemplo n.º 1
0
def test_01():
    domain = 'floto_test'
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    activity_task_1 = ActivityTask(domain=domain,
                                   name='activity1',
                                   version='v5',
                                   retry_strategy=rs)
    decider_spec = DeciderSpec(domain=domain,
                               task_list=str(uuid.uuid4()),
                               activity_tasks=[activity_task_1],
                               default_activity_task_list='floto_activities',
                               terminate_decider_after_completion=True)

    decider = floto.decider.Decider(decider_spec=decider_spec)

    response = floto.api.Swf().start_workflow_execution(
        domain='floto_test',
        workflow_type_name='my_workflow_type',
        workflow_type_version='v1',
        task_list=decider_spec.task_list,
        input={'foo': 'bar'})
    run_id = response['runId']
    workflow_id = 'my_workflow_type_v1'

    print(30 * '-' + ' Running Test 01 ' + 30 * '-')
    decider.run()
    print(30 * '-' + ' Done Test 01    ' + 30 * '-')
    return get_result('floto_test', run_id, workflow_id)
Ejemplo n.º 2
0
def test_03():
    domain = 'floto_test'
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    a1 = ActivityTask(domain=domain, name='activity1', version='v5', retry_strategy=rs) 
    a2 = ActivityTask(domain=domain, name='activity2', version='v4', retry_strategy=rs) 

    decider_spec = DeciderSpec(domain=domain,
                               task_list=str(uuid.uuid4()),
                               activity_tasks=[a1, a2],
                               default_activity_task_list='floto_activities',
                               terminate_decider_after_completion=True)

    decider = floto.decider.Decider(decider_spec=decider_spec.to_json())

    workflow_args = {'domain':decider_spec.domain,
                     'workflow_type_name':'my_workflow_type',
                     'workflow_type_version':'v1',
                     'task_list':decider_spec.task_list,
                     'input':{'foo':'bar'}}

    response = floto.api.Swf().start_workflow_execution(**workflow_args)

    print(30*'-'+' Running Test 03 '+30*'-')
    decider.run()
    print(30*'-'+' Done Test 03    '+30*'-')
    return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')    
Ejemplo n.º 3
0
def test_07():
    domain = 'floto_test'
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    timer_a = floto.specs.task.Timer(id_='TimerA', delay_in_seconds=15)
    task_1 = floto.specs.task.ActivityTask(domain=domain, name='activity1', version='v5', 
                                           retry_strategy=rs)
    timer_b = floto.specs.task.Timer(id_='TimerB', delay_in_seconds=5, 
                                     requires=[task_1.id_])
    task_2 = floto.specs.task.ActivityTask(domain=domain, name='activity2', version='v4', 
                                           requires=[timer_b.id_], retry_strategy=rs)

    decider_spec = floto.specs.DeciderSpec(domain=domain,
                                           task_list=str(uuid.uuid4()),
                                           activity_tasks=[timer_a,
                                                           timer_b,
                                                           task_1,
                                                           task_2],
                                           default_activity_task_list='floto_activities',
                                           terminate_decider_after_completion=True)

    decider = floto.decider.Decider(decider_spec=decider_spec)

    workflow_args = {'domain': decider_spec.domain,
                     'workflow_type_name': 'my_workflow_type',
                     'workflow_type_version': 'v1',
                     'task_list': decider_spec.task_list,
                     'input': {'foo': 'bar'}}

    response = floto.api.Swf().start_workflow_execution(**workflow_args)

    print(30 * '-' + ' Running Test 07 ' + 30 * '-')
    decider.run()
    print(30 * '-' + ' Done Test 07    ' + 30 * '-')
    return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')
Ejemplo n.º 4
0
def test_06():
    domain = 'floto_test'
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    activity_task = ActivityTask(domain=domain,
                                 name='activity_fails_2',
                                 version='v2',
                                 retry_strategy=rs)
    decider_spec = DeciderSpec(domain=domain,
                               task_list=str(uuid.uuid4()),
                               activity_tasks=[activity_task],
                               default_activity_task_list='floto_activities',
                               terminate_decider_after_completion=True)

    decider = floto.decider.Decider(decider_spec=decider_spec)

    workflow_args = {
        'domain': decider_spec.domain,
        'workflow_type_name': 'my_workflow_type',
        'workflow_type_version': 'v1',
        'task_list': decider_spec.task_list,
        'input': {
            'foo': 'bar'
        }
    }

    response = floto.api.Swf().start_workflow_execution(**workflow_args)

    print(30 * '-' + ' Running Test 06 ' + 30 * '-')
    decider.run()
    print(30 * '-' + ' Done Test 06    ' + 30 * '-')
    return get_fail_workflow_execution(decider.domain, response['runId'],
                                       'my_workflow_type_v1')
Ejemplo n.º 5
0
def test_02():
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    activity_task = ActivityTask(name='activity2', version='v4', retry_strategy=rs) 
    decider_spec = DeciderSpec(domain='floto_test',
                               task_list=str(uuid.uuid4()),
                               activity_tasks=[activity_task],
                               activity_task_list='floto_activities')

    decider = floto.decider.Decider(decider_spec=decider_spec)

    workflow_args = {'domain':decider_spec.domain,
                     'workflow_type_name':'my_workflow_type',
                     'workflow_type_version':'v1',
                     'task_list':decider_spec.task_list}

    response = floto.api.Swf().start_workflow_execution(**workflow_args)

    print(30*'-'+' Running Test 02 '+30*'-')
    decider.run()
    print(30*'-'+' Done Test 02    '+30*'-')
    return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')    
Ejemplo n.º 6
0
def test_01():
    rs = floto.specs.retry_strategy.InstantRetry(retries=2)
    activity_task_1 = ActivityTask(name='activity1', version='v5', retry_strategy=rs) 
    decider_spec = DeciderSpec(domain='floto_test',
                               task_list=str(uuid.uuid4()),
                               activity_tasks=[activity_task_1],
                               activity_task_list='floto_activities')

    decider = floto.decider.Decider(decider_spec=decider_spec)

    response = floto.api.Swf().start_workflow_execution(domain='floto_test', 
                                   workflow_type_name='my_workflow_type',
                                   workflow_type_version='v1',
                                   task_list=decider_spec.task_list,
                                   input={'foo':'bar'})
    run_id = response['runId']
    workflow_id = 'my_workflow_type_v1'

    print(30*'-'+' Running Test 01 '+30*'-')
    decider.run()
    print(30*'-'+' Done Test 01    '+30*'-')
    return get_result('floto_test', run_id, workflow_id)    
Ejemplo n.º 7
0
a3c = ActivityTask(
    domain=domain, name="demo_step3", version="v4", requires=[a1.id_], retry_strategy=rs, input={"start_val": 3}
)
a3d = ActivityTask(
    domain=domain, name="demo_step3", version="v4", requires=[a1.id_], retry_strategy=rs, input={"start_val": 2}
)

a3e = ActivityTask(
    domain=domain,
    name="demo_step3",
    version="v4",
    requires=[a1.id_, a2.id_, a3a.id_, a3b.id_, a3c.id_, a3d.id_],
    retry_strategy=rs,
    input={"start_val": 1},
)

decider_spec = DeciderSpec(
    domain="floto_test",
    task_list="demo_step_decisions",
    activity_tasks=[a1, a2, a3a, a3b, a3c, a3d, a3e],
    default_activity_task_list="demo_step_activities",
    terminate_decider_after_completion=True,
)

decider = floto.decider.Decider(decider_spec=decider_spec)

# ---------------------------------- #
# Start the decider
# ---------------------------------- #
decider.run()
Ejemplo n.º 8
0
################################################
### Create a task and the decider and run it ###
################################################

simple_task = floto.specs.task.ActivityTask(domain=domain,
                                            name='simple_activity',
                                            version='v1')
decider_spec = floto.specs.DeciderSpec(
    domain=domain,
    task_list='simple_decider',
    default_activity_task_list='hello_world_atl',
    terminate_decider_after_completion=True,
    activity_tasks=[simple_task])

decider = floto.decider.Decider(decider_spec=decider_spec)
decider.run(separate_process=True)

#############################################
### Create an activity and start a worker ###
#############################################


@floto.activity(domain=domain, name='simple_activity', version='v1')
def simple_activity():
    print('\nSimpleWorker: I\'m working!')
    for i in range(3):
        print('.')
        time.sleep(0.8)

    # Terminate the worker after first execution:
    print('I\'m done.')
Ejemplo n.º 9
0
 def run(self):
     decider = self.get_decider_from_spec_file(self.args.decider_spec)
     decider.run()
Ejemplo n.º 10
0
import floto
import logging
from floto.specs.task import ActivityTask, ChildWorkflow
from floto.specs import DeciderSpec
import floto.decider

logger = logging.getLogger(__name__)

decider_spec = DeciderSpec(domain='floto_test',
                           task_list='s3_files',
                           default_activity_task_list='s3_files_worker',
                           terminate_decider_after_completion=False)

decider = floto.decider.DynamicDecider(decider_spec=decider_spec)
decider.run(separate_process=True)

decider2 = floto.decider.DynamicDecider(decider_spec=decider_spec)
decider2.run(separate_process=True)
Ejemplo n.º 11
0
 def start_child_decider(self, decider_spec):
     decider = floto.decider.Decider(decider_spec=decider_spec)
     decider.run(separate_process=True)
Ejemplo n.º 12
0
 def run(self):
     decider = self.get_decider_from_spec_file(self.args.decider_spec)
     decider.run()
Ejemplo n.º 13
0
 def start_child_decider(self, decider_spec):
     decider = floto.decider.Decider(decider_spec=decider_spec)
     decider.run(separate_process=True)