arvados-cli 0.1.20131212092848 → 0.1.20131212114626

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/arv +79 -72
  3. data/bin/crunch-job +3 -3
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36df8ebef84cf051f379ac5a6a6b5af046c05f56
4
- data.tar.gz: 4ce7491264c103239c91fe32ce0ebebb0d2b65a2
3
+ metadata.gz: adcbf46744882d3627d04daacd2f17a21b63d3fd
4
+ data.tar.gz: de0e2824b4aaba2ab0889a72cd9518b7ee3da632
5
5
  SHA512:
6
- metadata.gz: d128b81c73238652be314df89814fad01ea2ed01af72d4707994480bcf45faa46ba549749b97df3debe6ff703b85022b35b584832ad3fa5153396d49a27a9428
7
- data.tar.gz: 403f2e4d70b2c565d22b07fbeca1a221ae6b77a72254cf10a6e90449aafb43714bc6613eeeab2baef42b1408c47cc2273415b3098cd109171e805e421d57a2ec
6
+ metadata.gz: 8a5e0ab558f868fe8000ec2fe9e3a101824f4b1345dc2042aab3f805fe619d7e886d66e9428810c4dbf761c759d0a53736ed13cb36f577fb971b054dc7115e42
7
+ data.tar.gz: 87fd23b7ad22fbbaad8f113c89b2069c4b9ee4d1561efa3e6f64b0354edde12c43c65cd9c16196e245a8d1f3d9d6a3c2004370439e4e1aeb093291fffc112ee8
data/bin/arv CHANGED
@@ -120,6 +120,47 @@ def to_boolean(s)
120
120
  !!(s =~ /^(true|t|yes|y|1)$/i)
121
121
  end
122
122
 
123
+ def help_methods(discovery_document, resource_arg, method=nil)
124
+ banner = "\n\n"
125
+ banner += "The #{resource_arg} resource type supports the following methods:"
126
+ banner += "\n\n"
127
+ discovery_document["resources"][resource_arg.pluralize]["methods"].
128
+ each do |k,v|
129
+ description = ''
130
+ description = ' ' + v["description"] if v.include?("description")
131
+ banner += " #{sprintf("%20s",k)}#{description}\n"
132
+ end
133
+ banner += "\n"
134
+ STDERR.puts banner
135
+
136
+ if not method.nil? and method != '--help' then
137
+ Trollop::die ("Unknown method #{method.inspect} " +
138
+ "for resource #{resource_arg.inspect}")
139
+ end
140
+ exit 255
141
+ end
142
+
143
+ def help_resources(discovery_document, resource_arg)
144
+ banner = "\n\n"
145
+ banner += "This Arvados instance supports the following resource types:"
146
+ banner += "\n\n"
147
+ discovery_document["resources"].each do |k,v|
148
+ description = ''
149
+ if discovery_document["schemas"].include?(k.singularize.capitalize) and
150
+ discovery_document["schemas"][k.singularize.capitalize].include?('description') then
151
+ description = ' ' + discovery_document["schemas"][k.singularize.capitalize]["description"]
152
+ end
153
+ banner += " #{sprintf("%30s",k.singularize)}#{description}\n"
154
+ end
155
+ banner += "\n"
156
+ STDERR.puts banner
157
+
158
+ if not resource_arg.nil? and resource_arg != '--help' then
159
+ Trollop::die "Unknown resource type #{resource_arg.inspect}"
160
+ end
161
+ exit 255
162
+ end
163
+
123
164
  def parse_arguments(discovery_document)
124
165
  resource_types = Array.new()
125
166
  resource_types << '--help'
@@ -138,85 +179,51 @@ def parse_arguments(discovery_document)
138
179
  stop_on resource_types
139
180
  end
140
181
 
141
- # get the subcommand
142
- resource_arg = ARGV.shift
143
- if resource_types.include?(resource_arg) and resource_arg != '--help' then
144
- # subcommand exists
145
- # Now see if the method supplied exists
146
- method = ARGV.shift
147
- if discovery_document["resources"][resource_arg.pluralize]["methods"].include?(method) then
148
- # method exists. Collect arguments.
149
- discovered_params = discovery_document["resources"][resource_arg.pluralize]["methods"][method]["parameters"]
150
- method_opts = Trollop::options do
151
- discovered_params.each do |k,v|
152
- opts = Hash.new()
153
- opts[:type] = v["type"].to_sym if v.include?("type")
154
- if [:datetime, :text, :object, :array].index opts[:type]
155
- opts[:type] = :string # else trollop bork
156
- end
157
- opts[:default] = v["default"] if v.include?("default")
158
- opts[:default] = v["default"].to_i if opts[:type] == :integer
159
- opts[:default] = to_boolean(v["default"]) if opts[:type] == :boolean
160
- opts[:required] = true if v.include?("required") and v["required"]
161
- description = ''
162
- description = ' ' + v["description"] if v.include?("description")
163
- opt k.to_sym, description, opts
164
- end
165
- body_object = discovery_document["resources"][resource_arg.pluralize]["methods"][method]["request"]
166
- if body_object and discovered_params[resource_arg].nil?
167
- is_required = true
168
- if body_object["required"] == false
169
- is_required = false
170
- end
171
- opt resource_arg.to_sym, "#{resource_arg} (request body)", required: is_required, type: :string
172
- end
173
- end
174
- discovered_params.each do |k,v|
175
- if ['object', 'array'].index(v["type"]) and method_opts.has_key? k
176
- method_opts[k] = JSON.parse method_opts[k]
177
- end
178
- end
179
- else
180
- banner = "\nThis resource type supports the following methods:\n\n"
181
- discovery_document["resources"][resource_arg.pluralize]["methods"].each do |k,v|
182
- description = ''
183
- description = ' ' + v["description"] if v.include?("description")
184
- banner += " #{sprintf("%20s",k)}#{description}\n"
185
- end
186
- banner += "\n"
182
+ resource = ARGV.shift
183
+ if resource == '--help' or not resource_types.include?(resource)
184
+ help_resources(discovery_document, resource)
185
+ end
187
186
 
188
- STDERR.puts banner
189
-
190
- if not method.nil? and method != '--help' then
191
- Trollop::die "Unknown method #{method.to_s} for command #{resource_arg.to_s}"
192
- else
193
- exit 255
194
- end
187
+ method = ARGV.shift
188
+ if not (discovery_document["resources"][resource.pluralize]["methods"].
189
+ include?(method))
190
+ help_methods(discovery_document, resource, method)
191
+ end
195
192
 
196
- end
197
-
198
- else
199
- banner = "\nThis Arvados instance supports the following resource types:\n\n"
200
- discovery_document["resources"].each do |k,v|
193
+ discovered_params = (discovery_document
194
+ ["resources"][resource.pluralize]
195
+ ["methods"][method]
196
+ ["parameters"])
197
+ method_opts = Trollop::options do
198
+ discovered_params.each do |k,v|
199
+ opts = Hash.new()
200
+ opts[:type] = v["type"].to_sym if v.include?("type")
201
+ if [:datetime, :text, :object, :array].index opts[:type]
202
+ opts[:type] = :string # else trollop bork
203
+ end
204
+ opts[:default] = v["default"] if v.include?("default")
205
+ opts[:default] = v["default"].to_i if opts[:type] == :integer
206
+ opts[:default] = to_boolean(v["default"]) if opts[:type] == :boolean
207
+ opts[:required] = true if v.include?("required") and v["required"]
201
208
  description = ''
202
- if discovery_document["schemas"].include?(k.singularize.capitalize) and
203
- discovery_document["schemas"][k.singularize.capitalize].include?('description') then
204
- description = ' ' + discovery_document["schemas"][k.singularize.capitalize]["description"]
209
+ description = ' ' + v["description"] if v.include?("description")
210
+ opt k.to_sym, description, opts
211
+ end
212
+ body_object = discovery_document["resources"][resource.pluralize]["methods"][method]["request"]
213
+ if body_object and discovered_params[resource].nil?
214
+ is_required = true
215
+ if body_object["required"] == false
216
+ is_required = false
205
217
  end
206
- banner += " #{sprintf("%30s",k.singularize)}#{description}\n"
218
+ opt resource.to_sym, "#{resource} (request body)", required: is_required, type: :string
207
219
  end
208
- banner += "\n"
209
-
210
- STDERR.puts banner
211
-
212
- if not resource_arg.nil? and resource_arg != '--help' then
213
- Trollop::die "Unknown resource type #{resource_arg.inspect}"
214
- else
215
- exit 255
220
+ end
221
+ discovered_params.each do |k,v|
222
+ if ['object', 'array'].index(v["type"]) and method_opts.has_key? k
223
+ method_opts[k] = JSON.parse method_opts[k]
216
224
  end
217
225
  end
218
-
219
- return resource_arg, method, method_opts, global_opts, ARGV
226
+ return resource, method, method_opts, global_opts, ARGV
220
227
  end
221
228
 
222
229
  resource_schema, method, method_opts, global_opts, remaining_opts = parse_arguments(arvados.discovery_document)
data/bin/crunch-job CHANGED
@@ -341,13 +341,13 @@ else
341
341
  Log (undef, "Install revision ".$Job->{script_version});
342
342
  my $nodelist = join(",", @node);
343
343
 
344
- # Clean out crunch_tmp/work, crunch_tmp/opt, crunch_tmp/src
344
+ # Clean out crunch_tmp/work, crunch_tmp/opt, crunch_tmp/src*
345
345
 
346
346
  my $cleanpid = fork();
347
347
  if ($cleanpid == 0)
348
348
  {
349
349
  srun (["srun", "--nodelist=$nodelist", "-D", $ENV{'TMPDIR'}],
350
- ['bash', '-c', 'if mount | grep -q $JOB_WORK/; then sudo /bin/umount $JOB_WORK/* 2>/dev/null; fi; sleep 1; rm -rf $JOB_WORK $CRUNCH_TMP/opt $CRUNCH_TMP/src']);
350
+ ['bash', '-c', 'if mount | grep -q $JOB_WORK/; then sudo /bin/umount $JOB_WORK/* 2>/dev/null; fi; sleep 1; rm -rf $JOB_WORK $CRUNCH_TMP/opt $CRUNCH_TMP/src*']);
351
351
  exit (1);
352
352
  }
353
353
  while (1)
@@ -1351,7 +1351,7 @@ my $repo = $ENV{"CRUNCH_SRC_URL"};
1351
1351
 
1352
1352
  open L, ">", "$destdir.lock" or die "$destdir.lock: $!";
1353
1353
  flock L, LOCK_EX;
1354
- if (readlink ("$destdir.commit") eq $commit) {
1354
+ if (readlink ("$destdir.commit") eq $commit && -d $destdir) {
1355
1355
  exit 0;
1356
1356
  }
1357
1357
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arvados-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20131212092848
4
+ version: 0.1.20131212114626
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arvados Authors
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: 2.0.3
97
- description: This is the Arvados SDK CLI gem, git revision 4a05680dd6991129385046ce646c32e1b595055a
97
+ description: This is the Arvados SDK CLI gem, git revision b0f21e25fac7bfc359c0c284805ef2723d7dcc72
98
98
  email: gem-dev@clinicalfuture.com
99
99
  executables:
100
100
  - arv