[ARVADOS] created: ec4b4354210648ae8220dee666b85e155d314630

Git user git at public.curoverse.com
Mon Oct 17 14:12:51 EDT 2016


        at  ec4b4354210648ae8220dee666b85e155d314630 (commit)


commit ec4b4354210648ae8220dee666b85e155d314630
Author: Tom Clegg <tom at curoverse.com>
Date:   Fri Oct 14 17:12:51 2016 -0400

    3486: Accept false and nil/null as parameter values, and avoid translating nil to false.
    10259: Update Gemfile to more recent arvados-cli to get a-r-p-i with bugfix #3486

diff --git a/sdk/cli/bin/arv-run-pipeline-instance b/sdk/cli/bin/arv-run-pipeline-instance
index 6dc82c5..bcb11d1 100755
--- a/sdk/cli/bin/arv-run-pipeline-instance
+++ b/sdk/cli/bin/arv-run-pipeline-instance
@@ -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}"
 
diff --git a/services/api/Gemfile b/services/api/Gemfile
index 5134fc4..39cbfb6 100644
--- a/services/api/Gemfile
+++ b/services/api/Gemfile
@@ -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.20161017180113'
 
 # pg_power lets us use partial indexes in schema.rb in Rails 3
 gem 'pg_power'
diff --git a/services/api/Gemfile.lock b/services/api/Gemfile.lock
index 1fb4369..196f342 100644
--- a/services/api/Gemfile.lock
+++ b/services/api/Gemfile.lock
@@ -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.20161017180113)
       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.20161017180113)
   coffee-rails (~> 3.2.0)
   database_cleaner
   factory_girl_rails

commit a29af1076a5194e90417434b150680f41f290833
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Mon Oct 17 10:47:43 2016 -0400

    10259: When creating pipeline to be managed by a-r-p-i, wrap value in dict for
    false and null as well.

diff --git a/sdk/cwl/arvados_cwl/arvjob.py b/sdk/cwl/arvados_cwl/arvjob.py
index 8269eee..a974531 100644
--- a/sdk/cwl/arvados_cwl/arvjob.py
+++ b/sdk/cwl/arvados_cwl/arvjob.py
@@ -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(

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list