Fix sending resource body to server.
[arvados.git] / sdk / cli / bin / arv
index 63dfa4f4b3b00f5209682639656a34047191e238..4db95c846f982b368655f45f1eb0e8597c98d270 100755 (executable)
@@ -20,7 +20,7 @@ if File.exist? config_file then
     if line.match('^\s*#') then
       next
     end
-    var, val = line.split('=', 2)
+    var, val = line.chomp.split('=', 2)
     # allow environment settings to override config files.
     if var and val
       ENV[var] ||= val
@@ -62,15 +62,7 @@ when 'pipeline'
   abort
 when 'tag'
   ARGV.shift
-  @sub = ARGV.shift
-  if ['add', 'remove'].index @sub then
-    exec `which arv-tag`.strip, *ARGV
-  else
-    $stderr.puts "Usage: \n" +
-      "#{$0} tag add tag1 [tag2 ...] --objects object_uuid1 [object_uuid2...]\n" +
-      "#{$0} tag remove tag1 [tag2 ...] --objects object_uuid1 [object_uuid2...]\n" +
-      "#{$0} tag remove --all\n"
-  end
+  exec `which arv-tag`.strip, *ARGV
 end
 
 ENV['ARVADOS_API_VERSION'] ||= 'v1'
@@ -259,7 +251,7 @@ def parse_arguments(discovery_document)
   discovered_params.each do |k,v|
     k = k.to_sym
     if ['object', 'array'].index(v["type"]) and method_opts.has_key? k
-      if method_opts[k].match /^\//
+      if method_opts[k].andand.match /^\//
         method_opts[k] = File.open method_opts[k], 'rb' do |f| f.read end
       end
     end
@@ -283,7 +275,7 @@ request_parameters = {}.merge(method_opts)
 resource_body = request_parameters.delete(resource_schema.to_sym)
 if resource_body
   request_body = {
-    resource_schema => JSON.parse(resource_body)
+    resource_schema => resource_body
   }
 else
   request_body = {}
@@ -314,6 +306,7 @@ when
   exit 0
 else
   request_body[:api_token] = ENV['ARVADOS_API_TOKEN']
+  request_body[:_profile] = true
   result = client.execute(:api_method => eval(api_method),
                           :parameters => request_parameters,
                           :body => request_body,