Exemple #1
0
    def test_build_policies_with_workflow_defaults(self):
        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB_WITH_DEFAULTS)
        wf_spec = wb_spec.get_workflows()['wf1']
        task_spec = wf_spec.get_tasks()['task1']

        arr = policies.build_policies(task_spec.get_policies(), wf_spec)

        self.assertEqual(4, len(arr))

        p = self._assert_single_item(arr, delay=3)

        self.assertIsInstance(p, policies.WaitBeforePolicy)

        p = self._assert_single_item(arr, delay=5)

        self.assertIsInstance(p, policies.WaitAfterPolicy)

        p = self._assert_single_item(arr, delay=1)

        self.assertIsInstance(p, policies.RetryPolicy)
        self.assertEqual(2, p.count)

        p = self._assert_single_item(arr, delay=7)

        self.assertIsInstance(p, policies.TimeoutPolicy)
Exemple #2
0
    def test_build_policies_with_workflow_defaults(self):
        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB_WITH_DEFAULTS)
        wf_spec = wb_spec.get_workflows()['wf1']
        task_spec = wf_spec.get_tasks()['task1']

        arr = policies.build_policies(task_spec.get_policies(), wf_spec)

        self.assertEqual(4, len(arr))

        p = self._assert_single_item(arr, delay=3)

        self.assertIsInstance(p, policies.WaitBeforePolicy)

        p = self._assert_single_item(arr, delay=5)

        self.assertIsInstance(p, policies.WaitAfterPolicy)

        p = self._assert_single_item(arr, delay=1)

        self.assertIsInstance(p, policies.RetryPolicy)
        self.assertEqual(2, p.count)

        p = self._assert_single_item(arr, delay=7)

        self.assertIsInstance(p, policies.TimeoutPolicy)
Exemple #3
0
def update_workbook_v2(definition, scope="private"):
    values = _get_workbook_values(spec_parser.get_workbook_spec_from_yaml(definition), definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.update_workbook(values["name"], values)

        _on_workbook_update(wb_db, values)

    return wb_db
Exemple #4
0
def update_workbook_v2(definition, scope='private'):
    values = _get_workbook_values(
        spec_parser.get_workbook_spec_from_yaml(definition), definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.update_workbook(values['name'], values)

        _on_workbook_update(wb_db, values)

    return wb_db
Exemple #5
0
def create_workbook_v2(definition, scope='private'):
    wb_spec = spec_parser.get_workbook_spec_from_yaml(definition)

    wb_values = _get_workbook_values(wb_spec, definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.create_workbook(wb_values)

        _on_workbook_update(wb_db, wb_spec)

    return wb_db
Exemple #6
0
def update_workbook_v2(definition, scope='private'):
    wb_spec = spec_parser.get_workbook_spec_from_yaml(definition)

    values = _get_workbook_values(wb_spec, definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.update_workbook(values['name'], values)

        _, db_wfs = _on_workbook_update(wb_db, wb_spec)

    return wb_db
Exemple #7
0
def create_workbook_v2(definition, scope='private'):
    wb_values = _get_workbook_values(
        spec_parser.get_workbook_spec_from_yaml(definition),
        definition,
        scope
    )

    with db_api_v2.transaction():
        wb_db = db_api_v2.create_workbook(wb_values)

        _on_workbook_update(wb_db, wb_values)

    return wb_db
Exemple #8
0
def update_workbook_v2(definition, scope='private'):
    wb_spec = spec_parser.get_workbook_spec_from_yaml(definition)

    values = _get_workbook_values(wb_spec, definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.update_workbook(values['name'], values)

        _, db_wfs = _on_workbook_update(wb_db, wb_spec)

    # Once transaction has committed we need to update specification cache.
    for db_wf, wf_spec in zip(db_wfs, wb_spec.get_workflows()):
        spec_parser.update_workflow_cache(db_wf.id, wf_spec)

    return wb_db
    def setUp(self):
        super(DirectWorkflowControllerTest, self).setUp()

        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB)

        wf_ex = models.WorkflowExecution()
        wf_ex.update({
            'id': '1-2-3-4',
            'spec': wb_spec.get_workflows().get('wf').to_dict(),
            'state': states.RUNNING
        })

        self.wf_ex = wf_ex
        self.wb_spec = wb_spec
        self.wf_ctrl = d_wf.DirectWorkflowController(wf_ex)
Exemple #10
0
def update_workbook_v2(definition, scope='private'):
    wb_spec = spec_parser.get_workbook_spec_from_yaml(definition)

    values = _get_workbook_values(wb_spec, definition, scope)

    with db_api_v2.transaction():
        wb_db = db_api_v2.update_workbook(values['name'], values)

        _, db_wfs = _on_workbook_update(wb_db, wb_spec)

    # Once transaction has committed we need to update specification cache.
    for db_wf, wf_spec in zip(db_wfs, wb_spec.get_workflows()):
        spec_parser.update_workflow_cache(db_wf.id, wf_spec)

    return wb_db
Exemple #11
0
    def setUp(self):
        super(ReverseWorkflowControllerTest, self).setUp()

        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB)

        wf_ex = models.WorkflowExecution(
            id='1-2-3-4',
            spec=wb_spec.get_workflows().get('wf').to_dict(),
            state=states.RUNNING,
            params={}
        )

        self.wf_ex = wf_ex
        self.wb_spec = wb_spec
        self.wf_ctrl = reverse_wf.ReverseWorkflowController(wf_ex)
Exemple #12
0
    def setUp(self):
        super(DirectWorkflowControllerTest, self).setUp()

        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB)

        wf_ex = models.WorkflowExecution()
        wf_ex.update({
            'id': '1-2-3-4',
            'spec': wb_spec.get_workflows().get('wf').to_dict(),
            'state': states.RUNNING
        })

        self.wf_ex = wf_ex
        self.wb_spec = wb_spec
        self.wf_ctrl = d_wf.DirectWorkflowController(wf_ex)
Exemple #13
0
    def setUp(self):
        super(ReverseWorkflowControllerTest, self).setUp()

        wb_service.create_workbook_v2(WB)

        wf_def = db_api.get_workflow_definitions()[0]

        wb_spec = spec_parser.get_workbook_spec_from_yaml(WB)

        wf_ex = models.WorkflowExecution(
            id='1-2-3-4',
            spec=wb_spec.get_workflows().get('wf').to_dict(),
            state=states.RUNNING,
            params={},
            workflow_id=wf_def.id)

        self.wf_ex = wf_ex
        self.wb_spec = wb_spec
Exemple #14
0
    def setUp(self):
        super(PoliciesTest, self).setUp()

        self.wb_spec = spec_parser.get_workbook_spec_from_yaml(WORKBOOK)
        self.wf_spec = self.wb_spec.get_workflows()['wf1']
        self.task_spec = self.wf_spec.get_tasks()['task1']
    def setUp(self):
        super(WorkflowResumeTest, self).setUp()

        self.wb_spec = spec_parser.get_workbook_spec_from_yaml(RESUME_WORKBOOK)
        self.wf_spec = self.wb_spec.get_workflows()['wf1']
Exemple #16
0
    def setUp(self):
        super(WorkflowResumeTest, self).setUp()

        self.wb_spec = spec_parser.get_workbook_spec_from_yaml(RESUME_WORKBOOK)
        self.wf_spec = self.wb_spec.get_workflows()['wf1']
Exemple #17
0
    def setUp(self):
        super(PoliciesTest, self).setUp()

        self.wb_spec = spec_parser.get_workbook_spec_from_yaml(WORKBOOK)
        self.wf_spec = self.wb_spec.get_workflows()['wf1']
        self.task_spec = self.wf_spec.get_tasks()['task1']
Exemple #18
0
    def setUp(self):
        super(ReverseWorkflowControllerTest, self).setUp()

        wb_service.create_workbook_v2(WB)

        self.wb_spec = spec_parser.get_workbook_spec_from_yaml(WB)