Skip to content

Commit 600f7f0

Browse files
authored
feat: make workloads link navigate to aiml jobsets list (#624)
1 parent b288584 commit 600f7f0

File tree

3 files changed

+12
-61
lines changed

3 files changed

+12
-61
lines changed

src/xpk/commands/workload.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@
8484
from ..core.vertex import create_vertex_experiment
8585
from ..core.workload import (
8686
check_if_workload_exists,
87+
get_jobsets_list_gcp_link,
8788
get_workload_list,
88-
get_workload_list_gcp_link,
8989
wait_for_job_completion,
9090
zone_to_region,
9191
)
@@ -763,12 +763,7 @@ def workload_list(args) -> None:
763763
xpk_exit(return_code)
764764
xpk_print(f'Workload List Output:\n{return_value}')
765765

766-
workload_list_gcp_link = get_workload_list_gcp_link(
767-
project=args.project,
768-
cluster=args.cluster,
769-
zone=args.zone,
770-
job_name_filter=args.filter_by_job,
771-
)
766+
workload_list_gcp_link = get_jobsets_list_gcp_link(project=args.project)
772767
xpk_print(f'See your workloads in Cloud Console: {workload_list_gcp_link}')
773768

774769
xpk_exit(0)

src/xpk/core/tests/unit/test_workload.py

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,43 +14,15 @@
1414
limitations under the License.
1515
"""
1616

17-
from xpk.core.workload import get_workload_list_gcp_link
17+
from xpk.core.workload import get_jobsets_list_gcp_link
1818

19-
TEST_PROJECT = 'test-project'
20-
TEST_CLUSTER = 'test-cluster'
21-
TEST_ZONE = 'us-central1-c'
22-
LINK_WITHOUT_NAME_FILTER = 'https://console.cloud.google.com/kubernetes/workload/overview?project=test-project&pageState=(%22workload_list_table%22:(%22f%22:%22%255B%257B_22k_22_3A_22Cluster_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22test-cluster_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252Fname_22%257D_2C%257B_22k_22_3A_22Location_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22us-central1_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252FgcpLocation_22%257D_2C%257B_22k_22_3A_22Type_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Job_5C_22_22_2C_22i_22_3A_22type_meta%252FkindName_22%257D%255D%22))'
23-
LINK_WITH_NAME_FILTER = 'https://console.cloud.google.com/kubernetes/workload/overview?project=test-project&pageState=(%22workload_list_table%22:(%22f%22:%22%255B%257B_22k_22_3A_22Cluster_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22test-cluster_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252Fname_22%257D_2C%257B_22k_22_3A_22Location_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22us-central1_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252FgcpLocation_22%257D_2C%257B_22k_22_3A_22Type_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Job_5C_22_22_2C_22i_22_3A_22type_meta%252FkindName_22%257D_2C%257B_22k_22_3A_22Name_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22test-workload_5C_22_22_2C_22i_22_3A_22metadata%252Fname_22%257D%255D%22))'
2419

25-
26-
def test_get_workload_list_gcp_link_without_job_name_filter():
27-
result = get_workload_list_gcp_link(
28-
project=TEST_PROJECT,
29-
cluster=TEST_CLUSTER,
30-
zone=TEST_ZONE,
31-
job_name_filter=None,
32-
)
33-
34-
assert result == LINK_WITHOUT_NAME_FILTER
35-
36-
37-
def test_get_workload_list_gcp_link_with_job_name_filter():
38-
result = get_workload_list_gcp_link(
39-
project=TEST_PROJECT,
40-
cluster=TEST_CLUSTER,
41-
zone=TEST_ZONE,
42-
job_name_filter='test-workload',
20+
def test_get_jobsets_list_gcp_link():
21+
result = get_jobsets_list_gcp_link(
22+
project='test-project',
4323
)
4424

45-
assert result == LINK_WITH_NAME_FILTER
46-
47-
48-
def test_get_workload_list_gcp_link_with_invalid_job_name_filter():
49-
result = get_workload_list_gcp_link(
50-
project=TEST_PROJECT,
51-
cluster=TEST_CLUSTER,
52-
zone=TEST_ZONE,
53-
job_name_filter='test-workload.*',
25+
assert (
26+
result
27+
== 'https://console.cloud.google.com/kubernetes/aiml/deployments/jobs?project=test-project'
5428
)
55-
56-
assert result == LINK_WITHOUT_NAME_FILTER

src/xpk/core/workload.py

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -247,23 +247,7 @@ def wait_for_job_completion(args) -> int:
247247
"""Defines correct name prefix value (contains only letters, numbers and dashes) that can be used in GCP filter chips."""
248248

249249

250-
def get_workload_list_gcp_link(
251-
project: str,
252-
cluster: str,
253-
zone: str,
254-
job_name_filter: str | None,
255-
) -> str:
256-
"""Returns a link to Cloud Console Workloads list"""
257-
258-
filters_encoded = [
259-
f'%257B_22k_22_3A_22Cluster_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22{cluster}_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252Fname_22%257D',
260-
f'%257B_22k_22_3A_22Location_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22{zone_to_region(zone)}_5C_22_22_2C_22i_22_3A_22metadata%252FclusterReference%252FgcpLocation_22%257D',
261-
'%257B_22k_22_3A_22Type_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Job_5C_22_22_2C_22i_22_3A_22type_meta%252FkindName_22%257D',
262-
]
263-
if job_name_filter and GCP_NAME_FILTER_VALUE_REGEX.fullmatch(job_name_filter):
264-
filters_encoded.append(
265-
f'%257B_22k_22_3A_22Name_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22{job_name_filter}_5C_22_22_2C_22i_22_3A_22metadata%252Fname_22%257D'
266-
)
267-
filters_state = '_2C'.join(filters_encoded)
250+
def get_jobsets_list_gcp_link(project: str) -> str:
251+
"""Returns a link to Cloud Console JobSets list"""
268252

269-
return f'https://console.cloud.google.com/kubernetes/workload/overview?project={project}&pageState=(%22workload_list_table%22:(%22f%22:%22%255B{filters_state}%255D%22))'
253+
return f'https://console.cloud.google.com/kubernetes/aiml/deployments/jobs?project={project}'

0 commit comments

Comments
 (0)