From 05845575e428ccbe762644657df4dd809d30977c Mon Sep 17 00:00:00 2001 From: harsha-iiiv Date: Fri, 20 Mar 2020 16:11:59 +0530 Subject: [PATCH 1/4] Add EC2 key pair management operations --- aws.js | 5 ++- compute/aws-ec2.js | 51 +++++++++++++++++++++++++++++- package-lock.json | 78 ++++++++++++++++++---------------------------- package.json | 3 +- 4 files changed, 85 insertions(+), 52 deletions(-) diff --git a/aws.js b/aws.js index 4cdb8bc..76443bd 100644 --- a/aws.js +++ b/aws.js @@ -8,7 +8,6 @@ const DirectConnect = require("./network/aws-directconnect"); const RDS = require("./database/aws-rds"); const DynamoDB = require("./database/aws-dynamodb"); const IAM = require("./security/aws-iam"); - class AWS { /** * Expose AWS APIs @@ -16,7 +15,7 @@ class AWS { */ constructor(configPath, awsSDk) { this._AWS = awsSDk; - + if ( !this._AWS.config.credentials || !this._AWS.config.credentials.accessKeyId || @@ -162,4 +161,4 @@ class AWS { } } -module.exports = AWS; +module.exports = AWS; \ No newline at end of file diff --git a/compute/aws-ec2.js b/compute/aws-ec2.js index 7ba71ab..72fca6e 100644 --- a/compute/aws-ec2.js +++ b/compute/aws-ec2.js @@ -11,7 +11,7 @@ class EC2 { this._apiVersion = options.apiVersion; this._ec2 = new this._AWS.EC2({ apiVersion: this._apiVersion }); } - + /** * Create EC2 instance * @create @@ -188,6 +188,55 @@ class EC2 { }); }); } + +/** + * Describing Your Key Pairs + * @Keypairsdetails + * No params needed + */ + + Keypairsdetails(){ + + return new Promise((resolve, reject)=>{ + + this._ec2.describeKeyPairs((err, data)=>{ + if (err) + reject(err, err.stack); + else { + resolve('key pair removed'); + } + }); + }); + } + + + generatekeypairs(params) { + + + + return new Promise((resolve, reject) => { + this._ec2.createKeyPair(params, (err, data) => { + if (err) reject(err, err.stack); + else { + resolve(data); + } + }); + }); + } + + removekeypairs(params) { + return new Promise((resolve, reject) => { + this._ec2.deleteKeyPair(params, (err, data) => { + if (err) reject(err, err.stack); + else { + resolve(data); + } + }); + }); + } + } + + module.exports = EC2; diff --git a/package-lock.json b/package-lock.json index 75f592e..37f34d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,18 +66,18 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "aws-sdk": { - "version": "2.358.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.358.0.tgz", - "integrity": "sha512-nS47i+YecWDAy3JE55GrC2dLbWsc5lqIub8y+VgHPoVI11f/wmWpF1kY+8FD20IGbZQHWiqiMdMZjFS86L1w6g==", + "version": "2.642.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.642.0.tgz", + "integrity": "sha512-0ZNgL1HBXRVobFD9Z64RyQk50cNABDMU1GV4lYIAvao4urYqYJi2MEVQmq+7WyXyzkBWu3lAPNDiJ8WW7emTzg==", "requires": { "buffer": "4.9.1", "events": "1.1.1", - "ieee754": "1.1.8", + "ieee754": "1.1.13", "jmespath": "0.15.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.1.0", + "uuid": "3.3.2", "xml2js": "0.4.19" } }, @@ -137,9 +137,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "brace-expansion": { "version": "1.1.11", @@ -422,6 +422,11 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -815,9 +820,9 @@ } }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "inflight": { "version": "1.0.6", @@ -1021,9 +1026,9 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "lcid": { "version": "2.0.0", @@ -1501,7 +1506,7 @@ }, "sax": { "version": "1.2.1", - "resolved": "http://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, "semver": { @@ -1515,9 +1520,9 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -1796,35 +1801,14 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "unset-value": { @@ -1883,9 +1867,9 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "which": { "version": "1.3.1", @@ -1966,7 +1950,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "y18n": { diff --git a/package.json b/package.json index 7fa5783..e469630 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,9 @@ }, "homepage": "https://github.com/cloudlibz/nodecloud-aws#readme", "dependencies": { - "aws-sdk": "^2.229.1", + "aws-sdk": "^2.642.0", "chai": "^4.2.0", + "dotenv": "^8.2.0", "mocha": "^6.0.2", "nock": "^10.0.6" } From c9092a1879310a119415e9c23f98b806ba449200 Mon Sep 17 00:00:00 2001 From: harsha-iiiv Date: Fri, 20 Mar 2020 16:31:11 +0530 Subject: [PATCH 2/4] Fixes --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dc27cca..cc4a19b 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ <<<<<<< HEAD "aws-sdk": "^2.642.0", "chai": "^4.2.0", - "dotenv": "^8.2.0", + "mocha": "^6.0.2", "nock": "^10.0.6" ======= From 08008e5477a5fa7bae95d7d7484ef9deed354f86 Mon Sep 17 00:00:00 2001 From: harsha-iiiv Date: Fri, 20 Mar 2020 16:37:40 +0530 Subject: [PATCH 3/4] Fixes --- aws.js | 20 -------------------- compute/aws-ec2.js | 42 ++++++++++++++++-------------------------- package.json | 10 ---------- 3 files changed, 16 insertions(+), 56 deletions(-) diff --git a/aws.js b/aws.js index 8cc4850..d94195d 100644 --- a/aws.js +++ b/aws.js @@ -1,4 +1,3 @@ -<<<<<<< HEAD const EC2 = require("./compute/aws-ec2"); const ECS = require("./compute/aws-ecs"); const EBS = require("./storage/aws-ebs"); @@ -9,19 +8,6 @@ const DirectConnect = require("./network/aws-directconnect"); const RDS = require("./database/aws-rds"); const DynamoDB = require("./database/aws-dynamodb"); const IAM = require("./security/aws-iam"); -======= -const ec2 = require("./compute/aws-ec2"); -const ecs = require("./compute/aws-ecs"); -const ebs = require("./storage/aws-ebs"); -const s3 = require("./storage/aws-s3"); -const elb = require("./network/aws-elb"); -const route53 = require("./network/aws-route53"); -const directConnect = require("./network/aws-directconnect"); -const rds = require("./database/aws-rds"); -const dynamoDB = require("./database/aws-dynamodb"); -const iam = require("./security/aws-iam"); - ->>>>>>> 504a5f0021252753ca2e23597c92bacb8c1b295d class AWS { /** * Expose AWS APIs @@ -29,12 +15,6 @@ class AWS { */ constructor(configPath, awsSDk) { this._AWS = awsSDk; -<<<<<<< HEAD - -======= - console.log(configPath) - ->>>>>>> 504a5f0021252753ca2e23597c92bacb8c1b295d if ( !this._AWS.config.credentials || !this._AWS.config.credentials.accessKeyId || diff --git a/compute/aws-ec2.js b/compute/aws-ec2.js index 546879a..c55d745 100644 --- a/compute/aws-ec2.js +++ b/compute/aws-ec2.js @@ -8,9 +8,11 @@ class EC2 { constructor(aws, options) { this._AWS = aws; this._apiVersion = options.apiVersion; - this._ec2 = new this._AWS.EC2({ apiVersion: this._apiVersion }); + this._ec2 = new this._AWS.EC2({ + apiVersion: this._apiVersion + }); } - + /** * Create EC2 instance * @create @@ -188,38 +190,30 @@ class EC2 { }); } -/** + /** * Describing Your Key Pairs * @Keypairsdetails * No params needed */ - Keypairsdetails(){ - - return new Promise((resolve, reject)=>{ - - this._ec2.describeKeyPairs((err, data)=>{ - if (err) - reject(err, err.stack); - else { - resolve('key pair removed'); - } - }); - }); + Keypairsdetails() { + return new Promise((resolve, reject) => { + this._ec2.describeKeyPairs((err, data) => { + if (err) reject(err, err.stack); + else { + resolve(data); + } + }); + }); } - /** * Describing Your Key Pairs * @generatekeypairs * @param {object} params */ - generatekeypairs(params) { - - - return new Promise((resolve, reject) => { this._ec2.createKeyPair(params, (err, data) => { if (err) reject(err, err.stack); @@ -228,10 +222,9 @@ class EC2 { } }); }); - } - + } - /** + /** * Describing Your Key Pairs * @removekeypairs * @param {object} params @@ -247,9 +240,6 @@ class EC2 { }); }); } - } - - module.exports = EC2; diff --git a/package.json b/package.json index cc4a19b..7c748b1 100644 --- a/package.json +++ b/package.json @@ -22,19 +22,9 @@ }, "homepage": "https://github.com/cloudlibz/nodecloud-aws#readme", "dependencies": { -<<<<<<< HEAD "aws-sdk": "^2.642.0", "chai": "^4.2.0", - "mocha": "^6.0.2", "nock": "^10.0.6" -======= - "aws-sdk": "^2.229.1" - }, - "devDependencies": { - "chai": "^4.2.0", - "mocha": "^7.1.0", - "nock": "^12.0.2" ->>>>>>> 504a5f0021252753ca2e23597c92bacb8c1b295d } } From e22b27a15c248fcd2a001034c963e83e4e2a538a Mon Sep 17 00:00:00 2001 From: harsha-iiiv Date: Fri, 20 Mar 2020 16:46:10 +0530 Subject: [PATCH 4/4] New changes --- aws.js | 23 +++++++++++++---------- package.json | 8 +++++--- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/aws.js b/aws.js index d94195d..3fdae4b 100644 --- a/aws.js +++ b/aws.js @@ -1,13 +1,14 @@ -const EC2 = require("./compute/aws-ec2"); -const ECS = require("./compute/aws-ecs"); -const EBS = require("./storage/aws-ebs"); -const S3 = require("./storage/aws-s3"); -const ELB = require("./network/aws-elb"); -const Route53 = require("./network/aws-route53"); -const DirectConnect = require("./network/aws-directconnect"); -const RDS = require("./database/aws-rds"); -const DynamoDB = require("./database/aws-dynamodb"); -const IAM = require("./security/aws-iam"); +const ec2 = require("./compute/aws-ec2"); +const ecs = require("./compute/aws-ecs"); +const ebs = require("./storage/aws-ebs"); +const s3 = require("./storage/aws-s3"); +const elb = require("./network/aws-elb"); +const route53 = require("./network/aws-route53"); +const directConnect = require("./network/aws-directconnect"); +const rds = require("./database/aws-rds"); +const dynamoDB = require("./database/aws-dynamodb"); +const iam = require("./security/aws-iam"); + class AWS { /** * Expose AWS APIs @@ -15,6 +16,8 @@ class AWS { */ constructor(configPath, awsSDk) { this._AWS = awsSDk; + console.log(configPath) + if ( !this._AWS.config.credentials || !this._AWS.config.credentials.accessKeyId || diff --git a/package.json b/package.json index 7c748b1..4cafc79 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,11 @@ }, "homepage": "https://github.com/cloudlibz/nodecloud-aws#readme", "dependencies": { - "aws-sdk": "^2.642.0", + "aws-sdk": "^2.229.1" + }, + "devDependencies": { "chai": "^4.2.0", - "mocha": "^6.0.2", - "nock": "^10.0.6" + "mocha": "^7.1.0", + "nock": "^12.0.2" } }