"filters" is now propagated through from pipeline component to the job
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 3 Jul 2014 14:53:53 +0000 (10:53 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 3 Jul 2014 14:53:53 +0000 (10:53 -0400)
submission.  Also added example filter to documentation.  no issue #

doc/api/methods/jobs.html.textile.liquid
sdk/cli/bin/arv-run-pipeline-instance

index 879feb43afe4cac559edf92bdd6dfad66c59f68a..539a4a0d3ca747aa4f0e213c3b7132ec2bc95f05 100644 (file)
@@ -120,6 +120,26 @@ Arvados should re-use a previous job if the "script_version" of the previous job
 }
 </pre></notextile>
 
+The same behavior, using filters:
+
+<notextile><pre>
+{
+  "job": {
+    "script": "hash.py",
+    "repository": "<b>you</b>",
+    "script_version": "master",
+    "script_parameters": {
+      "input": "c1bad4b39ca5a924e481008009d94e32+210"
+    }
+  },
+  "filters": [["script", "=", "hash.py"],
+              ["repository", "=", "<b>you</b>"],
+              ["script_version", "in git", "earlier_version_tag"],
+              ["script_version", "not in git", "blacklisted_version_tag"]],
+  "find_or_create": true
+}
+</pre></notextile>
+
 Run the script "crunch_scripts/monte-carlo.py" in the repository "you" using the current "master" commit. Because it is marked as "nondeterministic", this job will not be considered as a suitable candidate for future job submissions that use the "find_or_create" feature.
 
 <notextile><pre>
index 8e26600ff119dbaa55e0fdf78c06156540198138..ed4fbd55f6a106c975cdd56ea18090500e317406 100755 (executable)
@@ -471,19 +471,13 @@ class WhRunPipelineInstance
             :output_is_persistent => c[:output_is_persistent] || false,
             :runtime_constraints => c[:runtime_constraints],
             :owner_uuid => owner_uuid,
-            # TODO: Delete the following three attributes when
-            # supporting pre-20140418 API servers is no longer
-            # important. New API servers take these as flags that
-            # control behavior of create, rather than job attributes.
-            :minimum_script_version => c[:minimum_script_version],
-            :exclude_script_versions => c[:exclude_minimum_script_versions],
-            :no_reuse => @options[:no_reuse] || c[:nondeterministic],
           }, {
             # This is the right place to put these attributes when
             # dealing with new API servers.
             :minimum_script_version => c[:minimum_script_version],
             :exclude_script_versions => c[:exclude_minimum_script_versions],
             :find_or_create => !(@options[:no_reuse] || c[:nondeterministic]),
+            :filters => c[:filters]
           })
           if job
             debuglog "component #{cname} new job #{job[:uuid]}"