X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7f80639c3641ca9fa500789121c537477f856379..7f88afd565b76903ad4b27fb896ff0cd844dfb7f:/services/api/app/models/container_request.rb diff --git a/services/api/app/models/container_request.rb b/services/api/app/models/container_request.rb index 1de71102c6..00773fcb86 100644 --- a/services/api/app/models/container_request.rb +++ b/services/api/app/models/container_request.rb @@ -23,7 +23,7 @@ class ContainerRequest < ArvadosModel # already know how to properly treat them. attribute :properties, :jsonbHash, default: {} attribute :secret_mounts, :jsonbHash, default: {} - attribute :output_storage_classes, :jsonbArray, default: ["default"] + attribute :output_storage_classes, :jsonbArray, default: lambda { Rails.configuration.DefaultStorageClasses } serialize :environment, Hash serialize :mounts, Hash @@ -336,6 +336,22 @@ class ContainerRequest < ArvadosModel "[#{k}]=#{v.inspect} must be a positive integer") end end + if runtime_constraints['cuda'] + ['device_count'].each do |k| + v = runtime_constraints['cuda'][k] + if !v.is_a?(Integer) || v < 0 + errors.add(:runtime_constraints, + "[cuda.#{k}]=#{v.inspect} must be a positive or zero integer") + end + end + ['driver_version', 'hardware_capability'].each do |k| + v = runtime_constraints['cuda'][k] + if !v.is_a?(String) + errors.add(:runtime_constraints, + "[cuda.#{k}]=#{v.inspect} must be a string") + end + end + end end end