From 820024a6be60fa2be4ed91a733ae9a63e97c588a Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Tue, 8 Nov 2016 12:40:40 +0530 Subject: [PATCH 1/3] RDS Issue --- .../private/ajax/Settings/providerSync.html | 6 +-- client/htmls/public/js/awsRDSDashboard.js | 8 ++-- server/app/lib/rds.js | 2 + server/app/model/resources/rds-resource.js | 5 ++ server/app/services/resourceService.js | 47 ++++++++++--------- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/client/htmls/private/ajax/Settings/providerSync.html b/client/htmls/private/ajax/Settings/providerSync.html index 4644195ef..567fa7df5 100644 --- a/client/htmls/private/ajax/Settings/providerSync.html +++ b/client/htmls/private/ajax/Settings/providerSync.html @@ -871,7 +871,7 @@ "destroy":true, "ajax": '/resources?filterBy=providerId:'+ urlproviderId +'+resourceType:RDS+category:assigned', "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.dbInstanceStatus","orderable" : true }, {"data": "masterDetails.orgName","orderable" : true, @@ -1825,7 +1825,7 @@ $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType,"bgTagsMapName" : envProjectMappingObject.bgName, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) }, "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.region","orderable" : false }, {"data": "" ,"orderable" : false, @@ -1860,7 +1860,7 @@ }, {"data": "","orderable" : false, "render":function(data,type,full,meta){ - if(full.resourceDetails.dbName){ + if(full.resourceDetails.dbInstanceIdentifier){ return ''; }else{ return ''; diff --git a/client/htmls/public/js/awsRDSDashboard.js b/client/htmls/public/js/awsRDSDashboard.js index 9532455d2..235e553d9 100644 --- a/client/htmls/public/js/awsRDSDashboard.js +++ b/client/htmls/public/js/awsRDSDashboard.js @@ -153,7 +153,7 @@ $(document).ready(function() { "destroy":true, "ajax": '/resources?filterBy=providerId:'+ providerId +'+resourceType:RDS+category:assigned', "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "masterDetails.orgName","orderable" : false, "render": function (data) { if(data !== null){ @@ -210,7 +210,7 @@ $(document).ready(function() { "destroy":true, "ajax": '/resources?filterBy=resourceType:RDS+category:assigned', "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "masterDetails.orgName","orderable" : false, "render": function (data) { if(data !== null){ @@ -281,7 +281,7 @@ $(document).ready(function() { $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType}) }, "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.dbInstanceStatus","orderable" : true }, {"data": "resourceDetails.region","orderable" : false }, @@ -305,7 +305,7 @@ $(document).ready(function() { $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType}) }, "columns": [ - {"data": "resourceDetails.dbName", "orderable" : true}, + {"data": "resourceDetails.dbInstanceIdentifier", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.dbInstanceStatus","orderable" : true }, {"data": "resourceDetails.region","orderable" : false }, diff --git a/server/app/lib/rds.js b/server/app/lib/rds.js index fe138cacb..5c0a77b22 100644 --- a/server/app/lib/rds.js +++ b/server/app/lib/rds.js @@ -45,8 +45,10 @@ var RDS = function(awsSettings) { if(err){ logger.error(err); callback(err,null); + return; } else{ callback(null,data.DBInstances); + return; } }); }; diff --git a/server/app/model/resources/rds-resource.js b/server/app/model/resources/rds-resource.js index 2a91d6afb..db855086d 100644 --- a/server/app/model/resources/rds-resource.js +++ b/server/app/model/resources/rds-resource.js @@ -24,6 +24,11 @@ var Schema = mongoose.Schema; var RDSResourcesSchema = new BaseResourcesSchema({ resourceDetails: { + dbInstanceIdentifier:{ + type: String, + required: true, + trim: true + }, dbName: { type: String, required: true, diff --git a/server/app/services/resourceService.js b/server/app/services/resourceService.js index 7feddace3..30d45b904 100644 --- a/server/app/services/resourceService.js +++ b/server/app/services/resourceService.js @@ -505,58 +505,58 @@ function getRDSDBInstanceMetrics(provider, dbInstances, startTime, endTime, peri cw = new CW(amazonConfig); async.parallel({ CPUUtilization: function (callback) { - cw.getUsageMetrics('CPUUtilization','Percent','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('CPUUtilization','Percent','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, BinLogDiskUsage: function (callback) { - cw.getUsageMetrics('BinLogDiskUsage','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('BinLogDiskUsage','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, CPUCreditUsage: function (callback) { - cw.getUsageMetrics('CPUCreditUsage','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('CPUCreditUsage','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, CPUCreditBalance: function (callback) { - cw.getUsageMetrics('CPUCreditBalance','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('CPUCreditBalance','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, DatabaseConnections: function (callback) { - cw.getUsageMetrics('DatabaseConnections','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('DatabaseConnections','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, DiskQueueDepth: function (callback) { - cw.getUsageMetrics('DiskQueueDepth','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('DiskQueueDepth','Count','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, FreeableMemory: function (callback) { - cw.getUsageMetrics('FreeableMemory','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('FreeableMemory','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, FreeStorageSpace: function (callback) { - cw.getUsageMetrics('FreeStorageSpace','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('FreeStorageSpace','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, ReplicaLag: function (callback) { - cw.getUsageMetrics('ReplicaLag','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('ReplicaLag','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, SwapUsage: function (callback) { - cw.getUsageMetrics('SwapUsage','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('SwapUsage','Bytes','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, ReadIOPS: function (callback) { - cw.getUsageMetrics('ReadIOPS','Count/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('ReadIOPS','Count/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, WriteIOPS: function (callback) { - cw.getUsageMetrics('WriteIOPS','Count/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('WriteIOPS','Count/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, ReadLatency: function (callback) { - cw.getUsageMetrics('ReadLatency','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('ReadLatency','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, WriteLatency: function (callback) { - cw.getUsageMetrics('WriteLatency','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('WriteLatency','Seconds','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, ReadThroughput: function (callback) { - cw.getUsageMetrics('ReadThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('ReadThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, WriteThroughput: function (callback) { - cw.getUsageMetrics('WriteThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('WriteThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, NetworkReceiveThroughput: function (callback) { - cw.getUsageMetrics('NetworkReceiveThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('NetworkReceiveThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); }, NetworkTransmitThroughput: function (callback) { - cw.getUsageMetrics('NetworkTransmitThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbName}],startTime, endTime, period, callback); + cw.getUsageMetrics('NetworkTransmitThroughput','Bytes/Second','AWS/RDS',[{Name:'DBInstanceIdentifier',Value:rds.resourceDetails.dbInstanceIdentifier}],startTime, endTime, period, callback); } }, function (err, results) { @@ -582,7 +582,7 @@ function getRDSDBInstanceMetrics(provider, dbInstances, startTime, endTime, peri orgId: provider.orgId[0], resourceId: rds._id, platform: 'AWS', - platformId: rds.resourceDetails.dbName, + platformId: rds.resourceDetails.dbInstanceIdentifier, resourceType: 'RDS', startTime: dbStartTime, endTime: dbEndTime, @@ -782,6 +782,7 @@ function getRDSInstancesInfo(provider,orgName,callback) { category:"unassigned", isDeleted:false, resourceDetails: { + dbInstanceIdentifier: dbInstance.DBInstanceIdentifier, dbName: dbInstance.DBName, dbInstanceClass: dbInstance.DBInstanceClass, dbEngine: dbInstance.Engine, @@ -807,17 +808,18 @@ function getRDSInstancesInfo(provider,orgName,callback) { storageType: dbInstance.StorageType, storageEncrypted: dbInstance.StorageEncrypted, dbiResourceId: dbInstance.DbiResourceId, - accountNumber: 549974527830, + accountNumber: appConfig.aws.s3AccountNumber, caCertificateIdentifier: dbInstance.CACertificateIdentifier } }; var params ={ - ResourceName:'arn:aws:rds:us-west-1:'+appConfig.aws.s3AccountNumber+':db:'+dbInstance.DBName + ResourceName:'arn:aws:rds:us-west-1:'+appConfig.aws.s3AccountNumber+':db:'+dbInstance.DBInstanceIdentifier }; rds.getRDSDBInstanceTag(params,function(err,rdsTags){ if(err){ logger.error(err); callback(err,null); + return; }else{ rdsDbInstanceObj.tags = rdsTags; rdsDbInstanceObj.projectTag = rdsTags['Owner']; @@ -826,6 +828,7 @@ function getRDSInstancesInfo(provider,orgName,callback) { rdsDbInstanceObj={}; if(dbInstances.length === results.length){ callback(null,results); + return; } } }) @@ -981,7 +984,7 @@ function bulkUpdateAWSResourcesTags(provider, resources, callback) { for (var i = 0; i < resources.length; i++) { (function (j) { logger.debug('Updating tags for resource ', resources[j]._id); - rds.addRDSDBInstanceTag(resources[j].resourceDetails.dbName, resources[j].tags, + rds.addRDSDBInstanceTag(resources[j].resourceDetails.dbInstanceIdentifier, resources[j].tags, function (err, data) { if (err) { logger.error(err); From 110f706508df4808cb2135e917dfe9cf9582a70a Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Tue, 8 Nov 2016 12:49:17 +0530 Subject: [PATCH 2/3] RDS Issue --- .../app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js b/server/app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js index 2e7ffda58..beda12529 100644 --- a/server/app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js +++ b/server/app/cronjobs/provider-rds-s3-sync/AWSRDSS3ProviderSync.js @@ -286,7 +286,7 @@ function deleteRDSResourceData(rdsInfo,providerId, callback) { var count = 0; for (var i = 0; i < rdsData.length; i++) { (function (rds) { - if (dbNames.indexOf(rds.resourceDetails.dbName) === -1) { + if (dbNames.indexOf(rds.resourceDetails.dbInstanceIdentifier) === -1) { resourceModel.deleteResourcesById(rds._id, function (err, data) { if (err) { next(err); @@ -443,7 +443,7 @@ function bucketNameList(s3Info,callback){ function rdsDBNameList(rdsInfo,callback){ var dbNames=[]; for(var i = 0; i < rdsInfo.length; i++){ - dbNames.push(rdsInfo[i].resourceDetails.dbName); + dbNames.push(rdsInfo[i].resourceDetails.dbInstanceIdentifier); if(dbNames.length === rdsInfo.length){ callback(null,dbNames); } From a79ac8c71ee274c615052099f0d86c46d7b50a42 Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Tue, 8 Nov 2016 16:20:08 +0530 Subject: [PATCH 3/3] Design Refector --- .../design/controllers/blueprintCreateCtrl.js | 55 ++-- .../services/blueprintCreateServices.js | 4 +- .../design/view/blueprintCreate.html | 52 +-- .../blueprint/popups/blueprintInfoCtrl.js | 2 +- server/app/routes/v1.0/routes_azure.js | 296 ++++++++++-------- server/app/routes/v1.0/routes_d4dMasters.js | 12 +- 6 files changed, 222 insertions(+), 199 deletions(-) diff --git a/client/cat3/src/partials/sections/dashboard/design/controllers/blueprintCreateCtrl.js b/client/cat3/src/partials/sections/dashboard/design/controllers/blueprintCreateCtrl.js index ad1067a03..ac249d34c 100755 --- a/client/cat3/src/partials/sections/dashboard/design/controllers/blueprintCreateCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/design/controllers/blueprintCreateCtrl.js @@ -206,7 +206,8 @@ } else if($scope.providerType === 'AZURE'){ bpCreateSer.getAzureLocations(blueprintCreation.newEnt.providers).then(function(data){ if(blueprintCreation.newEnt.providers){ - blueprintCreation.regionListingAzure = data.Locations.Location; + blueprintCreation.regionListingAzure = data.locationList; + blueprintCreation.instanceSizeListingAzure = data.instanceSizeList; $scope.isRegionKeyPairLoading = false; } }); @@ -247,33 +248,27 @@ blueprintCreation.listVpcs = function(){ $scope.isVPCLoading = true; - if($scope.providerType === 'AWS'){ - bpCreateSer.postVpcs(blueprintCreation.newEnt.providers,blueprintCreation.newEnt.region).then(function(data){ - if(blueprintCreation.newEnt.region){ - blueprintCreation.vpcListing = data.Vpcs; - $scope.isVPCLoading = false; - } - }); - } else if($scope.providerType === 'AZURE'){ - bpCreateSer.getAzureVPC(blueprintCreation.newEnt.providers).then(function(data){ - if(blueprintCreation.newEnt.region){ - var azureVpc = data.VirtualNetworkSites.VirtualNetworkSite; - for(var i =0; i -
@@ -350,7 +350,7 @@ @@ -378,7 +378,7 @@
@@ -389,7 +389,7 @@
@@ -400,7 +400,7 @@
@@ -411,7 +411,7 @@
@@ -454,7 +454,7 @@ Configure Stack Parameters
-
-
-