X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4068171eb8ee0cb9fd57e10ff024e04464438891..03bee5d2ecc62b0fe7aaae67e8d5fffcdeeb4880:/apps/workbench/app/models/arvados_api_client.rb diff --git a/apps/workbench/app/models/arvados_api_client.rb b/apps/workbench/app/models/arvados_api_client.rb index 35d7526763..84735d9774 100644 --- a/apps/workbench/app/models/arvados_api_client.rb +++ b/apps/workbench/app/models/arvados_api_client.rb @@ -32,6 +32,9 @@ class ArvadosApiClient resources_kind = class_kind(resources_kind).pluralize if resources_kind.is_a? Class url = "#{self.arvados_v1_base}/#{resources_kind}#{action}" + # Clean up /arvados/v1/../../discovery/v1 to /discovery/v1 + url.sub! '/arvados/v1/../../', '/' + query = {"api_token" => api_token} if !data.nil? data.each do |k,v| @@ -77,7 +80,7 @@ class ArvadosApiClient if msg.status_code != 200 errors = resp[:errors] errors = errors.join("\n\n") if errors.is_a? Array - raise "API error #{msg.status_code}:\n\n#{errors}\n" + raise "#{errors} [API: #{msg.status_code}]" end if resp[:_profile] Rails.logger.info "API client: " \ @@ -138,6 +141,10 @@ class ArvadosApiClient @arvados_schema ||= api 'schema', '' end + def discovery + @discovery ||= api '../../discovery/v1/apis/arvados/v1/rest', '' + end + def kind_class(kind) kind.match(/^arvados\#(.+?)(_list|List)?$/)[1].pluralize.classify.constantize rescue nil end