7272_TEST_PIPELINE_JOB_SCHEDULE_CRON = "* * * * *"
7373_TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT = 1
7474_TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT = 2
75+ _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT = 10
7576
7677_TEST_UPDATED_PIPELINE_JOB_SCHEDULE_CRON = "1 1 1 1 1"
7778_TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT = 5
79+ _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT = 3
7880
7981_TEST_TEMPLATE_PATH = f"gs://{ _TEST_GCS_BUCKET_NAME } /job_spec.json"
8082_TEST_AR_TEMPLATE_PATH = "https://us-central1-kfp.pkg.dev/proj/repo/pack/latest"
@@ -472,6 +474,7 @@ def test_call_preview_schedule_service_create(
472474 cron_expression = _TEST_PIPELINE_JOB_SCHEDULE_CRON ,
473475 max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
474476 max_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
477+ max_concurrent_active_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
475478 service_account = _TEST_SERVICE_ACCOUNT ,
476479 network = _TEST_NETWORK ,
477480 create_request_timeout = None ,
@@ -494,6 +497,7 @@ def test_call_preview_schedule_service_create(
494497 cron = _TEST_PIPELINE_JOB_SCHEDULE_CRON ,
495498 max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
496499 max_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
500+ max_concurrent_active_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
497501 create_pipeline_job_request = {
498502 "parent" : _TEST_PARENT ,
499503 "pipeline_job" : {
@@ -555,6 +559,7 @@ def test_call_schedule_service_create(
555559 cron = _TEST_PIPELINE_JOB_SCHEDULE_CRON ,
556560 max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
557561 max_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
562+ max_concurrent_active_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
558563 service_account = _TEST_SERVICE_ACCOUNT ,
559564 network = _TEST_NETWORK ,
560565 create_request_timeout = None ,
@@ -577,6 +582,7 @@ def test_call_schedule_service_create(
577582 cron = _TEST_PIPELINE_JOB_SCHEDULE_CRON ,
578583 max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
579584 max_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
585+ max_concurrent_active_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
580586 create_pipeline_job_request = {
581587 "parent" : _TEST_PARENT ,
582588 "pipeline_job" : {
@@ -1947,6 +1953,7 @@ def test_call_schedule_service_update(
19471953 pipeline_job_schedule .update (
19481954 cron = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_CRON ,
19491955 max_run_count = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
1956+ max_concurrent_active_run_count = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
19501957 )
19511958
19521959 expected_gapic_pipeline_job_schedule = gca_schedule .Schedule (
@@ -1956,6 +1963,7 @@ def test_call_schedule_service_update(
19561963 cron = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_CRON ,
19571964 max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
19581965 max_run_count = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
1966+ max_concurrent_active_run_count = _TEST_UPDATED_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
19591967 create_pipeline_job_request = _TEST_CREATE_PIPELINE_JOB_REQUEST ,
19601968 )
19611969 assert (
@@ -2268,3 +2276,56 @@ def test_get_allow_queueing_before_create(
22682276 )
22692277
22702278 pipeline_job_schedule .allow_queueing
2279+
2280+ @pytest .mark .parametrize (
2281+ "job_spec" ,
2282+ [_TEST_PIPELINE_SPEC_JSON , _TEST_PIPELINE_SPEC_YAML , _TEST_PIPELINE_JOB ],
2283+ )
2284+ def test_get_max_concurrent_active_run_count_before_create (
2285+ self ,
2286+ mock_schedule_service_create ,
2287+ mock_schedule_service_get ,
2288+ mock_schedule_bucket_exists ,
2289+ job_spec ,
2290+ mock_load_yaml_and_json ,
2291+ ):
2292+ """Gets the PipelineJobSchedule max_concurrent_active_run_count before creating.
2293+
2294+ Raises error because PipelineJobSchedule should be created first.
2295+ """
2296+ aiplatform .init (
2297+ project = _TEST_PROJECT ,
2298+ staging_bucket = _TEST_GCS_BUCKET_NAME ,
2299+ location = _TEST_LOCATION ,
2300+ credentials = _TEST_CREDENTIALS ,
2301+ )
2302+
2303+ job = pipeline_jobs .PipelineJob (
2304+ display_name = _TEST_PIPELINE_JOB_DISPLAY_NAME ,
2305+ template_path = _TEST_TEMPLATE_PATH ,
2306+ parameter_values = _TEST_PIPELINE_PARAMETER_VALUES ,
2307+ input_artifacts = _TEST_PIPELINE_INPUT_ARTIFACTS ,
2308+ enable_caching = True ,
2309+ )
2310+
2311+ pipeline_job_schedule = pipeline_job_schedules .PipelineJobSchedule (
2312+ pipeline_job = job ,
2313+ display_name = _TEST_PIPELINE_JOB_SCHEDULE_DISPLAY_NAME ,
2314+ )
2315+
2316+ with pytest .raises (RuntimeError ) as e :
2317+ pipeline_job_schedule .max_concurrent_active_run_count
2318+
2319+ assert e .match (regexp = r"PipelineJobSchedule resource has not been created." )
2320+
2321+ pipeline_job_schedule .create (
2322+ cron = _TEST_PIPELINE_JOB_SCHEDULE_CRON ,
2323+ max_concurrent_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_RUN_COUNT ,
2324+ max_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_RUN_COUNT ,
2325+ max_concurrent_active_run_count = _TEST_PIPELINE_JOB_SCHEDULE_MAX_CONCURRENT_ACTIVE_RUN_COUNT ,
2326+ service_account = _TEST_SERVICE_ACCOUNT ,
2327+ network = _TEST_NETWORK ,
2328+ create_request_timeout = None ,
2329+ )
2330+
2331+ pipeline_job_schedule .max_concurrent_active_run_count
0 commit comments