Skip to content

Commit d20f874

Browse files
fix: Add missing cache proto field when converting to workflow pb (#192)
Signed-off-by: terrytangyuan <terrytangyuan@gmail.com>
1 parent 65f993f commit d20f874

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

couler/core/proto_repr.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def step_repr(
6262
secret=None,
6363
action=None,
6464
volume_mounts=None,
65+
cache=None,
6566
):
6667
assert step_name is not None
6768
assert tmpl_name is not None
@@ -80,6 +81,11 @@ def step_repr(
8081
pb_secret.key = k
8182
pb_secret.name = secret.name
8283

84+
if cache is not None:
85+
pb_step.cache.name = cache.name
86+
pb_step.cache.key = cache.key
87+
pb_step.cache.max_age = cache.max_age
88+
8389
# image can be None if manifest specified.
8490
if image is not None:
8591
pb_step.container_spec.image = image

couler/core/run_templates.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ def run_script(
188188
env=env,
189189
resources=resources,
190190
volume_mounts=volume_mounts,
191+
cache=cache,
191192
)
192193
proto_repr.add_deps_to_step(step_name)
193194
return rets
@@ -340,6 +341,7 @@ def run_container(
340341
resources=resources,
341342
secret=states.get_secret(secret),
342343
volume_mounts=volume_mounts,
344+
cache=cache,
343345
)
344346
proto_repr.add_deps_to_step(step_name)
345347
return rets
@@ -441,12 +443,15 @@ def run_job(
441443
action=action,
442444
success_cond=success_condition,
443445
failure_cond=failure_condition,
446+
cache=cache,
444447
)
445448
proto_repr.add_deps_to_step(step_name)
446449
return rets
447450

448451

449-
def run_canned_step(name, args, inputs=None, outputs=None, step_name=None):
452+
def run_canned_step(
453+
name, args, inputs=None, outputs=None, step_name=None, cache=None
454+
):
450455
func_name, caller_line = utils.invocation_location()
451456
func_name = (
452457
utils.argo_safe_name(step_name) if step_name is not None else func_name
@@ -457,6 +462,7 @@ def run_canned_step(name, args, inputs=None, outputs=None, step_name=None):
457462
tmpl_args = []
458463
if states._outputs_tmp is not None:
459464
tmpl_args.extend(states._outputs_tmp)
465+
pb_step = None
460466
if proto_repr:
461467
pb_step = proto_repr.step_repr( # noqa: F841
462468
input=inputs,
@@ -466,6 +472,7 @@ def run_canned_step(name, args, inputs=None, outputs=None, step_name=None):
466472
step_name=step_name,
467473
tmpl_name=step_name + "-tmpl",
468474
args=tmpl_args,
475+
cache=cache,
469476
)
470477
proto_repr.add_deps_to_step(step_name)
471478
return pb_step

couler/tests/proto_repr_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,18 @@ def echo():
3535
image="docker/whalesay:latest",
3636
source=echo,
3737
resources={"cpu": "2", "memory": "1Gi"},
38+
cache=couler.Cache(
39+
name="cache-name", key="cache-key", max_age="60s"
40+
),
3841
)
3942
proto_wf = get_default_proto_workflow()
4043
s = proto_wf.steps[0].steps[0]
4144
self.assertFalse(s.HasField("resource_spec"))
4245
self.assertEqual(s.script, '\nprint("echo")\n')
4346
self.assertEqual(s.container_spec.resources["cpu"], "2")
47+
self.assertEqual(s.cache.name, "cache-name")
48+
self.assertEqual(s.cache.key, "cache-key")
49+
self.assertEqual(s.cache.max_age, "60s")
4450

4551
def test_canned_step(self):
4652
couler.run_canned_step(name="test", args={"k1": "v1", "k2": "v2"})

0 commit comments

Comments
 (0)