X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9bd3b2729a61f62ddbab10ac65fd9f7de837a10d..f72506f1056aa4e867c6a0ff68a815bd55244536:/services/api/app/models/job.rb diff --git a/services/api/app/models/job.rb b/services/api/app/models/job.rb index 248d16a4ef..e7d1b39ce9 100644 --- a/services/api/app/models/job.rb +++ b/services/api/app/models/job.rb @@ -2,6 +2,7 @@ class Job < ArvadosModel include HasUuid include KindAndEtag include CommonApiTemplate + extend CurrentApiClient serialize :components, Hash attr_protected :arvados_sdk_version, :docker_image_locator serialize :script_parameters, Hash @@ -281,11 +282,16 @@ class Job < ArvadosModel Digest::MD5.hexdigest(Oj.dump(deep_sort_hash(h))) end - def self.deep_sort_hash h - return h unless h.is_a? Hash - h.sort.collect do |k, v| - [k, deep_sort_hash(v)] - end.to_h + def self.deep_sort_hash x + if x.is_a? Hash + x.sort.collect do |k, v| + [k, deep_sort_hash(v)] + end.to_h + elsif x.is_a? Array + x.collect { |v| deep_sort_hash(v) } + else + x + end end def foreign_key_attributes