Compare commits

...

2 Commits

Author SHA1 Message Date
Stephane-Scality 6b85e63c14
Merge pull request #993 from scality/hotfix/7.6.0-S3C-2645-S3C-2731-S3C-2725-S3C-2726
bugfix: S3C-2726 remove some default attributes from ObjectMD
2020-05-05 11:13:19 +02:00
Jonathan Gramain 1b4c946669 bugfix: S3C-2726 remove some default attributes from ObjectMD
Remove "nullVersionId", "isNull" and "isDeleteMarker" default values
from ObjectMD model, instead of the previous '' (empty string) default
value that was incorrect and could cause an issue by misinterpreting
the empty "nullVersionId" as an actual null version ID.

(cherry picked from commit bbfc32e67e)
2020-04-29 16:27:55 -07:00
2 changed files with 14 additions and 12 deletions

View File

@ -106,10 +106,12 @@ class ObjectMD {
},
'key': '',
'location': null,
'isNull': '',
'nullVersionId': '',
'isDeleteMarker': '',
'versionId': undefined, // If no versionId, it should be undefined
// versionId, isNull, nullVersionId and isDeleteMarker
// should be undefined when not set explicitly
'isNull': undefined,
'nullVersionId': undefined,
'isDeleteMarker': undefined,
'versionId': undefined,
'tags': {},
'replicationInfo': {
status: '',
@ -605,7 +607,7 @@ class ObjectMD {
* @return {boolean} Whether new version is null or not
*/
getIsNull() {
return this._data.isNull;
return this._data.isNull || false;
}
/**
@ -622,7 +624,7 @@ class ObjectMD {
/**
* Get metadata nullVersionId value
*
* @return {string} The version id of the null version
* @return {string|undefined} The version id of the null version
*/
getNullVersionId() {
return this._data.nullVersionId;
@ -645,7 +647,7 @@ class ObjectMD {
* @return {boolean} Whether object is a delete marker
*/
getIsDeleteMarker() {
return this._data.isDeleteMarker;
return this._data.isDeleteMarker || false;
}
/**
@ -662,7 +664,7 @@ class ObjectMD {
/**
* Get metadata versionId value
*
* @return {string} The object versionId
* @return {string|undefined} The object versionId
*/
getVersionId() {
return this._data.versionId;
@ -672,7 +674,7 @@ class ObjectMD {
* Get metadata versionId value in encoded form (the one visible
* to the S3 API user)
*
* @return {string} The encoded object versionId
* @return {string|undefined} The encoded object versionId
*/
getEncodedVersionId() {
return VersionIDUtils.encode(this.getVersionId());

View File

@ -60,11 +60,11 @@ describe('ObjectMD class setters/getters', () => {
['Key', 'key'],
['Location', null, []],
['Location', ['location1']],
['IsNull', null, ''],
['IsNull', null, false],
['IsNull', true],
['NullVersionId', null, ''],
['NullVersionId', null, undefined],
['NullVersionId', '111111'],
['IsDeleteMarker', null, ''],
['IsDeleteMarker', null, false],
['IsDeleteMarker', true],
['VersionId', null, undefined],
['VersionId', '111111'],