Merge branch 'master' into origin-8019-crunchrun-log-throttle
[arvados.git] / services / api / app / controllers / arvados / v1 / schema_controller.rb
index a2f5c182096fb5ad866366bd71b8a0a370cb30d6..e1f4ca5770403e1eb9164ed41d59e807ed1cc551 100644 (file)
@@ -37,6 +37,15 @@ class Arvados::V1::SchemaController < ApplicationController
         defaultTrashLifetime: Rails.application.config.default_trash_lifetime,
         blobSignatureTtl: Rails.application.config.blob_signature_ttl,
         maxRequestSize: Rails.application.config.max_request_size,
+        dockerImageFormats: Rails.application.config.docker_image_formats,
+        crunchLogBytesPerEvent: Rails.application.config.crunch_log_bytes_per_event,
+        crunchLogSecondsBetweenEvents: Rails.application.config.crunch_log_seconds_between_events,
+        crunchLogThrottlePeriod: Rails.application.config.crunch_log_throttle_period,
+        crunchLogThrottleBytes: Rails.application.config.crunch_log_throttle_bytes,
+        crunchLogThrottleLines: Rails.application.config.crunch_log_throttle_lines,
+        crunchLimitLogBytesPerJob: Rails.application.config.crunch_limit_log_bytes_per_job,
+        crunchLogPartialLineThrottlePeriod: Rails.application.config.crunch_log_partial_line_throttle_period,
+        websocketUrl: Rails.application.config.websocket_address,
         parameters: {
           alt: {
             type: "string",
@@ -82,12 +91,6 @@ class Arvados::V1::SchemaController < ApplicationController
         resources: {}
       }
 
-      if Rails.application.config.websocket_address
-        discovery[:websocketUrl] = Rails.application.config.websocket_address
-      elsif ENV['ARVADOS_WEBSOCKETS']
-        discovery[:websocketUrl] = (root_url.sub /^http/, 'ws') + "websocket"
-      end
-
       ActiveRecord::Base.descendants.reject(&:abstract_class?).each do |k|
         begin
           ctl_class = "Arvados::V1::#{k.to_s.pluralize}Controller".constantize
@@ -254,9 +257,10 @@ class Arvados::V1::SchemaController < ApplicationController
                   description: "Return each distinct object.",
                   location: "query"
                 },
-                no_count: {
-                  type: "boolean",
-                  description: "Don't count items_available.",
+                count: {
+                  type: "string",
+                  description: "Type of count to return in items_available ('none' or 'exact').",
+                  default: "exact",
                   location: "query"
                 }
               },
@@ -382,21 +386,21 @@ class Arvados::V1::SchemaController < ApplicationController
               method = d_methods[action.to_sym]
             end
             if ctl_class.respond_to? "_#{action}_requires_parameters".to_sym
-              ctl_class.send("_#{action}_requires_parameters".to_sym).each do |k, v|
+              ctl_class.send("_#{action}_requires_parameters".to_sym).each do |l, v|
                 if v.is_a? Hash
-                  method[:parameters][k] = v
+                  method[:parameters][l] = v
                 else
-                  method[:parameters][k] = {}
+                  method[:parameters][l] = {}
                 end
-                if !method[:parameters][k][:default].nil?
+                if !method[:parameters][l][:default].nil?
                   # The JAVA SDK is sensitive to all values being strings
-                  method[:parameters][k][:default] = method[:parameters][k][:default].to_s
+                  method[:parameters][l][:default] = method[:parameters][l][:default].to_s
                 end
-                method[:parameters][k][:type] ||= 'string'
-                method[:parameters][k][:description] ||= ''
-                method[:parameters][k][:location] = (route.segment_keys.include?(k) ? 'path' : 'query')
-                if method[:parameters][k][:required].nil?
-                  method[:parameters][k][:required] = v != false
+                method[:parameters][l][:type] ||= 'string'
+                method[:parameters][l][:description] ||= ''
+                method[:parameters][l][:location] = (route.segment_keys.include?(l) ? 'path' : 'query')
+                if method[:parameters][l][:required].nil?
+                  method[:parameters][l][:required] = v != false
                 end
               end
             end