- tmp = Tempfile.new(["", ".#{global_opts[:format]}"])
- tmp.write(content)
- tmp.close
-
- newobj = run_editor tmp, global_opts
-
- begin
- api_method = 'arvados.' + rsc + '.create'
- dumped = Oj.dump(newobj)
-
- result = client.execute(:api_method => eval(api_method),
- :body_object => newobj,
- :authenticated => false,
- :headers => {
- authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
- })
-
- begin
- results = JSON.parse result.body
- rescue JSON::ParserError => e
- arv_edit_save_tmp tmp
- abort "Failed to parse server response:\n" + e.to_s
- end
-
- if result.response.status != 200
- puts "Create failed. Server responded #{result.response.status}: #{results['errors']} "
- puts "Create body was:"
- puts dumped
- arv_edit_save_tmp tmp
- abort
- end
-
- begin
- puts "Created object #{results['uuid']}"
- rescue
- arv_edit_save_tmp tmp
- abort "Unexpected response:\n#{results}"
- end
- ensure
- tmp.close(true)
+ edit_and_commit_object initial_obj, "", global_opts do |newobj|
+ result = client.execute(:api_method => eval('arvados.' + rsc + '.create'),
+ :parameters => method_opts,
+ :body_object => {object_type => newobj},
+ :authenticated => false,
+ :headers => {
+ authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
+ })
+ results = check_response result
+ puts "Created object #{results['uuid']}"