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)