From 1d21c439db952d7ce8ee75228e653453857d179b Mon Sep 17 00:00:00 2001 From: eterna2 Date: Fri, 5 Jul 2019 14:02:19 +0800 Subject: [PATCH] fix unit test --- sdk/python/kfp/dsl/_pipeline.py | 2 +- sdk/python/pipeline.yaml | 170 ++++++++++++++++++ .../compiler/testdata/ttl_after_finished.yaml | 28 +-- 3 files changed, 185 insertions(+), 15 deletions(-) create mode 100644 sdk/python/pipeline.yaml diff --git a/sdk/python/kfp/dsl/_pipeline.py b/sdk/python/kfp/dsl/_pipeline.py index 826a5390ee08..902fc0286f7c 100644 --- a/sdk/python/kfp/dsl/_pipeline.py +++ b/sdk/python/kfp/dsl/_pipeline.py @@ -57,7 +57,7 @@ class PipelineConf(): def __init__(self): self.image_pull_secrets = [] self.timeout = 0 - self.ttl_seconds_after_finished = None + self.ttl_seconds_after_finished = -1 self.artifact_location = None self.op_transformers = [] diff --git a/sdk/python/pipeline.yaml b/sdk/python/pipeline.yaml new file mode 100644 index 000000000000..c7d240ec804e --- /dev/null +++ b/sdk/python/pipeline.yaml @@ -0,0 +1,170 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: pipeline-flip-coin- +spec: + arguments: + parameters: [] + entrypoint: pipeline-flip-coin + serviceAccountName: pipeline-runner + templates: + - dag: + tasks: + - arguments: + parameters: + - name: flip-again-output + value: '{{tasks.flip-again.outputs.parameters.flip-again-output}}' + - name: flip-output + value: '{{inputs.parameters.flip-output}}' + dependencies: + - flip-again + name: condition-2 + template: condition-2 + when: '{{tasks.flip-again.outputs.parameters.flip-again-output}} == tails' + - arguments: + parameters: + - name: flip-output + value: '{{inputs.parameters.flip-output}}' + name: flip-again + template: flip-again + inputs: + parameters: + - name: flip-output + name: condition-1 + outputs: + parameters: + - name: flip-again-output + valueFrom: + parameter: '{{tasks.flip-again.outputs.parameters.flip-again-output}}' + - dag: + tasks: + - arguments: + parameters: + - name: flip-again-output + value: '{{inputs.parameters.flip-again-output}}' + - name: flip-output + value: '{{inputs.parameters.flip-output}}' + name: print1 + template: print1 + inputs: + parameters: + - name: flip-again-output + - name: flip-output + name: condition-2 + - dag: + tasks: + - arguments: + parameters: + - name: flip-again-output + value: '{{inputs.parameters.flip-again-output}}' + - name: flip-output + value: '{{inputs.parameters.flip-output}}' + name: print2 + template: print2 + inputs: + parameters: + - name: flip-again-output + - name: flip-output + name: condition-3 + - container: + args: + - python -c "import random; result = 'heads' if random.randint(0,1) == 0 else + 'tails'; print(result)" | tee /tmp/output + command: + - sh + - -c + image: python:alpine3.6 + name: flip + outputs: + artifacts: + - name: mlpipeline-ui-metadata + optional: true + path: /mlpipeline-ui-metadata.json + - name: mlpipeline-metrics + optional: true + path: /mlpipeline-metrics.json + parameters: + - name: flip-output + valueFrom: + path: /tmp/output + - container: + args: + - python -c "import random; result = 'heads' if random.randint(0,1) == 0 else + 'tails'; print(result)" | tee /tmp/output + command: + - sh + - -c + image: python:alpine3.6 + name: flip-again + outputs: + artifacts: + - name: mlpipeline-ui-metadata + optional: true + path: /mlpipeline-ui-metadata.json + - name: mlpipeline-metrics + optional: true + path: /mlpipeline-metrics.json + parameters: + - name: flip-again-output + valueFrom: + path: /tmp/output + - dag: + tasks: + - arguments: + parameters: + - name: flip-output + value: '{{tasks.flip.outputs.parameters.flip-output}}' + dependencies: + - flip + name: condition-1 + template: condition-1 + when: '{{tasks.flip.outputs.parameters.flip-output}} == heads' + - arguments: + parameters: + - name: flip-again-output + value: '{{tasks.condition-1.outputs.parameters.flip-again-output}}' + - name: flip-output + value: '{{tasks.flip.outputs.parameters.flip-output}}' + dependencies: + - condition-1 + - flip + name: condition-3 + template: condition-3 + when: '{{tasks.flip.outputs.parameters.flip-output}} == tails' + - name: flip + template: flip + name: pipeline-flip-coin + - container: + command: + - echo + - '{{inputs.parameters.flip-again-output}}' + image: alpine:3.6 + inputs: + parameters: + - name: flip-again-output + name: print1 + outputs: + artifacts: + - name: mlpipeline-ui-metadata + optional: true + path: /mlpipeline-ui-metadata.json + - name: mlpipeline-metrics + optional: true + path: /mlpipeline-metrics.json + - container: + command: + - echo + - '{{inputs.parameters.flip-again-output}}' + image: alpine:3.6 + inputs: + parameters: + - name: flip-again-output + name: print2 + outputs: + artifacts: + - name: mlpipeline-ui-metadata + optional: true + path: /mlpipeline-ui-metadata.json + - name: mlpipeline-metrics + optional: true + path: /mlpipeline-metrics.json diff --git a/sdk/python/tests/compiler/testdata/ttl_after_finished.yaml b/sdk/python/tests/compiler/testdata/ttl_after_finished.yaml index 8a7d902729a1..c9fd1f781a0f 100644 --- a/sdk/python/tests/compiler/testdata/ttl_after_finished.yaml +++ b/sdk/python/tests/compiler/testdata/ttl_after_finished.yaml @@ -6,10 +6,22 @@ spec: arguments: parameters: - name: message - entrypoint: save-most-frequent + entrypoint: gc-after-finished ttlSecondsAfterFinished: 86400 serviceAccountName: pipeline-runner templates: + - dag: + tasks: + - arguments: + parameters: + - name: message + value: '{{inputs.parameters.message}}' + name: get-frequent + template: get-frequent + inputs: + parameters: + - name: message + name: gc-after-finished - container: args: - python -c "from collections import Counter; words = Counter('{{inputs.parameters.message}}'.split()); @@ -33,16 +45,4 @@ spec: parameters: - name: get-frequent-word valueFrom: - path: /tmp/message.txt - - dag: - tasks: - - arguments: - parameters: - - name: message - value: '{{inputs.parameters.message}}' - name: get-frequent - template: get-frequent - inputs: - parameters: - - name: message - name: save-most-frequent + path: /tmp/message.txt \ No newline at end of file