Skip to content

Commit 8560485

Browse files
authored
Merge branch 'develop' into backoff-retry
2 parents b258e7d + 4f66276 commit 8560485

File tree

3 files changed

+141
-11
lines changed

3 files changed

+141
-11
lines changed

src/xpk/parser/cluster.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,7 @@ def set_cluster_create_parser(cluster_create_parser: ArgumentParser):
143143
' enable cluster to accept Pathways workloads.'
144144
),
145145
)
146-
if FeatureFlags.SUB_SLICING_ENABLED:
147-
cluster_create_optional_arguments.add_argument(
148-
'--sub-slicing',
149-
action='store_true',
150-
help='Whether to set up cluster to support sub-slicing',
151-
)
146+
add_sub_slicing_arguments(cluster_create_optional_arguments)
152147

153148
autoprovisioning_arguments = cluster_create_parser.add_argument_group(
154149
'Autoprovisioning Arguments',
@@ -221,6 +216,7 @@ def set_cluster_create_pathways_parser(
221216
add_shared_cluster_create_optional_arguments(
222217
cluster_create_pathways_optional_arguments
223218
)
219+
add_sub_slicing_arguments(cluster_create_pathways_optional_arguments)
224220

225221
autoprovisioning_arguments = (
226222
cluster_create_pathways_parser.add_argument_group(
@@ -350,7 +346,9 @@ def set_cluster_create_ray_parser(cluster_create_ray_parser: ArgumentParser):
350346
)
351347
add_resource_limits(cluster_create_resource_limits)
352348

353-
cluster_create_ray_parser.set_defaults(func=cluster_create_ray_cluster)
349+
cluster_create_ray_parser.set_defaults(
350+
func=cluster_create_ray_cluster, sub_slicing=False
351+
)
354352

355353

356354
def set_cluster_delete_parser(cluster_delete_parser: ArgumentParser):
@@ -567,6 +565,15 @@ def set_cluster_adapt_parser(cluster_adapt_parser: ArgumentParser):
567565
cluster_adapt_parser.set_defaults(func=cluster_adapt)
568566

569567

568+
def add_sub_slicing_arguments(parser_or_group: ParserOrArgumentGroup):
569+
if FeatureFlags.SUB_SLICING_ENABLED:
570+
parser_or_group.add_argument(
571+
'--sub-slicing',
572+
action='store_true',
573+
help='Whether to set up cluster to support sub-slicing',
574+
)
575+
576+
570577
def add_autoprovisioning_arguments(parser_or_group: ParserOrArgumentGroup):
571578
parser_or_group.add_argument(
572579
'--enable-autoprovisioning',

src/xpk/parser/cluster_test.py

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"""
1616

1717
import argparse
18-
from xpk.parser.cluster import set_cluster_create_parser
18+
from xpk.parser.cluster import set_cluster_create_parser, set_cluster_create_pathways_parser, set_cluster_create_ray_parser
1919
import pytest
2020
from ..utils.feature_flags import FeatureFlags
2121

@@ -64,3 +64,69 @@ def test_cluster_create_sub_slicing_can_be_set():
6464
)
6565

6666
assert args.sub_slicing is True
67+
68+
69+
def test_cluster_create_pathways_sub_slicing_is_hidden_with_flag_off():
70+
FeatureFlags.SUB_SLICING_ENABLED = False
71+
parser = argparse.ArgumentParser()
72+
73+
set_cluster_create_pathways_parser(parser)
74+
help_str = parser.format_help()
75+
76+
assert "--sub-slicing" not in help_str
77+
78+
79+
def test_cluster_create_pathways_sub_slicing_is_shown_with_flag_on():
80+
parser = argparse.ArgumentParser()
81+
82+
set_cluster_create_pathways_parser(parser)
83+
help_str = parser.format_help()
84+
85+
assert "--sub-slicing" in help_str
86+
87+
88+
def test_cluster_create_pathways_sub_slicing_is_false_by_default():
89+
parser = argparse.ArgumentParser()
90+
91+
set_cluster_create_pathways_parser(parser)
92+
args = parser.parse_args(
93+
["--cluster", "test-cluster", "--tpu-type", "test-tpu"]
94+
)
95+
96+
assert args.sub_slicing is False
97+
98+
99+
def test_cluster_create_pathways_sub_slicing_can_be_set():
100+
parser = argparse.ArgumentParser()
101+
102+
set_cluster_create_pathways_parser(parser)
103+
args = parser.parse_args(
104+
["--cluster", "test-cluster", "--tpu-type", "test-tpu", "--sub-slicing"]
105+
)
106+
107+
assert args.sub_slicing is True
108+
109+
110+
def test_cluster_create_ray_sub_slicing_is_hidden():
111+
parser = argparse.ArgumentParser()
112+
113+
set_cluster_create_ray_parser(parser)
114+
help_str = parser.format_help()
115+
116+
assert "--sub-slicing" not in help_str
117+
118+
119+
def test_cluster_create_ray_sub_slicing_is_false():
120+
parser = argparse.ArgumentParser()
121+
122+
set_cluster_create_ray_parser(parser)
123+
args = parser.parse_args([
124+
"--cluster",
125+
"test-cluster",
126+
"--tpu-type",
127+
"test-tpu",
128+
"--ray-version",
129+
"1.0.0",
130+
])
131+
132+
assert args.sub_slicing is False

src/xpk/parser/workload_test.py

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"""
1616

1717
import argparse
18-
from xpk.parser.workload import set_workload_create_parser
18+
from xpk.parser.workload import set_workload_create_parser, set_workload_create_pathways_parser
1919
from ..utils.feature_flags import FeatureFlags
2020
import pytest
2121

@@ -32,7 +32,7 @@ def test_workload_create_sub_slicing_topology_is_hidden_with_flag_off():
3232
set_workload_create_parser(parser)
3333
help_str = parser.format_help()
3434

35-
assert "--sub-slicing" not in help_str
35+
assert "--sub-slicing-topology" not in help_str
3636

3737

3838
def test_workload_create_sub_slicing_topology_is_shown_with_flag_on():
@@ -41,7 +41,7 @@ def test_workload_create_sub_slicing_topology_is_shown_with_flag_on():
4141
set_workload_create_parser(parser)
4242
help_str = parser.format_help()
4343

44-
assert "--sub-slicing" in help_str
44+
assert "--sub-slicing-topology" in help_str
4545

4646

4747
def test_workload_create_sub_slicing_topology_is_none_by_default():
@@ -80,3 +80,60 @@ def test_workload_create_sub_slicing_topology_can_be_set():
8080
])
8181

8282
assert args.sub_slicing_topology is "2x2"
83+
84+
85+
def test_workload_create_pathways_sub_slicing_topology_is_hidden_with_flag_off():
86+
FeatureFlags.SUB_SLICING_ENABLED = False
87+
parser = argparse.ArgumentParser()
88+
89+
set_workload_create_pathways_parser(parser)
90+
help_str = parser.format_help()
91+
92+
assert "--sub-slicing-topology" not in help_str
93+
94+
95+
def test_workload_create_pathways_sub_slicing_topology_is_shown_with_flag_on():
96+
parser = argparse.ArgumentParser()
97+
98+
set_workload_create_pathways_parser(parser)
99+
help_str = parser.format_help()
100+
101+
assert "--sub-slicing-topology" in help_str
102+
103+
104+
def test_workload_create_pathways_sub_slicing_topology_is_none_by_default():
105+
parser = argparse.ArgumentParser()
106+
107+
set_workload_create_pathways_parser(parser)
108+
args = parser.parse_args([
109+
"--cluster",
110+
"test-cluster",
111+
"--command",
112+
"python3",
113+
"--workload",
114+
"test",
115+
"--tpu-type",
116+
"test-tpu",
117+
])
118+
119+
assert args.sub_slicing_topology is None
120+
121+
122+
def test_workload_create_pathways_sub_slicing_topology_can_be_set():
123+
parser = argparse.ArgumentParser()
124+
125+
set_workload_create_pathways_parser(parser)
126+
args = parser.parse_args([
127+
"--cluster",
128+
"test-cluster",
129+
"--command",
130+
"python3",
131+
"--workload",
132+
"test",
133+
"--tpu-type",
134+
"test-tpu",
135+
"--sub-slicing-topology",
136+
"2x2",
137+
])
138+
139+
assert args.sub_slicing_topology is "2x2"

0 commit comments

Comments
 (0)