File tree 2 files changed +45
-1
lines changed
2 files changed +45
-1
lines changed Original file line number Diff line number Diff line change @@ -655,6 +655,15 @@ def gca_resource(self) -> proto.Message:
655
655
self ._assert_gca_resource_is_available ()
656
656
return self ._gca_resource
657
657
658
+ @property
659
+ def _resource_is_available (self ) -> bool :
660
+ """Returns True if GCA resource has been created and is available, otherwise False"""
661
+ try :
662
+ self ._assert_gca_resource_is_available ()
663
+ return True
664
+ except RuntimeError :
665
+ return False
666
+
658
667
def _assert_gca_resource_is_available (self ) -> None :
659
668
"""Helper method to raise when property is not accessible.
660
669
@@ -1153,7 +1162,7 @@ def delete(self, sync: bool = True) -> None:
1153
1162
_LOGGER .log_action_completed_against_resource ("deleted." , "" , self )
1154
1163
1155
1164
def __repr__ (self ) -> str :
1156
- if self ._gca_resource :
1165
+ if self ._gca_resource and self . _resource_is_available :
1157
1166
return VertexAiResourceNoun .__repr__ (self )
1158
1167
1159
1168
return FutureManager .__repr__ (self )
Original file line number Diff line number Diff line change @@ -661,3 +661,38 @@ def test_create_from_local_script_with_all_args(
661
661
assert (
662
662
job ._gca_resource .state == gca_job_state_compat .JobState .JOB_STATE_SUCCEEDED
663
663
)
664
+
665
+ @pytest .mark .usefixtures ("get_custom_job_mock" , "create_custom_job_mock" )
666
+ def test_check_custom_job_availability (self ):
667
+ aiplatform .init (
668
+ project = _TEST_PROJECT ,
669
+ location = _TEST_LOCATION ,
670
+ staging_bucket = _TEST_STAGING_BUCKET ,
671
+ encryption_spec_key_name = _TEST_DEFAULT_ENCRYPTION_KEY_NAME ,
672
+ )
673
+
674
+ job = aiplatform .CustomJob (
675
+ display_name = _TEST_DISPLAY_NAME ,
676
+ worker_pool_specs = _TEST_WORKER_POOL_SPEC ,
677
+ base_output_dir = _TEST_BASE_OUTPUT_DIR ,
678
+ labels = _TEST_LABELS ,
679
+ )
680
+
681
+ assert not job ._resource_is_available
682
+ assert job .__repr__ ().startswith (
683
+ "<google.cloud.aiplatform.jobs.CustomJob object"
684
+ )
685
+
686
+ job .run (
687
+ service_account = _TEST_SERVICE_ACCOUNT ,
688
+ network = _TEST_NETWORK ,
689
+ timeout = _TEST_TIMEOUT ,
690
+ restart_job_on_worker_restart = _TEST_RESTART_JOB_ON_WORKER_RESTART ,
691
+ )
692
+
693
+ job .wait_for_resource_creation ()
694
+
695
+ assert job ._resource_is_available
696
+ assert "resource name" in job .__repr__ ()
697
+
698
+ job .wait ()
You can’t perform that action at this time.
0 commit comments