projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
14873: Fixes unit tests.
[arvados.git]
/
services
/
api
/
app
/
models
/
collection.rb
diff --git
a/services/api/app/models/collection.rb
b/services/api/app/models/collection.rb
index 6147b79f9f5aa16c6b9e24ef5164bab43139373a..cb23df1c219ef4404a2023e824303bf54d7922ff 100644
(file)
--- a/
services/api/app/models/collection.rb
+++ b/
services/api/app/models/collection.rb
@@
-14,10
+14,10
@@
class Collection < ArvadosModel
include CommonApiTemplate
include Trashable
include CommonApiTemplate
include Trashable
- serialize :properties, Hash
- serialize :storage_classes_desired, Array
- serialize :storage_classes_confirmed, Array
+ # Posgresql JSONB columns should NOT be declared as serialized, Rails 5
+ # already know how to properly treat them.
+ before_validation :fill_field_defaults
before_validation :default_empty_manifest
before_validation :default_storage_classes, on: :create
before_validation :check_encoding
before_validation :default_empty_manifest
before_validation :default_storage_classes, on: :create
before_validation :check_encoding
@@
-83,7
+83,7
@@
class Collection < ArvadosModel
FILE_TOKEN = /^[[:digit:]]+:[[:digit:]]+:/
def check_signatures
FILE_TOKEN = /^[[:digit:]]+:[[:digit:]]+:/
def check_signatures
-
return false
if self.manifest_text.nil?
+
throw(:abort)
if self.manifest_text.nil?
return true if current_user.andand.is_admin
return true if current_user.andand.is_admin
@@
-316,9
+316,7
@@
class Collection < ArvadosModel
end
def check_encoding
end
def check_encoding
- if manifest_text.encoding.name == 'UTF-8' and manifest_text.valid_encoding?
- true
- else
+ if !(manifest_text.encoding.name == 'UTF-8' and manifest_text.valid_encoding?)
begin
# If Ruby thinks the encoding is something else, like 7-bit
# ASCII, but its stored bytes are equal to the (valid) UTF-8
begin
# If Ruby thinks the encoding is something else, like 7-bit
# ASCII, but its stored bytes are equal to the (valid) UTF-8
@@
-333,7
+331,7
@@
class Collection < ArvadosModel
rescue
end
errors.add :manifest_text, "must use UTF-8 encoding"
rescue
end
errors.add :manifest_text, "must use UTF-8 encoding"
- false
+ throw(:abort)
end
end
end
end
@@
-343,7
+341,7
@@
class Collection < ArvadosModel
true
rescue ArgumentError => e
errors.add :manifest_text, e.message
true
rescue ArgumentError => e
errors.add :manifest_text, e.message
- false
+ throw(:abort)
end
end
end
end
@@
-655,4
+653,10
@@
class Collection < ArvadosModel
self.current_version_uuid ||= self.uuid
true
end
self.current_version_uuid ||= self.uuid
true
end
+
+ def fill_field_defaults
+ self.properties ||= {}
+ self.storage_classes_desired ||= []
+ self.storage_classes_confirmed ||= []
+ end
end
end