def test_user_define_control_dependency(self):
     print(sys._getframe().f_code.co_name)
     trigger = af.external_trigger(name='stream_trigger')
     job_config = af.BaseJobConfig('local', 'cmd_line')
     job_config.job_name = 'test_cmd'
     with af.config(job_config):
         cmd_executor = af.user_define_operation(
             output_num=0,
             executor=CmdExecutor(
                 cmd_line="echo 'hello world' && sleep {}".format(1)))
     af.user_define_control_dependency(
         src=cmd_executor,
         dependency=trigger,
         event_key='key',
         event_value='value',
         event_type='name',
         condition=MetCondition.NECESSARY,
         action=TaskAction.START,
         life=EventLife.ONCE,
         value_condition=MetValueCondition.UPDATE)
     workflow_id = af.submit_ai_flow()
     af.get_ai_flow_client().publish_event('key', 'value1', 'name')
     time.sleep(5)
     af.get_ai_flow_client().publish_event('key', 'value2', 'name')
     time.sleep(10)
     af.stop_execution_by_id(workflow_id)
     res = af.get_ai_flow_client().list_job(5, 0)
     self.assertEqual(3, len(res))
 def test_stop_workflow_execution(self):
     print(sys._getframe().f_code.co_name)
     TestProject.build_ai_graph(5)
     exec_id = af.submit_ai_flow()
     self.assertGreater(exec_id, 0,
                        "workflow execution id must greater than 0")
     time.sleep(3)
     res = af.stop_execution_by_id(exec_id)
     self.assertEqual(0, res[0])
 def test_project_register(self):
     print(sys._getframe().f_code.co_name)
     TestProject.build_ai_graph(1)
     af.register_example(name="a",
                         support_type=af.ExampleSupportType.EXAMPLE_BOTH)
     w_id = af.submit_ai_flow()
     res = af.wait_workflow_execution_finished(w_id)
     self.assertEqual(0, res)
     e_meta = af.get_example_by_name("a")
     self.assertEqual("a", e_meta.name)
 def test_periodic_job(self):
     print(sys._getframe().f_code.co_name)
     periodic_config = PeriodicConfig(periodic_type='interval',
                                      args={'seconds': 5})
     job_config = af.BaseJobConfig(platform='local', engine='cmd_line')
     job_config.job_name = 'test_periodic'
     job_config.periodic_config = periodic_config
     with af.config(job_config):
         af.user_define_operation(executor=af.CmdExecutor(
             cmd_line="echo 'hello world!'"))
     workflow_id = af.submit_ai_flow()
     time.sleep(10)
     af.stop_execution_by_id(workflow_id)
    def test_stream_with_external_trigger_with_model_control(self):
        print(sys._getframe().f_code.co_name)
        model_name = 'test_create_model_version'
        model_desc = 'test create model version'
        response = af.register_model(model_name=model_name,
                                     model_type=af.ModelType.CHECKPOINT,
                                     model_desc=model_desc)

        trigger = af.external_trigger(name='stream_trigger')
        job_config = af.BaseJobConfig('local', 'cmd_line')
        job_config.job_name = 'test_cmd'
        with af.config(job_config):
            cmd_executor = af.user_define_operation(
                output_num=0,
                executor=CmdExecutor(
                    cmd_line="echo 'hello world' && sleep {}".format(1)))
        af.model_version_control_dependency(
            src=cmd_executor,
            dependency=trigger,
            model_name=model_name,
            model_version_event_type='MODEL_DEPLOYED')
        workflow_id = af.submit_ai_flow()

        model_path1 = 'fs://source1.pkl'
        model_metric1 = 'http://metric1'
        model_flavor1 = '{"flavor.version":1}'
        version_desc1 = 'test create model version1'
        time.sleep(1)
        response = af.register_model_version(
            model=model_name,
            model_path=model_path1,
            model_metric=model_metric1,
            model_flavor=model_flavor1,
            version_desc=version_desc1,
            current_stage=af.ModelVersionStage.DEPLOYED)
        time.sleep(5)
        response = af.register_model_version(
            model=model_name,
            model_path=model_path1,
            model_metric=model_metric1,
            model_flavor=model_flavor1,
            version_desc=version_desc1,
            current_stage=af.ModelVersionStage.DEPLOYED)
        time.sleep(10)
        af.stop_execution_by_id(workflow_id)
        res = af.get_ai_flow_client().list_job(5, 0)
        self.assertEqual(3, len(res))
 def test_run_project(self):
     print(sys._getframe().f_code.co_name)
     TestProject.build_ai_graph(1)
     workflow_id = af.submit_ai_flow()
     res = af.wait_workflow_execution_finished(workflow_id)
     self.assertEqual(0, res)