Skip to content

Commit 5e0924b

Browse files
authored
Support encrypted kvm creation (#108)
* Support encrypted kvm creation * Update Readme for encrypted kvm * Added test for creating a encrypted kvm
1 parent 645a735 commit 5e0924b

File tree

3 files changed

+60
-14
lines changed

3 files changed

+60
-14
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,9 @@ for organization name, all of which are required.
663663
`--api -n`
664664
(optional) The API to target for an API-scoped KVM operation.
665665

666+
`--encrypted`
667+
(optional) Create a encrypted KVM Map.
668+
666669
### <a name="addEntryToKVM"></a>addEntryToKVM
667670

668671
Adds an entry of name:value to the named map in the Apigee KVM.

lib/commands/create-KVM.js

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ var descriptor = defaults.defaultDescriptor({
2323
name:'Map Name',
2424
required: true,
2525
prompt: true
26-
}
26+
},
27+
encrypted: {
28+
name: 'Encrypted',
29+
required: false,
30+
toggle: true
31+
},
2732
});
2833

2934
module.exports.descriptor = descriptor;
@@ -32,25 +37,27 @@ module.exports.run = function(opts, cb) {
3237
if (opts.debug) {
3338
console.log('createKeyVaueMap: %j', opts);
3439
}
35-
var payload = {
36-
"name" : opts.mapName
37-
}
40+
var payload = {
41+
name : opts.mapName,
42+
encrypted: opts.encrypted
43+
};
3844

3945
var uri = util.format('%s/v1/o/%s/keyvaluemaps', opts.baseuri, opts.organization);
40-
46+
4147
if (opts.api) {
4248
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps', opts.baseuri, opts.organization, opts.api);
4349
}
44-
50+
4551
if (opts.environment) {
4652
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps', opts.baseuri, opts.organization, opts.environment);
4753
}
48-
49-
var requestOpts = {
50-
uri: uri,
51-
method:'POST',
52-
body: payload,
53-
json:true
54-
}
55-
command_utils.run('createKeyValueMap',opts, requestOpts, cb)
54+
55+
var requestOpts = {
56+
uri: uri,
57+
method:'POST',
58+
body: payload,
59+
json:true
60+
};
61+
62+
command_utils.run('createKeyValueMap',opts, requestOpts, cb);
5663
};

remotetests/remotetest.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ var DEVELOPER_EMAIL = 'test123@apigee.com';
2121
var APP_NAME = 'test123test123';
2222
var TARGET_SERVER_NAME = 'apigee-cli-test-servername';
2323
var MAP_NAME = 'apigee-cli-test-kvm';
24+
var MAP_NAME_ENCRYPTED = 'apigee-cli-test-kvm-encrypted';
2425
var SHARED_FLOW_NAME = 'apigee-cli-sf';
2526
var verbose = false;
2627

@@ -30,6 +31,23 @@ describe('Remote Tests', function() {
3031
var deployedRevision;
3132
var deployedUri;
3233

34+
after(function(done) {
35+
// cleanup encrypted kvm
36+
var opts = baseOpts();
37+
opts.mapName = MAP_NAME_ENCRYPTED;
38+
opts.environment = config.environment;
39+
apigeetool.deleteKVM(opts,function(err,result) {
40+
if (verbose) {
41+
console.log('Delete KVM result = %j', result);
42+
}
43+
if (err) {
44+
done(err);
45+
} else {
46+
done()
47+
}
48+
});
49+
});
50+
3351
it('Deploy Apigee Proxy with Promise SDK', function(done) {
3452
var opts = baseOpts();
3553
opts.api = APIGEE_PROXY_NAME;
@@ -807,6 +825,24 @@ describe('Remote Tests', function() {
807825
done(err)})
808826
});
809827

828+
it('Create Encrypted KVM',function(done){
829+
var opts = baseOpts();
830+
opts.mapName = MAP_NAME_ENCRYPTED;
831+
opts.environment = config.environment;
832+
opts.encrypted = true;
833+
apigeetool.getPromiseSDK()
834+
.createKVM(opts)
835+
.then(function(res){
836+
if (!res.encrypted) {
837+
return done(new Error('Map was not encrypted'));
838+
}
839+
done();
840+
}, function(err){
841+
console.log(err)
842+
done(err)
843+
})
844+
});
845+
810846
it('Add Entry to KVM',function(done){
811847
// This will not work for non-cps orgs
812848
var opts = baseOpts();

0 commit comments

Comments
 (0)