Compare commits
5 Commits
bef886d8ad
...
a0d4ca7fbc
Author | SHA1 | Date |
---|---|---|
bbuchanan9 | a0d4ca7fbc | |
bbuchanan9 | 5bb261338b | |
bbuchanan9 | 8dabd00a29 | |
bbuchanan9 | 906ca3d6a4 | |
bbuchanan9 | 5d230673cc |
|
@ -356,7 +356,9 @@ class MongoClientInterface {
|
||||||
_id: vObjName,
|
_id: vObjName,
|
||||||
},
|
},
|
||||||
update: {
|
update: {
|
||||||
_id: vObjName, value: objVal,
|
_id: vObjName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
|
value: objVal,
|
||||||
},
|
},
|
||||||
upsert: true,
|
upsert: true,
|
||||||
},
|
},
|
||||||
|
@ -378,7 +380,9 @@ class MongoClientInterface {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
update: {
|
update: {
|
||||||
_id: objName, value: objVal,
|
_id: objName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
|
value: objVal,
|
||||||
},
|
},
|
||||||
upsert: true,
|
upsert: true,
|
||||||
},
|
},
|
||||||
|
@ -419,14 +423,18 @@ class MongoClientInterface {
|
||||||
const versionId = generateVersionId(this.replicationGroupId);
|
const versionId = generateVersionId(this.replicationGroupId);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
objVal.versionId = versionId;
|
objVal.versionId = versionId;
|
||||||
c.update({
|
const query = { _id: objName };
|
||||||
_id: objName,
|
const update = {
|
||||||
}, {
|
|
||||||
_id: objName,
|
_id: objName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
value: objVal,
|
value: objVal,
|
||||||
}, {
|
};
|
||||||
upsert: true,
|
const options = { upsert: true };
|
||||||
}, err => {
|
if (params.cond && params.cond.tag) {
|
||||||
|
query.tag = params.cond.tag;
|
||||||
|
options.upsert = false;
|
||||||
|
}
|
||||||
|
c.update(query, update, options, err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
log.error(
|
log.error(
|
||||||
'putObjectVerCase2: error putting object version',
|
'putObjectVerCase2: error putting object version',
|
||||||
|
@ -451,12 +459,19 @@ class MongoClientInterface {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
objVal.versionId = params.versionId;
|
objVal.versionId = params.versionId;
|
||||||
const vObjName = formatVersionKey(objName, params.versionId);
|
const vObjName = formatVersionKey(objName, params.versionId);
|
||||||
c.findOne({ _id: objName }, (err, checkObj) => {
|
const query = { _id: objName };
|
||||||
|
if (params.cond && params.cond.tag) {
|
||||||
|
query.tag = params.cond.tag;
|
||||||
|
}
|
||||||
|
c.findOne(query, (err, checkObj) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
log.error('putObjectVerCase3: mongoDB error finding object');
|
log.error('putObjectVerCase3: mongoDB error finding object');
|
||||||
return cb(errors.InternalError);
|
return cb(errors.InternalError);
|
||||||
}
|
}
|
||||||
const objUpsert = !checkObj;
|
const objUpsert = !checkObj;
|
||||||
|
if (objUpsert && params.cond && params.cond.tag) {
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
c.bulkWrite([{
|
c.bulkWrite([{
|
||||||
updateOne: {
|
updateOne: {
|
||||||
filter: {
|
filter: {
|
||||||
|
@ -465,6 +480,7 @@ class MongoClientInterface {
|
||||||
update: {
|
update: {
|
||||||
$set: {
|
$set: {
|
||||||
_id: vObjName,
|
_id: vObjName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
value: objVal,
|
value: objVal,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -480,6 +496,7 @@ class MongoClientInterface {
|
||||||
update: {
|
update: {
|
||||||
$set: {
|
$set: {
|
||||||
_id: objName,
|
_id: objName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
value: objVal,
|
value: objVal,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -512,14 +529,18 @@ class MongoClientInterface {
|
||||||
* Put object when versioning is not enabled
|
* Put object when versioning is not enabled
|
||||||
*/
|
*/
|
||||||
putObjectNoVer(c, bucketName, objName, objVal, params, log, cb) {
|
putObjectNoVer(c, bucketName, objName, objVal, params, log, cb) {
|
||||||
c.update({
|
const query = { _id: objName };
|
||||||
_id: objName,
|
const update = {
|
||||||
}, {
|
|
||||||
_id: objName,
|
_id: objName,
|
||||||
|
tag: MongoUtils.generateNewTag(),
|
||||||
value: objVal,
|
value: objVal,
|
||||||
}, {
|
};
|
||||||
upsert: true,
|
const options = { upsert: true };
|
||||||
}, err => {
|
if (params.cond && params.cond.tag) {
|
||||||
|
query.tag = params.cond.tag;
|
||||||
|
options.upsert = false;
|
||||||
|
}
|
||||||
|
c.update(query, update, options, err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
log.error(
|
log.error(
|
||||||
'putObjectNoVer: error putting obect with no versioning',
|
'putObjectNoVer: error putting obect with no versioning',
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
const uuid = require('uuid/v4');
|
||||||
|
|
||||||
function escape(obj) {
|
function escape(obj) {
|
||||||
return JSON.parse(JSON.stringify(obj).
|
return JSON.parse(JSON.stringify(obj).
|
||||||
|
@ -27,4 +28,8 @@ function unserialize(objMD) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { escape, unescape, serialize, unserialize };
|
function generateNewTag() {
|
||||||
|
return uuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { escape, unescape, serialize, unserialize, generateNewTag };
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue