Skip to content

Commit db3c20d

Browse files
Merge pull request #1092 from Durgesh1988/dev
CAT-2605 Fixed
2 parents e1288d3 + d1a4ee6 commit db3c20d

File tree

3 files changed

+220
-360
lines changed

3 files changed

+220
-360
lines changed

server/app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js

Lines changed: 78 additions & 189 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ function awsRDSS3ProviderSyncForProvider(provider,orgName) {
9797
resourceModel.getAllResourcesByCategory(provider._id,'unassigned',next);
9898
},
9999
function(resources,next){
100-
tagMappingForResources(resources,provider,next);
100+
tagMappingSyncForResources(resources,provider,'unassigned',next);
101101
},
102102
function(resources,next){
103103
resourceModel.getAllResourcesByCategory(provider._id,'assigned',next);
104104
},
105105
function(assignedResources,next){
106-
syncAssignedResourcesWithTagMapping(assignedResources,provider,next);
106+
tagMappingSyncForResources(assignedResources,provider,'assigned',next);
107107
}
108108
], function (err, results) {
109109
if (err) {
@@ -325,8 +325,7 @@ function deleteRDSResourceData(rdsInfo,providerId, callback) {
325325
}
326326
}
327327

328-
329-
function tagMappingForResources(resources,provider,next){
328+
function tagMappingSyncForResources(resources,provider,category,next){
330329
tagsModel.getTagsByProviderId(provider._id, function (err, tagDetails) {
331330
if (err) {
332331
logger.error("Unable to get tags", err);
@@ -335,33 +334,27 @@ function tagMappingForResources(resources,provider,next){
335334
var projectTag = null;
336335
var environmentTag = null;
337336
var bgTag = null;
338-
if(tagDetails.length > 0) {
337+
if (tagDetails.length > 0) {
339338
for (var i = 0; i < tagDetails.length; i++) {
340339
if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'project') {
341340
projectTag = tagDetails[i];
342-
}else if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'environment') {
341+
} else if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'environment') {
343342
environmentTag = tagDetails[i];
344-
}else if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'businessGroup') {
343+
} else if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'businessGroup') {
345344
bgTag = tagDetails[i];
346345
}
347346
}
348-
}else{
349-
next(null,tagDetails);
350-
}
351-
var count = 0;
352-
if(resources.length > 0) {
353-
for (var j = 0; j < resources.length; j++) {
354-
(function(resource) {
355-
if (resource.tags) {
356-
var catalystProjectId = null;
357-
var catalystProjectName = null;
358-
var catalystEnvironmentId = null;
359-
var catalystEnvironmentName = null;
360-
var catalystBgId = null;
361-
var catalystBgName = null;
362-
var assignmentFound = false;
363-
if ((bgTag !== null || projectTag !== null || environmentTag !== null)
364-
&& (resource.isDeleted === false)) {
347+
var count = 0;
348+
if (resources.length > 0) {
349+
for (var j = 0; j < resources.length; j++) {
350+
(function (resource) {
351+
if (resource.tags) {
352+
var catalystProjectId = null;
353+
var catalystProjectName = null;
354+
var catalystEnvironmentId = null;
355+
var catalystEnvironmentName = null;
356+
var catalystBgId = null;
357+
var catalystBgName = null;
365358

366359
if (bgTag !== null && bgTag.name in resource.tags) {
367360
var bgEntityMappings = Object.keys(bgTag.catalystEntityMapping).map(
@@ -412,14 +405,10 @@ function tagMappingForResources(resources,provider,next){
412405
}
413406
}
414407
}
415-
if (catalystBgId !== null || catalystProjectId !== null || catalystEnvironmentId !== null) {
416-
assignmentFound = true;
417-
}
418-
if (assignmentFound === true) {
419-
count++;
408+
if ((catalystBgId !== null || catalystProjectId !== null || catalystEnvironmentId !== null) && category ==='unassigned') {
420409
var masterDetails = {
421-
orgId:resource.masterDetails.orgId,
422-
orgName:resource.masterDetails.orgName,
410+
orgId: resource.masterDetails.orgId,
411+
orgName: resource.masterDetails.orgName,
423412
bgId: catalystBgId,
424413
bgName: catalystBgName,
425414
projectId: catalystProjectId,
@@ -430,179 +419,79 @@ function tagMappingForResources(resources,provider,next){
430419
resourceModel.updateResourcesForAssigned(resource._id, masterDetails, function (err, data) {
431420
if (err) {
432421
logger.error(err);
433-
return;
434-
} else {
435-
masterDetails = {};
436422
}
437-
})
438-
} else {
439-
count++;
440-
}
441-
} else {
442-
count++;
443-
}
444-
if (count === resources.length) {
445-
next(null, resources);
446-
}
447-
} else {
448-
count++;
449-
if (count === resources.length) {
450-
next(null, resources);
451-
}
452-
}
453-
})(resources[j]);
454-
}
455-
}else{
456-
logger.info("Please configure Resources for Tag Mapping");
457-
next(null,resources);
458-
}
459-
});
460-
}
461-
462-
function syncAssignedResourcesWithTagMapping(assignedResources,provider,callback){
463-
if(assignedResources.length > 0){
464-
tagsModel.getTagsByProviderId(provider._id, function (err, tagDetails) {
465-
if (err) {
466-
logger.error("Unable to get tags", err);
467-
callback(err);
468-
return;
469-
}
470-
var projectTag = null;
471-
var environmentTag = null;
472-
var bgTag = null;
473-
var count = 0;
474-
if (tagDetails.length > 0) {
475-
for (var i = 0; i < tagDetails.length; i++) {
476-
if (('catalystEntityType' in tagDetails[i]) && tagDetails[i].catalystEntityType == 'project') {
477-
projectTag = tagDetails[i];
478-
} else if (('catalystEntityType' in tagDetails[i])
479-
&& tagDetails[i].catalystEntityType == 'environment') {
480-
environmentTag = tagDetails[i];
481-
} else if (('catalystEntityType' in tagDetails[i])
482-
&& tagDetails[i].catalystEntityType == 'businessGroup') {
483-
bgTag = tagDetails[i];
484-
}
485-
}
486-
for(var j = 0; j < assignedResources.length; j++){
487-
(function(assignedResource){
488-
var catalystProjectId = null;
489-
var catalystProjectName = null;
490-
var catalystEnvironmentId = null;
491-
var catalystEnvironmentName = null;
492-
var catalystBgId = null;
493-
var catalystBgName = null;
494-
if(bgTag !== null && bgTag.name in assignedResource.tags) {
495-
var entityMappingArray
496-
= Object.keys(bgTag.catalystEntityMapping).map(
497-
function(k){return bgTag.catalystEntityMapping[k]});
498-
499-
for (var y = 0; y < entityMappingArray.length; y++) {
500-
if ((assignedResource.tags[bgTag.name] !== '')
501-
&& ('tagValues' in entityMappingArray[y])
502-
&& (entityMappingArray[y].tagValues.indexOf(assignedResource.tags[bgTag.name]) >= 0)) {
503-
catalystBgId = entityMappingArray[y].catalystEntityId;
504-
catalystBgName = entityMappingArray[y].catalystEntityName;
505-
break;
506-
}
507-
}
508-
}
509-
if(projectTag !== null && projectTag.name in assignedResource.tags) {
510-
var entityMappingArray
511-
= Object.keys(projectTag.catalystEntityMapping).map(
512-
function(k){return projectTag.catalystEntityMapping[k]});
513-
514-
for (var y = 0; y < entityMappingArray.length; y++) {
515-
if ((assignedResource.tags[projectTag.name] !== '')
516-
&& ('tagValues' in entityMappingArray[y])
517-
&& (entityMappingArray[y].tagValues.indexOf(assignedResource.tags[projectTag.name])
518-
>= 0)) {
519-
catalystProjectId = entityMappingArray[y].catalystEntityId;
520-
catalystProjectName = entityMappingArray[y].catalystEntityName;
521-
break;
522-
}
523-
}
524-
}
525-
if(environmentTag !== null && environmentTag.name in assignedResource.tags) {
526-
var entityMappingArray
527-
= Object.keys(environmentTag.catalystEntityMapping).map(
528-
function(k){return environmentTag.catalystEntityMapping[k]});
529-
530-
for (var y = 0; y < entityMappingArray.length; y++) {
531-
if ((assignedResource.tags[environmentTag.name] !== '')
532-
&& ('tagValues' in entityMappingArray[y])
533-
&& (entityMappingArray[y].tagValues.indexOf(assignedResource.tags[environmentTag.name])
534-
>= 0)) {
535-
catalystEnvironmentId = entityMappingArray[y].catalystEntityId;
536-
catalystEnvironmentName = entityMappingArray[y].catalystEntityName;
537-
break;
538-
}
539-
}
540-
}
541-
if (catalystBgId !== null || catalystProjectId !== null || catalystEnvironmentId !== null) {
542-
var masterDetails= {
543-
"masterDetails.bgId": catalystBgId,
544-
"masterDetails.bgName": catalystBgName,
545-
"masterDetails.projectId": catalystProjectId,
546-
"masterDetails.projectName": catalystProjectName,
547-
"masterDetails.envId": catalystEnvironmentId,
548-
"masterDetails.envName": catalystEnvironmentName
549-
};
550-
resourceModel.updateResourceMasterDetails(assignedResource._id,masterDetails,function(err,data){
551-
if(err){
552-
logger.error("Unable to update master details of assigned Resource", err);
553423
count++;
554-
if(count === assignedResources.length){
555-
callback(null,assignedResources);
424+
if (count === resources.length) {
425+
next(null, resources);
556426
return;
557427
}
558-
}else{
559-
count++;
560-
if(count === assignedResources.length){
561-
callback(null,assignedResources);
562-
return;
428+
})
429+
} else if ((catalystBgId !== null || catalystProjectId !== null || catalystEnvironmentId !== null) && category ==='assigned') {
430+
var masterDetails= {
431+
"masterDetails.bgId": catalystBgId,
432+
"masterDetails.bgName": catalystBgName,
433+
"masterDetails.projectId": catalystProjectId,
434+
"masterDetails.projectName": catalystProjectName,
435+
"masterDetails.envId": catalystEnvironmentId,
436+
"masterDetails.envName": catalystEnvironmentName
437+
};
438+
resourceModel.updateResourceMasterDetails(resource._id,masterDetails,function(err,data){
439+
if(err){
440+
logger.error("Unable to update master details of assigned Resource", err);
563441
}
564-
}
565-
});
566-
}else{
567-
resourceModel.removeResourceById(assignedResource._id,function(err,data){
568-
if(err){
569-
logger.error("Unable to remove assigned Resource", err);
570442
count++;
571-
if(count === assignedResources.length){
572-
callback(null,assignedResources);
443+
if(count === resources.length) {
444+
next(null, resources);
573445
return;
574446
}
575-
}else{
447+
});
448+
} else if(category === 'assigned') {
449+
resourceModel.removeResourceById(resource._id,function(err,data){
450+
if(err){
451+
logger.error("Unable to remove assigned Resource", err);
452+
}
576453
count++;
577-
if(count === assignedResources.length){
578-
callback(null,assignedResources);
454+
if(count === resources.length) {
455+
next(null, resources);
579456
return;
580457
}
458+
});
459+
} else {
460+
count++;
461+
if (count === resources.length) {
462+
next(null, resources);
463+
return;
581464
}
582-
});
465+
}
466+
}else{
467+
count++;
468+
if (count === resources.length) {
469+
next(null, resources);
470+
return;
471+
}
583472
}
584-
585-
})(assignedResources[j]);
473+
474+
})(resources[j]);
586475
}
587-
} else {
588-
logger.info("There is no Tag Mapping");
589-
resourceModel.removeResourcesByProviderId(provider._id,function(err,data){
590-
if(err){
591-
logger.error("Unable to remove assigned Resource", err);
592-
callback(err);
593-
return;
594-
}else{
595-
callback(null, data);
596-
return;
597-
}
598-
});
599476
}
600-
})
601-
}else{
602-
logger.info("There is no Assigned Resource for Tag Mapping Sync");
603-
callback(null,assignedResources);
604-
return;
605-
}
477+
} else if (category === 'assigned') {
478+
logger.info("There is no Tag Mapping");
479+
resourceModel.removeResourcesByProviderId(provider._id, function (err, data) {
480+
if (err) {
481+
logger.error("Unable to remove assigned Resource", err);
482+
next(err);
483+
return;
484+
} else {
485+
logger.info("Please configure Resources for Tag Mapping");
486+
next(null, data);
487+
return;
488+
}
489+
});
490+
} else {
491+
logger.info("Please configure Resources for Tag Mapping");
492+
next(null, resources);
493+
}
494+
});
606495
}
607496

608497
function bucketNameList(s3Info,callback){

0 commit comments

Comments
 (0)