Merge branch 'master' into 10259-cwl-pipeline-null
authorPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 17 Oct 2016 19:07:09 +0000 (15:07 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 17 Oct 2016 19:07:09 +0000 (15:07 -0400)
sdk/cli/bin/arv-run-pipeline-instance
sdk/cwl/arvados_cwl/arvjob.py
services/api/Gemfile
services/api/Gemfile.lock

index 6dc82c5a20b841b1aeb1400ecdaf7dd6c21d4ed5..bcb11d1d706d1fc6be68b340d0038daf6cc43266 100755 (executable)
@@ -364,22 +364,25 @@ class WhRunPipelineInstance
     @components.each do |componentname, component|
       component[:script_parameters].each do |parametername, parameter|
         parameter = { :value => parameter } unless parameter.is_a? Hash
-        value =
-          (params["#{componentname}::#{parametername}"] ||
-           parameter[:value] ||
-           (parameter[:output_of].nil? &&
-            (params[parametername.to_s] ||
-             parameter[:default])) ||
-           nil)
-        if value.nil? and
-            ![false,'false',0,'0'].index parameter[:required]
-          if parameter[:output_of]
-            if not @components[parameter[:output_of].intern]
-              errors << [componentname, parametername, "output_of refers to nonexistent component '#{parameter[:output_of]}'"]
-            end
-            next
+        if params.has_key?("#{componentname}::#{parametername}")
+          value = params["#{componentname}::#{parametername}"]
+        elsif parameter.has_key?(:value)
+          value = parameter[:value]
+        elsif parameter.has_key?(:output_of)
+          if !@components[parameter[:output_of].intern]
+            errors << [componentname, parametername, "output_of refers to nonexistent component '#{parameter[:output_of]}'"]
+          else
+            # value will be filled in later when the upstream
+            # component's output becomes known
           end
+          next
+        elsif params.has_key?(parametername.to_s)
+          value = params[parametername.to_s]
+        elsif parameter.has_key?(:default)
+          value = parameter[:default]
+        else
           errors << [componentname, parametername, "required parameter is missing"]
+          next
         end
         debuglog "parameter #{componentname}::#{parametername} == #{value}"
 
index 8269eeebdbd417ba908c8e6ca56e8535fd1ffcd9..a97453151b0568ab57f79ca5e30e932fa704d1fa 100644 (file)
@@ -257,7 +257,7 @@ class RunnerJob(Runner):
         job_spec = self.arvados_job_spec(*args, **kwargs)
 
         for k,v in job_spec["script_parameters"].items():
-            if isinstance(v, dict):
+            if v is False or v is None or isinstance(v, dict):
                 job_spec["script_parameters"][k] = {"value": v}
 
         self.arvrunner.pipeline = self.arvrunner.api.pipeline_instances().create(
index 5134fc4ce82d68bf4b00da91a4bedaa10e7f7e1e..9ec8eeddf6c335435ddd7579e1b868b23a0923e3 100644 (file)
@@ -73,7 +73,7 @@ gem 'faye-websocket'
 gem 'themes_for_rails'
 
 gem 'arvados', '>= 0.1.20150615153458'
-gem 'arvados-cli', '>= 0.1.20151207150126'
+gem 'arvados-cli', '>= 0.1.20161017181634'
 
 # pg_power lets us use partial indexes in schema.rb in Rails 3
 gem 'pg_power'
index 1fb4369c0eca56815d189b4a9c5bf7f87ab9e4ea..548dc20eb64eac8784b1398ea13868259b8b0630 100644 (file)
@@ -42,12 +42,12 @@ GEM
       i18n (~> 0)
       json (~> 1.7, >= 1.7.7)
       jwt (>= 0.1.5, < 2)
-    arvados-cli (0.1.20160503204200)
+    arvados-cli (0.1.20161017181634)
       activesupport (~> 3.2, >= 3.2.13)
       andand (~> 1.3, >= 1.3.3)
       arvados (~> 0.1, >= 0.1.20150128223554)
       curb (~> 0.8)
-      google-api-client (~> 0.6, >= 0.6.3, < 0.9)
+      google-api-client (~> 0.6, >= 0.6.3, < 0.8.9)
       json (~> 1.7, >= 1.7.7)
       oj (~> 2.0, >= 2.0.3)
       trollop (~> 2.0)
@@ -236,7 +236,7 @@ DEPENDENCIES
   acts_as_api
   andand
   arvados (>= 0.1.20150615153458)
-  arvados-cli (>= 0.1.20151207150126)
+  arvados-cli (>= 0.1.20161017181634)
   coffee-rails (~> 3.2.0)
   database_cleaner
   factory_girl_rails