Skip to content

Commit 127d4f8

Browse files
authored
Merge pull request #1710 from CVEProject/dr_1678
Removing the extra fields, fixing populate.js
2 parents 6a65e69 + baec8e8 commit 127d4f8

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

src/repositories/baseOrgRepository.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ const CveIdRepository = require('./cveIdRepository')
88
const uuid = require('uuid')
99
const _ = require('lodash')
1010
const BaseOrg = require('../model/baseorg')
11-
const AuditRepository = require('./auditRepository')
1211
const ConversationRepository = require('./conversationRepository')
1312
const getConstants = require('../constants').getConstants
1413

@@ -58,7 +57,9 @@ function setAggregateRegistryOrgObj (query) {
5857
{
5958
$project: {
6059
_id: false,
61-
__t: false
60+
__t: false,
61+
inUse: false,
62+
in_use: false
6263
}
6364
}
6465
]
@@ -301,6 +302,8 @@ class BaseOrgRepository extends BaseRepository {
301302
delete result.__t
302303
delete result.__v
303304
delete result._id
305+
delete result.inUse
306+
delete result.in_use
304307
return deepRemoveEmpty(result)
305308
}
306309

@@ -439,6 +442,7 @@ class BaseOrgRepository extends BaseRepository {
439442
// ADD AUDIT ENTRY AUTOMATICALLY for the registry object
440443
if (requestingUserUUID) {
441444
try {
445+
const AuditRepository = require('./auditRepository')
442446
const auditRepo = new AuditRepository()
443447
await auditRepo.appendToAuditHistoryForOrg(
444448
registryObjectRaw.UUID,
@@ -490,13 +494,17 @@ class BaseOrgRepository extends BaseRepository {
490494
// Remove private stuff
491495
delete legacyObjectRawJson.__v
492496
delete legacyObjectRawJson._id
497+
delete legacyObjectRawJson.inUse
498+
delete legacyObjectRawJson.in_use
493499
return deepRemoveEmpty(legacyObjectRawJson)
494500
}
495501

496502
const rawRegistryOrgObject = registryObject.toObject()
497503
delete rawRegistryOrgObject.__t
498504
delete rawRegistryOrgObject.__v
499505
delete rawRegistryOrgObject._id
506+
delete rawRegistryOrgObject.inUse
507+
delete rawRegistryOrgObject.in_use
500508

501509
return deepRemoveEmpty(rawRegistryOrgObject)
502510
}
@@ -647,6 +655,7 @@ class BaseOrgRepository extends BaseRepository {
647655
// ADD AUDIT ENTRY AUTOMATICALLY for the registry object before it gets saved.
648656
if (requestingUserUUID) {
649657
try {
658+
const AuditRepository = require('./auditRepository')
650659
const auditRepo = new AuditRepository()
651660
// Seed the audit history with the existing org data if an audit document doesn't already exist.
652661
// This is necessary because older entities might not have an audit log yet, and we want
@@ -685,6 +694,8 @@ class BaseOrgRepository extends BaseRepository {
685694
const plainJavascriptLegacyOrg = legacyOrg.toObject()
686695
delete plainJavascriptLegacyOrg.__v
687696
delete plainJavascriptLegacyOrg._id
697+
delete plainJavascriptLegacyOrg.inUse
698+
delete plainJavascriptLegacyOrg.in_use
688699
return deepRemoveEmpty(plainJavascriptLegacyOrg)
689700
}
690701

@@ -693,6 +704,8 @@ class BaseOrgRepository extends BaseRepository {
693704
delete plainJavascriptRegistryOrg.__v
694705
delete plainJavascriptRegistryOrg._id
695706
delete plainJavascriptRegistryOrg.__t
707+
delete plainJavascriptRegistryOrg.inUse
708+
delete plainJavascriptRegistryOrg.in_use
696709
return deepRemoveEmpty(plainJavascriptRegistryOrg)
697710
}
698711

@@ -833,6 +846,7 @@ class BaseOrgRepository extends BaseRepository {
833846
// ADD AUDIT ENTRY AUTOMATICALLY for the registry object before it gets saved.
834847
if (requestingUserUUID) {
835848
try {
849+
const AuditRepository = require('./auditRepository')
836850
const auditRepo = new AuditRepository()
837851
// Seed the audit history with the existing org data if an audit document doesn't already exist.
838852
// This is necessary because older entities might not have an audit log yet, and we want
@@ -910,6 +924,8 @@ class BaseOrgRepository extends BaseRepository {
910924
const plainJavascriptLegacyOrg = updatedLegacyOrg.toObject()
911925
delete plainJavascriptLegacyOrg.__v
912926
delete plainJavascriptLegacyOrg._id
927+
delete plainJavascriptLegacyOrg.inUse
928+
delete plainJavascriptLegacyOrg.in_use
913929
plainJavascriptLegacyOrg.joint_approval_required = !(isSecretariat || _.isEmpty(jointApprovalFieldsRegistry))
914930
return deepRemoveEmpty(plainJavascriptLegacyOrg)
915931
}
@@ -920,6 +936,8 @@ class BaseOrgRepository extends BaseRepository {
920936
delete plainJavascriptRegistryOrg.__v
921937
delete plainJavascriptRegistryOrg._id
922938
delete plainJavascriptRegistryOrg.__t
939+
delete plainJavascriptRegistryOrg.inUse
940+
delete plainJavascriptRegistryOrg.in_use
923941
plainJavascriptRegistryOrg.joint_approval_required = !(isSecretariat || _.isEmpty(jointApprovalFieldsRegistry))
924942
return deepRemoveEmpty(plainJavascriptRegistryOrg)
925943
}

src/scripts/populate.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,12 @@ db.once('open', async () => {
7878

7979
// drops and re-populates collections
8080
if (userInput.toLowerCase() === 'y') {
81-
const names = []
8281
const collections = await db.db.listCollections().toArray()
83-
collections.forEach(collection => {
84-
names.push(collection.name)
85-
})
8682

87-
for (const name in populateTheseCollections) {
88-
if (names.includes(name)) {
89-
if (db.collections[name]) {
90-
logger.info(`Dropping ${name} collection indexes!!!`)
91-
await db.collections[name].dropIndexes()
92-
logger.info(`Dropping ${name} collection !!!`)
93-
await db.dropCollection(name)
94-
}
83+
for (const collection of collections) {
84+
if (!collection.name.startsWith('system.')) {
85+
logger.info(`Dropping ${collection.name} collection !!!`)
86+
await db.dropCollection(collection.name)
9587
}
9688
}
9789

@@ -145,6 +137,12 @@ db.once('open', async () => {
145137
try {
146138
await Promise.all(indexPromises)
147139
logger.info('Successfully created indexes!')
140+
141+
// Explicitly create collections for models that are not pre-populated but require transactions.
142+
// Implicit collection creation inside Mongo transactions acquires heavy locks and leads to LockTimeout.
143+
await Audit.createCollection()
144+
await ReviewObject.createCollection()
145+
await Conversation.createCollection()
148146
} catch (err) {
149147
logger.error('Error creating indexes:', err)
150148
} finally {

0 commit comments

Comments
 (0)