X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b7fb5c4593dcc679f5343f0f55b3774a7bcfe499..00f1f05789316936db75b4723b1c3d99196c252a:/services/api/app/models/arvados_model.rb diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb index 54b1394ffd..1c842c48d6 100644 --- a/services/api/app/models/arvados_model.rb +++ b/services/api/app/models/arvados_model.rb @@ -709,7 +709,7 @@ class ArvadosModel < ApplicationRecord false end - def self.where_serialized(colname, value, md5: false) + def self.where_serialized(colname, value, md5: false, multivalue: false) colsql = colname.to_s if md5 colsql = "md5(#{colsql})" @@ -722,7 +722,16 @@ class ArvadosModel < ApplicationRecord sql = "#{colsql} IN (?)" sorted = deep_sort_hash(value) end - params = [sorted.to_yaml, SafeJSON.dump(sorted)] + params = [] + if multivalue + sorted.each do |v| + params << v.to_yaml + params << SafeJSON.dump(v) + end + else + params << sorted.to_yaml + params << SafeJSON.dump(sorted) + end if md5 params = params.map { |x| Digest::MD5.hexdigest(x) } end @@ -892,6 +901,11 @@ class ArvadosModel < ApplicationRecord def fill_container_defaults self.runtime_constraints = { 'API' => false, + 'cuda' => { + 'device_count' => 0, + 'driver_version' => '', + 'hardware_capability' => '', + }, 'keep_cache_ram' => 0, 'ram' => 0, 'vcpus' => 0,