apigeetool
Advanced tools
Comparing version 0.16.4 to 0.16.5
@@ -41,2 +41,3 @@ /* jshint node: true */ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -43,0 +44,0 @@ console.log('addEntryToKVM: %j', opts); |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -16,3 +16,3 @@ prompt: true | ||
email: { | ||
name: 'Developer email', | ||
name: "Developer email", | ||
required: true, | ||
@@ -25,17 +25,23 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('assignUserRole: %j', opts); | ||
console.log("assignUserRole: %j", opts); | ||
} | ||
let body = util.format('id=%s', encodeURIComponent(opts.email)); | ||
let uri = util.format('%s/v1/o/%s/userroles/%s/users', opts.baseuri, opts.organization, opts.roleName); | ||
let body = util.format("id=%s", encodeURIComponent(opts.email)); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s/users", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'POST', | ||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, | ||
body, | ||
json:true | ||
}; | ||
command_utils.run('assignUserRole', opts,requestOptions, cb); | ||
uri, | ||
method: "POST", | ||
headers: { "Content-Type": "application/x-www-form-urlencoded" }, | ||
body, | ||
json: true | ||
}; | ||
command_utils.run("assignUserRole", opts, requestOptions, cb); | ||
}; |
@@ -31,2 +31,3 @@ /* jshint node: true */ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -33,0 +34,0 @@ console.log('attachFlowHook: %j', opts); |
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
@@ -22,2 +23,3 @@ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -24,0 +26,0 @@ console.log('clearCache: %j', opts); |
@@ -1,222 +0,223 @@ | ||
const Table = require('cli-table'); | ||
const options = require('../options'); | ||
const Table = require("cli-table"); | ||
const options = require("../options"); | ||
const Commands = { | ||
attachFlowHook: { | ||
description: 'Attach a Shared Flow to a Flow Hook', | ||
load: () => require('./attachFlowHook') | ||
description: "Attach a Shared Flow to a Flow Hook", | ||
load: () => require("./attachFlowHook") | ||
}, | ||
detachFlowHook: { | ||
description: 'Detach a Shared Flow from a Flow Hook', | ||
load: () => require('./detachFlowHook') | ||
description: "Detach a Shared Flow from a Flow Hook", | ||
load: () => require("./detachFlowHook") | ||
}, | ||
getFlowHook: { | ||
description: 'Get the Shared Flow attached to a Flow Hook', | ||
load: () => require('./getFlowHook') | ||
description: "Get the Shared Flow attached to a Flow Hook", | ||
load: () => require("./getFlowHook") | ||
}, | ||
createTargetServer: { | ||
description: 'Create a Target Server', | ||
load: () => require('./createTargetServer') | ||
description: "Create a Target Server", | ||
load: () => require("./createTargetServer") | ||
}, | ||
deleteTargetServer: { | ||
description: 'Delete a Target Server', | ||
load: () => require('./deleteTargetServer') | ||
description: "Delete a Target Server", | ||
load: () => require("./deleteTargetServer") | ||
}, | ||
getTargetServer: { | ||
description: 'Get a Target Server', | ||
load: () => require('./getTargetServer') | ||
description: "Get a Target Server", | ||
load: () => require("./getTargetServer") | ||
}, | ||
listTargetServers: { | ||
description: 'List Target Servers', | ||
load: () => require('./listTargetServers') | ||
description: "List Target Servers", | ||
load: () => require("./listTargetServers") | ||
}, | ||
updateTargetServer: { | ||
description: 'Update a Target Server', | ||
load: () => require('./updateTargetServer') | ||
description: "Update a Target Server", | ||
load: () => require("./updateTargetServer") | ||
}, | ||
listProxies: { | ||
description: 'List Proxies', | ||
load: () => require('./listProxies') | ||
description: "List Proxies", | ||
load: () => require("./listProxies") | ||
}, | ||
listSharedflows: { | ||
description: 'List Shared Flows', | ||
load: () => require('./listSharedflows') | ||
description: "List Shared Flows", | ||
load: () => require("./listSharedflows") | ||
}, | ||
createkvmmap: { | ||
description: 'Create a KVM map', | ||
load: () => require('./createKVM') | ||
createKVMmap: { | ||
description: "Create a KVM map", | ||
load: () => require("./createKVMmap") | ||
}, | ||
addEntryToKVM: { | ||
description: 'Add an entry to a KVM map', | ||
load: () => require('./addEntryToKVM') | ||
description: "Add an entry to a KVM map", | ||
load: () => require("./addEntryToKVM") | ||
}, | ||
getKVMentry: { | ||
description: 'Get an unencrypted KVM entry', | ||
load: () => require('./getKVMentry') | ||
description: "Get an unencrypted KVM entry", | ||
load: () => require("./getKVMentry") | ||
}, | ||
updateKVMEntry: { | ||
description: "Updates an entry in a KVM map", | ||
load: () => require('./updateKVMentry') | ||
load: () => require("./updateKVMentry") | ||
}, | ||
getkvmmap: { | ||
description: 'Get a KVM map', | ||
load: () => require('./getKVMmap') | ||
getKVMmap: { | ||
description: "Get a KVM map", | ||
load: () => require("./getKVMmap") | ||
}, | ||
deleteKVMentry: { | ||
description: 'Delete a single KVM entry', | ||
load: () => require('./deleteKVMentry') | ||
description: "Delete a single KVM entry", | ||
load: () => require("./deleteKVMentry") | ||
}, | ||
deletekvmmap: { | ||
description: 'Delete an entire KVM map', | ||
load: () => require('./deleteKVM') | ||
deleteKVMmap: { | ||
description: "Delete an entire KVM map", | ||
load: () => require("./deleteKVMmap") | ||
}, | ||
deployproxy: { | ||
description: 'Deploy API Proxy', | ||
load: () => require('./deployProxy') | ||
deployProxy: { | ||
description: "Deploy API Proxy", | ||
load: () => require("./deployProxy") | ||
}, | ||
deploynodeapp: { | ||
description: 'Deploy Node.js Application', | ||
load: () => require('./deployNodeApp') | ||
deployNodeApp: { | ||
description: "Deploy Node.js Application", | ||
load: () => require("./deployNodeApp") | ||
}, | ||
deployhostedtarget: { | ||
description: 'Deploy application as a Hosted Target proxy', | ||
load: () => require('./deployHostedTarget') | ||
deployHostedTarget: { | ||
description: "Deploy application as a Hosted Target proxy", | ||
load: () => require("./deployHostedTarget") | ||
}, | ||
listdeployments: { | ||
description: 'List Deployments', | ||
load: () => require('./listDeployments') | ||
listDeployments: { | ||
description: "List Deployments", | ||
load: () => require("./listDeployments") | ||
}, | ||
undeploy: { | ||
description: 'Undeploy Proxy or Node.js Application', | ||
load: () => require('./undeploy') | ||
description: "Undeploy Proxy or Node.js Application", | ||
load: () => require("./undeploy") | ||
}, | ||
fetchproxy: { | ||
description: 'Download Proxy bundle', | ||
load: () => require('./fetchProxy') | ||
fetchProxy: { | ||
description: "Download Proxy bundle", | ||
load: () => require("./fetchProxy") | ||
}, | ||
getlogs: { | ||
description: 'Get Application logs', | ||
load: () => require('./getlogs') | ||
description: "Get Application logs", | ||
load: () => require("./getlogs") | ||
}, | ||
delete: { | ||
description: 'Delete undeployed Proxy or Node.js Application', | ||
load: () => require('./delete') | ||
description: "Delete undeployed Proxy or Node.js Application", | ||
load: () => require("./delete") | ||
}, | ||
createCache: { | ||
description: 'Create a new Cache Resource in the environment', | ||
load: () => require('./createCache') | ||
description: "Create a new Cache Resource in the environment", | ||
load: () => require("./createCache") | ||
}, | ||
getCache: { | ||
description: 'Get a KVM map', | ||
load: () => require('./getCache') | ||
description: "Get a KVM map", | ||
load: () => require("./getCache") | ||
}, | ||
deleteCache: { | ||
description: 'Deletes a Cache Resource in the environment', | ||
load: () => require('./deleteCache') | ||
description: "Deletes a Cache Resource in the environment", | ||
load: () => require("./deleteCache") | ||
}, | ||
listCaches: { | ||
description: 'Lists Cache Resources in the environment', | ||
load: () => require('./listCaches') | ||
description: "Lists Cache Resources in the environment", | ||
load: () => require("./listCaches") | ||
}, | ||
clearCache: { | ||
description: 'Clears the entries in a named Cache Resource in the environment', | ||
load: () => require('./clearCache') | ||
description: | ||
"Clears the entries in a named Cache Resource in the environment", | ||
load: () => require("./clearCache") | ||
}, | ||
createProduct: { | ||
description: 'Create a new API Product', | ||
load: () => require('./createProduct') | ||
description: "Create a new API Product", | ||
load: () => require("./createProduct") | ||
}, | ||
deleteProduct: { | ||
description: 'Delete a API Product', | ||
load: () => require('./deleteProduct') | ||
description: "Delete a API Product", | ||
load: () => require("./deleteProduct") | ||
}, | ||
createDeveloper: { | ||
description: 'Create a new Developer', | ||
load: () => require('./createDeveloper') | ||
description: "Create a new Developer", | ||
load: () => require("./createDeveloper") | ||
}, | ||
deleteDeveloper: { | ||
description: 'Delete a Developer', | ||
load: () => require('./deleteDeveloper') | ||
description: "Delete a Developer", | ||
load: () => require("./deleteDeveloper") | ||
}, | ||
createApp: { | ||
description: 'Create a new App', | ||
load: () => require('./createApp') | ||
description: "Create a new App", | ||
load: () => require("./createApp") | ||
}, | ||
createAppKey: { | ||
description: 'Create a new App', | ||
load: () => require('./createAppKey') | ||
description: "Create a new App", | ||
load: () => require("./createAppKey") | ||
}, | ||
deleteApp: { | ||
description: 'Delete a App', | ||
load: () => require('./deleteApp') | ||
description: "Delete a App", | ||
load: () => require("./deleteApp") | ||
}, | ||
deploySharedflow: { | ||
description: 'Deploy SharedFlow', | ||
load: () => require('./deploySharedflow') | ||
description: "Deploy SharedFlow", | ||
load: () => require("./deploySharedflow") | ||
}, | ||
undeploySharedflow: { | ||
description: "Undeploy SharedFlow", | ||
load: () => require('./undeploySharedflow') | ||
load: () => require("./undeploySharedflow") | ||
}, | ||
fetchSharedflow: { | ||
description: "Download SharedFlow bundle", | ||
load: () => require('./fetchSharedflow') | ||
load: () => require("./fetchSharedflow") | ||
}, | ||
listSharedflowDeployments: { | ||
description: "List SharedFlow deployments", | ||
load: () => require('./listSharedflowDeployments') | ||
load: () => require("./listSharedflowDeployments") | ||
}, | ||
deleteSharedflow: { | ||
description: "Delete undeployed SharedFlow", | ||
load: () => require('./deleteSharedflow') | ||
load: () => require("./deleteSharedflow") | ||
}, | ||
deployExistingRevision: { | ||
description: "Deploy an existing revision to an environment", | ||
load: () => require('./deployExistingRevision') | ||
load: () => require("./deployExistingRevision") | ||
}, | ||
listRoles: { | ||
description: "List roles in an organziation", | ||
load: () => require('./listRoles') | ||
load: () => require("./listRoles") | ||
}, | ||
createRole: { | ||
description: "Create a userrole in an organziation", | ||
load: () => require('./createRole') | ||
load: () => require("./createRole") | ||
}, | ||
getRole: { | ||
description: "Get a userrole in an organziation", | ||
load: () => require('./getRole') | ||
load: () => require("./getRole") | ||
}, | ||
deleteRole: { | ||
description: "Delete a userrole in an organziation", | ||
load: () => require('./deleteRole') | ||
load: () => require("./deleteRole") | ||
}, | ||
getRolePermissions: { | ||
description: "Get resource permissions for a role", | ||
load: () => require('./getRolePermissions') | ||
load: () => require("./getRolePermissions") | ||
}, | ||
setRolePermissions: { | ||
description: "Set resource permissions for a role", | ||
load: () => require('./setRolePermissions') | ||
load: () => require("./setRolePermissions") | ||
}, | ||
assignUserRole: { | ||
description: "Assign user to a role", | ||
load: () => require('./assignUserRole') | ||
load: () => require("./assignUserRole") | ||
}, | ||
removeUserRole: { | ||
description: "Remove user from a role", | ||
load: () => require('./removeUserRole') | ||
load: () => require("./removeUserRole") | ||
}, | ||
verifyUserRole: { | ||
description: "Verify a user is in a role", | ||
load: () => require('./verifyUserRole') | ||
load: () => require("./verifyUserRole") | ||
}, | ||
listRoleUsers: { | ||
description: "List users in role", | ||
load: () => require('./listRoleUsers') | ||
load: () => require("./listRoleUsers") | ||
} | ||
}; | ||
module.exports.printCommandHelp = function() { | ||
module.exports.printCommandHelp = function () { | ||
console.error(); | ||
console.error('Valid commands:'); | ||
console.error("Valid commands:"); | ||
@@ -227,3 +228,3 @@ let tab = new Table(options.TableFormat); | ||
.sort() | ||
.forEach(key => { | ||
.forEach((key) => { | ||
tab.push([key, Commands[key].description]); | ||
@@ -235,7 +236,8 @@ }); | ||
module.exports.getCommand = function(n) { | ||
let commandKey = Object.keys(Commands) | ||
.find(key => key.toLowerCase() === n.toLowerCase()); | ||
module.exports.getCommand = function (n) { | ||
let commandKey = Object.keys(Commands).find( | ||
(key) => key.toLowerCase() === n.toLowerCase() | ||
); | ||
return Commands[commandKey]; | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -19,20 +19,23 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('createRole: %j', opts); | ||
console.log("createRole: %j", opts); | ||
} | ||
var payload = { | ||
"role" : [ | ||
{"name" : opts.roleName} | ||
] | ||
var payload = { | ||
role: [{ name: opts.roleName }] | ||
}; | ||
let uri = util.format('%s/v1/o/%s/userroles', opts.baseuri, opts.organization); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles", | ||
opts.baseuri, | ||
opts.organization | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'POST', | ||
method: "POST", | ||
body: payload, | ||
json:true | ||
}; | ||
command_utils.run('createRole', opts, requestOptions, cb); | ||
json: true | ||
}; | ||
command_utils.run("createRole", opts, requestOptions, cb); | ||
}; |
@@ -42,2 +42,3 @@ /* jshint node: true */ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -44,0 +45,0 @@ console.log('createTargetServer: %j', opts); |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
// this only works if the proxy/app has already been undeployed | ||
const util = require('util'), | ||
path = require('path'), | ||
async = require('async'), | ||
fs = require('fs'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
const util = require("util"), | ||
path = require("path"), | ||
async = require("async"), | ||
fs = require("fs"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
parseDeployments = require("./parseDeployments"); | ||
@@ -29,4 +29,4 @@ /* | ||
api: { | ||
name: 'API Name', | ||
shortOption: 'n', | ||
name: "API Name", | ||
shortOption: "n", | ||
required: true | ||
@@ -37,14 +37,14 @@ } | ||
module.exports.format = function(r) { | ||
module.exports.format = function (r) { | ||
if (r.name) { | ||
return parseDeployments.formatDeployment(r); | ||
} else { | ||
return ''; | ||
return ""; | ||
} | ||
}; | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('undeploy: %j', opts); | ||
console.log("undeploy: %j", opts); | ||
} | ||
@@ -55,13 +55,13 @@ | ||
// Run each function in series, and collect an array of results. | ||
doDelete(opts, request, function(err, results) { | ||
if (err) { | ||
cb(err); | ||
} else { | ||
if (opts.debug) { | ||
console.log('results: %j', results); | ||
} | ||
doDelete(opts, request, function (err, results) { | ||
if (err) { | ||
cb(err); | ||
} else { | ||
if (opts.debug) { | ||
console.log("results: %j", results); | ||
} | ||
cb(undefined, {}); | ||
} | ||
}); | ||
cb(undefined, {}); | ||
} | ||
}); | ||
}; | ||
@@ -71,42 +71,55 @@ | ||
if (opts.verbose) { | ||
console.log('Deleting %s', opts.api); | ||
console.log("Deleting %s", opts.api); | ||
} | ||
var uri = util.format('%s/v1/o/%s/apis/%s', opts.baseuri, opts.organization, opts.api); | ||
var uri = util.format( | ||
"%s/v1/o/%s/apis/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api | ||
); | ||
if (opts.debug) { | ||
console.log('Going to send DELETE to %s', uri); | ||
console.log("Going to send DELETE to %s", uri); | ||
} | ||
request({ | ||
uri: uri, | ||
method: 'DELETE', | ||
json: false, | ||
headers: { 'Content-Type': 'application/x-www-form-urlencoded', | ||
'Accept': 'application/json' } | ||
}, function(err, req, body) { | ||
var jsonBody = (body ? JSON.parse(body) : null); | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log('Delete successful'); | ||
request( | ||
{ | ||
uri: uri, | ||
method: "DELETE", | ||
json: false, | ||
headers: { | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
Accept: "application/json" | ||
} | ||
if (opts.debug) { | ||
console.log('%s', body); | ||
} | ||
done(undefined, jsonBody); | ||
} else { | ||
if (opts.verbose) { | ||
console.error('Delete result: %j', body); | ||
} | ||
}, | ||
function (err, req, body) { | ||
var jsonBody = body ? JSON.parse(body) : null; | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log("Delete successful"); | ||
} | ||
if (opts.debug) { | ||
console.log("%s", body); | ||
} | ||
done(undefined, jsonBody); | ||
} else { | ||
if (opts.verbose) { | ||
console.error("Delete result: %j", body); | ||
} | ||
var errMsg; | ||
if (jsonBody && (jsonBody.message)) { | ||
errMsg = jsonBody.message; | ||
} else { | ||
errMsg = util.format('Delete failed with status code %d', req.statusCode); | ||
var errMsg; | ||
if (jsonBody && jsonBody.message) { | ||
errMsg = jsonBody.message; | ||
} else { | ||
errMsg = util.format( | ||
"Delete failed with status code %d", | ||
req.statusCode | ||
); | ||
} | ||
done(new Error(errMsg)); | ||
} | ||
done(new Error(errMsg)); | ||
} | ||
}); | ||
); | ||
} |
@@ -26,3 +26,3 @@ /* jshint node: true */ | ||
if (opts.debug) { | ||
console.log('deletecache: %j', opts); | ||
console.log('deleteCache: %j', opts); | ||
} | ||
@@ -29,0 +29,0 @@ var request = defaults.defaultRequest(opts); |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
var util = require('util'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var defaults = require('../defaults'); | ||
var command_utils = require('./command-utils') | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: false | ||
}, | ||
api: { | ||
name: 'API', | ||
shortOption: 'n', | ||
name: "API", | ||
shortOption: "n", | ||
required: false | ||
}, | ||
mapName:{ | ||
name:'Map Name', | ||
mapName: { | ||
name: "Map Name", | ||
required: true, | ||
@@ -26,3 +26,3 @@ prompt: true | ||
entryName: { | ||
name:'Entry Name', | ||
name: "Entry Name", | ||
required: true, | ||
@@ -35,22 +35,43 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('deleteKVMentry: %j', opts); | ||
} | ||
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName); | ||
console.log("deleteKVMentry: %j", opts); | ||
} | ||
var uri = util.format( | ||
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
if (opts.api) { | ||
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
if (opts.environment) { | ||
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
var requestOpts = { | ||
uri: uri, | ||
method:'DELETE' | ||
} | ||
command_utils.run('deleteKVMentry',opts, requestOpts, cb) | ||
var requestOpts = { | ||
uri: uri, | ||
method: "DELETE" | ||
}; | ||
command_utils.run("deleteKVMentry", opts, requestOpts, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -19,14 +19,19 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('deleteRole: %j', opts); | ||
console.log("deleteRole: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s', | ||
opts.baseuri, opts.organization, opts.roleName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'DELETE', | ||
json:true | ||
}; | ||
command_utils.run('deleteRole', opts, requestOptions, cb); | ||
uri, | ||
method: "DELETE", | ||
json: true | ||
}; | ||
command_utils.run("deleteRole", opts, requestOptions, cb); | ||
}; |
@@ -1,9 +0,10 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true, | ||
@@ -13,3 +14,3 @@ prompt: true | ||
targetServerName: { | ||
name: 'Target Server Name', | ||
name: "Target Server Name", | ||
required: true, | ||
@@ -22,14 +23,20 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('deleteTargetServer: %j', opts); | ||
console.log("deleteTargetServer: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/e/%s/targetservers/%s', | ||
opts.baseuri, opts.organization, opts.environment,opts.targetServerName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/e/%s/targetservers/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.targetServerName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'DELETE', | ||
json:true | ||
}; | ||
command_utils.run('deleteTargetServer', opts, requestOptions, cb); | ||
uri, | ||
method: "DELETE", | ||
json: true | ||
}; | ||
command_utils.run("deleteTargetServer", opts, requestOptions, cb); | ||
}; |
@@ -8,3 +8,3 @@ /* jshint node: true */ | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
parseDeployments = require('./parseDeployments'); | ||
@@ -11,0 +11,0 @@ const DeploymentDelay = 60; |
@@ -1,68 +0,68 @@ | ||
const util = require('util'), | ||
path = require('path'), | ||
async = require('async'), | ||
fs = require('fs-extra'), | ||
mustache = require('mustache'), | ||
tmp = require('tmp'); | ||
const util = require("util"), | ||
path = require("path"), | ||
async = require("async"), | ||
fs = require("fs-extra"), | ||
mustache = require("mustache"), | ||
tmp = require("tmp"); | ||
tmp.setGracefulCleanup(); | ||
const defaults = require('../defaults'), | ||
options = require('../options'), | ||
ziputils = require('../ziputils'), | ||
parseDeployments = require('./parsedeployments'), | ||
fetchProxy = require('./fetchProxy'), | ||
deployProxy1 = require('./deployProxy'), | ||
createApiProxy = require('../deploycommon').createApiProxy, | ||
createProxy = require('../deploycommon').createProxy, | ||
deployProxy2 = require('../deploycommon').deployProxy, | ||
unzipProxy = require('../deploycommon').unzipProxy, | ||
copyFile = require('../deploycommon').copyFile, | ||
handleUploadResult = require('../deploycommon').handleUploadResult, | ||
usePackedSource = require('../deploycommon').usePackedSource, | ||
uploadSource = require('../deploycommon').uploadSource; | ||
const defaults = require("../defaults"), | ||
options = require("../options"), | ||
ziputils = require("../ziputils"), | ||
parseDeployments = require("./parseDeployments"), | ||
fetchProxy = require("./fetchProxy"), | ||
deployProxy1 = require("./deployProxy"), | ||
createApiProxy = require("../deploycommon").createApiProxy, | ||
createProxy = require("../deploycommon").createProxy, | ||
deployProxy2 = require("../deploycommon").deployProxy, | ||
unzipProxy = require("../deploycommon").unzipProxy, | ||
copyFile = require("../deploycommon").copyFile, | ||
handleUploadResult = require("../deploycommon").handleUploadResult, | ||
usePackedSource = require("../deploycommon").usePackedSource, | ||
uploadSource = require("../deploycommon").uploadSource; | ||
const APP_YAML = 'app.yaml'; | ||
const APP_YAML = "app.yaml"; | ||
var descriptor = defaults.defaultDescriptor({ | ||
api: { | ||
name: 'API Name', | ||
shortOption: 'n', | ||
name: "API Name", | ||
shortOption: "n", | ||
required: true | ||
}, | ||
environments: { | ||
name: 'Environments', | ||
shortOption: 'e', | ||
name: "Environments", | ||
shortOption: "e", | ||
required: true | ||
}, | ||
directory: { | ||
name: 'Directory', | ||
shortOption: 'd', | ||
name: "Directory", | ||
shortOption: "d", | ||
required: false | ||
}, | ||
virtualhosts: { | ||
name: 'Virtual Hosts', | ||
shortOption: 'v' | ||
name: "Virtual Hosts", | ||
shortOption: "v" | ||
}, | ||
'base-path': { | ||
name: 'Base Path', | ||
shortOption: 'b' | ||
"base-path": { | ||
name: "Base Path", | ||
shortOption: "b" | ||
}, | ||
'import-only': { | ||
name: 'Import Only', | ||
shortOption: 'i', | ||
"import-only": { | ||
name: "Import Only", | ||
shortOption: "i", | ||
toggle: true | ||
}, | ||
'preserve-policies': { | ||
name: 'Preserve policies from previous revision', | ||
shortOption: 'P', | ||
"preserve-policies": { | ||
name: "Preserve policies from previous revision", | ||
shortOption: "P", | ||
toggle: true | ||
}, | ||
'bundled-dependencies' : { | ||
name: 'Upload dependencies from bundledDependencies', | ||
"bundled-dependencies": { | ||
name: "Upload dependencies from bundledDependencies", | ||
toggle: true | ||
}, | ||
'upload-modules': { | ||
name: 'Upload Modules', | ||
shortOption: 'U', | ||
"upload-modules": { | ||
name: "Upload Modules", | ||
shortOption: "U", | ||
toggle: true | ||
@@ -73,5 +73,5 @@ } | ||
module.exports.format = function(r) { | ||
var result = ''; | ||
r.forEach(function(e) { | ||
module.exports.format = function (r) { | ||
var result = ""; | ||
r.forEach(function (e) { | ||
result = result + parseDeployments.formatDeployment(e); | ||
@@ -82,3 +82,3 @@ }); | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
if (!opts.directory) { | ||
@@ -91,8 +91,8 @@ opts.directory = process.cwd(); | ||
if (opts.debug) { | ||
console.log('deployhostedtarget: %j', opts); | ||
console.log("deployhostedtarget: %j", opts); | ||
} | ||
try { | ||
fs.statSync(path.join(opts.directory, APP_YAML)) | ||
} catch(err) { | ||
fs.statSync(path.join(opts.directory, APP_YAML)); | ||
} catch (err) { | ||
return cb(new Error("missing required 'app.yaml'")); | ||
@@ -103,7 +103,9 @@ } | ||
getDeploymentInfo(opts, request, function(err) { | ||
if (err) { return cb(err); } | ||
getDeploymentInfo(opts, request, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// if preserve-policies, we do something entirely different... | ||
if (opts['preserve-policies'] && opts.deploymentVersion > 1) { | ||
if (opts["preserve-policies"] && opts.deploymentVersion > 1) { | ||
return preservePoliciesRun(opts, cb); | ||
@@ -113,3 +115,3 @@ } | ||
opts.remoteNpm = true; | ||
if (opts['upload-modules'] && (opts['upload-modules'] === true)) { | ||
if (opts["upload-modules"] && opts["upload-modules"] === true) { | ||
opts.remoteNpm = false; | ||
@@ -119,60 +121,68 @@ } | ||
var steps = [ | ||
function(done) { | ||
function (done) { | ||
createApiProxy(opts, request, done); | ||
} | ||
] | ||
]; | ||
if (opts['bundled-dependencies']) { | ||
if (opts["bundled-dependencies"]) { | ||
opts.remoteNpm = false; | ||
steps.push(function(done) { | ||
usePackedSource(opts.directory, opts, function(err, packedDirectory) { | ||
steps.push(function (done) { | ||
usePackedSource(opts.directory, opts, function (err, packedDirectory) { | ||
// set the target directory to upload to the packed directory | ||
opts.directory = packedDirectory | ||
opts.directory = packedDirectory; | ||
return done(err); | ||
}); | ||
}) | ||
}); | ||
} | ||
steps = steps.concat([ | ||
function(done) { | ||
uploadSource(opts.directory, 'hosted', opts, request, done); | ||
function (done) { | ||
uploadSource(opts.directory, "hosted", opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
createTarget(opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
createProxy(opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
deployProxy2(opts, request, done); | ||
} | ||
]) | ||
]); | ||
// Run each function in series, and collect an array of results. | ||
async.series(steps, | ||
function(err, results) { | ||
if (err) { return cb(err); } | ||
if (opts.debug) { console.log('results: %j', results); } | ||
async.series(steps, function (err, results) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
if (opts.debug) { | ||
console.log("results: %j", results); | ||
} | ||
async.map(Object.values(results[results.length - 1]), | ||
function(result, cb) { | ||
async.map( | ||
Object.values(results[results.length - 1]), | ||
function (result, cb) { | ||
if (opts.debug) { | ||
console.log("result: %j", result); | ||
} | ||
if (opts.debug) { console.log('result: %j', result); } | ||
var deployment = parseDeployments.parseDeploymentResult(result); | ||
if (deployment) { | ||
// Look up the deployed URI for user-friendliness | ||
parseDeployments.getPathInfo([ deployment ], opts, function(err) { | ||
// Ignore this error because deployment worked | ||
if (err && opts.verbose) { console.log('Error looking up deployed path: %s', err); } | ||
cb(undefined, deployment); | ||
}); | ||
} else { | ||
// Probably import-only -- do nothing | ||
cb(undefined, {}); | ||
} | ||
}, | ||
cb); | ||
}); | ||
var deployment = parseDeployments.parseDeploymentResult(result); | ||
if (deployment) { | ||
// Look up the deployed URI for user-friendliness | ||
parseDeployments.getPathInfo([deployment], opts, function (err) { | ||
// Ignore this error because deployment worked | ||
if (err && opts.verbose) { | ||
console.log("Error looking up deployed path: %s", err); | ||
} | ||
cb(undefined, deployment); | ||
}); | ||
} else { | ||
// Probably import-only -- do nothing | ||
cb(undefined, {}); | ||
} | ||
}, | ||
cb | ||
); | ||
}); | ||
}); | ||
@@ -182,6 +192,7 @@ }; | ||
function preservePoliciesRun(opts, cb) { | ||
// download the proxy to a temporary zip file | ||
tmp.file(function(err, fetchedProxyZip) { | ||
if (err) { return cb(err); } | ||
tmp.file(function (err, fetchedProxyZip) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
@@ -191,17 +202,27 @@ opts.revision = opts.deploymentVersion - 1; | ||
if (opts.verbose) { console.log('Downloading proxy %s revision %d', opts.name, opts.revision); } | ||
fetchProxy.run(opts, function(err) { | ||
if (err) { return cb(err); } | ||
if (opts.verbose) { | ||
console.log("Downloading proxy %s revision %d", opts.name, opts.revision); | ||
} | ||
fetchProxy.run(opts, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// set up temporary project dir | ||
tmp.dir({ unsafeCleanup: false }, function(err, tmpDir) { | ||
if (err) { return cb(err); } | ||
tmp.dir({ unsafeCleanup: false }, function (err, tmpDir) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
unzipProxy(opts, tmpDir, 'apiproxy/resources/hosted', function(err) { | ||
if (err) { return cb(err); } | ||
unzipProxy(opts, tmpDir, "apiproxy/resources/hosted", function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// copy hosted files to tmpDir hosted directory | ||
var sourcesDir = path.resolve(tmpDir, 'apiproxy/resources/hosted'); | ||
copySources(opts, sourcesDir, function(err) { | ||
if (err) { return cb(err); } | ||
var sourcesDir = path.resolve(tmpDir, "apiproxy/resources/hosted"); | ||
copySources(opts, sourcesDir, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
@@ -219,35 +240,56 @@ // deploy proxy at tmpDir | ||
function copySources(opts, targetDir, cb) { | ||
if (opts.verbose) { | ||
console.log("Copying sources into proxy"); | ||
} | ||
if (opts.verbose) { console.log('Copying sources into proxy'); } | ||
// Get a list of entries, broken down by which are directories | ||
ziputils.enumerateDirectory(opts.directory, 'hosted', opts.remoteNpm, function(err, entries) { | ||
if (err) { return cb(err); } | ||
ziputils.enumerateDirectory( | ||
opts.directory, | ||
"hosted", | ||
opts.remoteNpm, | ||
function (err, entries) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
if (opts.debug) { console.log('Directories to copy: %j', entries); } | ||
if (opts.debug) { | ||
console.log("Directories to copy: %j", entries); | ||
} | ||
function copyResource(entry, done) { | ||
function copyResource(entry, done) { | ||
if (entry.directory) { | ||
// ZIP up all directories, possibly with additional file prefixes | ||
if (opts.verbose) { | ||
console.log("Zipping: %s", entry.fileName); | ||
} | ||
ziputils.zipDirectory( | ||
entry.fileName, | ||
entry.zipEntryName, | ||
function (err, zipBuf) { | ||
if (err) { | ||
return done(err); | ||
} | ||
if (entry.directory) { | ||
// ZIP up all directories, possibly with additional file prefixes | ||
if (opts.verbose) { console.log('Zipping: %s', entry.fileName); } | ||
ziputils.zipDirectory(entry.fileName, entry.zipEntryName, function(err, zipBuf) { | ||
if (err) { return done(err); } | ||
// write zipBuf -> file | ||
var zipFileName = path.resolve(targetDir, entry.resourceName); | ||
// write zipBuf -> file | ||
var zipFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { | ||
console.log("Writing zip file: %s", zipFileName); | ||
} | ||
fs.writeFile(zipFileName, zipBuf, done); | ||
} | ||
); | ||
} else { | ||
// entry.file | ||
var targetFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { | ||
console.log("copy %s %s", entry.fileName, targetDir); | ||
} | ||
copyFile(entry.fileName, targetFileName, done); | ||
} | ||
} | ||
if (opts.verbose) { console.log('Writing zip file: %s', zipFileName); } | ||
fs.writeFile(zipFileName, zipBuf, done); | ||
}); | ||
} else { // entry.file | ||
var targetFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { console.log('copy %s %s', entry.fileName, targetDir); } | ||
copyFile(entry.fileName, targetFileName, done); | ||
} | ||
async.each(entries, copyResource, cb); | ||
} | ||
async.each(entries, copyResource, cb); | ||
}); | ||
); | ||
} | ||
@@ -261,9 +303,18 @@ | ||
} catch (e) { | ||
done(new Error(util.format('Proxy base directory %s does not exist', | ||
opts.directory))); | ||
done( | ||
new Error( | ||
util.format("Proxy base directory %s does not exist", opts.directory) | ||
) | ||
); | ||
return; | ||
} | ||
if (!ds.isDirectory()) { | ||
done(new Error(util.format('Proxy base directory %s is not a directory', | ||
opts.directory))); | ||
done( | ||
new Error( | ||
util.format( | ||
"Proxy base directory %s is not a directory", | ||
opts.directory | ||
) | ||
) | ||
); | ||
return; | ||
@@ -273,5 +324,10 @@ } | ||
// Find out which revision we should be creating | ||
request.get(util.format('%s/v1/o/%s/apis/%s', | ||
opts.baseuri, opts.organization, opts.api), | ||
function(err, req, body) { | ||
request.get( | ||
util.format( | ||
"%s/v1/o/%s/apis/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api | ||
), | ||
function (err, req, body) { | ||
if (err) { | ||
@@ -283,4 +339,6 @@ done(err); | ||
if (opts.verbose) { | ||
console.log('API %s does not exist. Going to create revision 1', | ||
opts.api); | ||
console.log( | ||
"API %s does not exist. Going to create revision 1", | ||
opts.api | ||
); | ||
} | ||
@@ -292,14 +350,22 @@ done(); | ||
body.revision | ||
.map(v => parseInt(v)) | ||
.reduce((a, b) => ((a>b)?a:b), 0) + 1; | ||
.map((v) => parseInt(v)) | ||
.reduce((a, b) => (a > b ? a : b), 0) + 1; | ||
if (opts.verbose) { | ||
console.log('Going to create revision %d of API %s', | ||
opts.deploymentVersion, opts.api); | ||
console.log( | ||
"Going to create revision %d of API %s", | ||
opts.deploymentVersion, | ||
opts.api | ||
); | ||
} | ||
done(); | ||
} else { | ||
done(new Error(util.format('Get API info returned status %d', req.statusCode))); | ||
done( | ||
new Error( | ||
util.format("Get API info returned status %d", req.statusCode) | ||
) | ||
); | ||
} | ||
}); | ||
} | ||
); | ||
} | ||
@@ -311,23 +377,32 @@ | ||
'<TargetEndpoint name="default">' + | ||
'<PreFlow name="PreFlow"/>' + | ||
'<PostFlow name="PostFlow"/>' + | ||
'<HostedTarget/>' + | ||
'</TargetEndpoint>', opts); | ||
'<PreFlow name="PreFlow"/>' + | ||
'<PostFlow name="PostFlow"/>' + | ||
"<HostedTarget/>" + | ||
"</TargetEndpoint>", | ||
opts | ||
); | ||
var uri = util.format('%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default', | ||
opts.baseuri, opts.organization, opts.api, | ||
opts.deploymentVersion); | ||
var uri = util.format( | ||
"%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.deploymentVersion | ||
); | ||
if (opts.verbose) { | ||
console.log('Creating the target endpoint'); | ||
console.log("Creating the target endpoint"); | ||
} | ||
request({ | ||
uri: uri, | ||
method: 'POST', | ||
json: false, | ||
headers: { 'Content-Type': 'application/xml' }, | ||
body: targetDoc | ||
}, function(err, req, body) { | ||
handleUploadResult(err, req, 'targets/default.xml', done); | ||
}); | ||
request( | ||
{ | ||
uri: uri, | ||
method: "POST", | ||
json: false, | ||
headers: { "Content-Type": "application/xml" }, | ||
body: targetDoc | ||
}, | ||
function (err, req, body) { | ||
handleUploadResult(err, req, "targets/default.xml", done); | ||
} | ||
); | ||
} |
@@ -1,29 +0,29 @@ | ||
const util = require('util'), | ||
path = require('path'), | ||
async = require('async'), | ||
fs = require('fs'), | ||
mustache = require('mustache'), | ||
tmp = require('tmp'); | ||
const util = require("util"), | ||
path = require("path"), | ||
async = require("async"), | ||
fs = require("fs"), | ||
mustache = require("mustache"), | ||
tmp = require("tmp"); | ||
tmp.setGracefulCleanup(); | ||
const defaults = require('../defaults'), | ||
options = require('../options'), | ||
ziputils = require('../ziputils'), | ||
parseDeployments = require('./parsedeployments'), | ||
fetchProxy = require('./fetchProxy'), | ||
deployProxy1 = require('./deployProxy'), | ||
createApiProxy = require('../deploycommon').createApiProxy, | ||
createProxy = require('../deploycommon').createProxy, | ||
deployProxy2 = require('../deploycommon').deployProxy, | ||
unzipProxy = require('../deploycommon').unzipProxy, | ||
copyFile = require('../deploycommon').copyFile, | ||
handleUploadResult = require('../deploycommon').handleUploadResult, | ||
usePackedSource = require('../deploycommon').usePackedSource, | ||
uploadSource = require('../deploycommon').uploadSource; | ||
const defaults = require("../defaults"), | ||
options = require("../options"), | ||
ziputils = require("../ziputils"), | ||
parseDeployments = require("./parseDeployments"), | ||
fetchProxy = require("./fetchProxy"), | ||
deployProxy1 = require("./deployProxy"), | ||
createApiProxy = require("../deploycommon").createApiProxy, | ||
createProxy = require("../deploycommon").createProxy, | ||
deployProxy2 = require("../deploycommon").deployProxy, | ||
unzipProxy = require("../deploycommon").unzipProxy, | ||
copyFile = require("../deploycommon").copyFile, | ||
handleUploadResult = require("../deploycommon").handleUploadResult, | ||
usePackedSource = require("../deploycommon").usePackedSource, | ||
uploadSource = require("../deploycommon").uploadSource; | ||
var cleanResults = require('../utils').cleanResults; | ||
var cleanResults = require("../utils").cleanResults; | ||
var DeploymentDelay = 60; | ||
var ProxyBase = 'apiproxy'; | ||
var ProxyBase = "apiproxy"; | ||
@@ -35,60 +35,60 @@ // By default, do not run NPM remotely | ||
api: { | ||
name: 'API Name', | ||
shortOption: 'n', | ||
name: "API Name", | ||
shortOption: "n", | ||
required: false | ||
}, | ||
environments: { | ||
name: 'Environments', | ||
shortOption: 'e', | ||
name: "Environments", | ||
shortOption: "e", | ||
required: true | ||
}, | ||
directory: { | ||
name: 'Directory', | ||
shortOption: 'd', | ||
name: "Directory", | ||
shortOption: "d", | ||
required: false | ||
}, | ||
main: { | ||
name: 'Main Script', | ||
shortOption: 'm', | ||
name: "Main Script", | ||
shortOption: "m", | ||
required: false | ||
}, | ||
virtualhosts: { | ||
name: 'Virtual Hosts', | ||
shortOption: 'v' | ||
name: "Virtual Hosts", | ||
shortOption: "v" | ||
}, | ||
'base-path': { | ||
name: 'Base Path', | ||
shortOption: 'b' | ||
"base-path": { | ||
name: "Base Path", | ||
shortOption: "b" | ||
}, | ||
'import-only': { | ||
name: 'Import Only', | ||
shortOption: 'i', | ||
"import-only": { | ||
name: "Import Only", | ||
shortOption: "i", | ||
toggle: true | ||
}, | ||
'resolve-modules': { | ||
name: 'Resolve Modules', | ||
shortOption: 'R', | ||
"resolve-modules": { | ||
name: "Resolve Modules", | ||
shortOption: "R", | ||
toggle: true | ||
}, | ||
'bundled-dependencies' : { | ||
name: 'Upload dependencies from bundledDependencies', | ||
"bundled-dependencies": { | ||
name: "Upload dependencies from bundledDependencies", | ||
toggle: true | ||
}, | ||
'upload-modules': { | ||
name: 'Upload Modules', | ||
shortOption: 'U', | ||
"upload-modules": { | ||
name: "Upload Modules", | ||
shortOption: "U", | ||
toggle: true | ||
}, | ||
'preserve-policies': { | ||
name: 'Preserve policies from previous revision', | ||
shortOption: 'P', | ||
"preserve-policies": { | ||
name: "Preserve policies from previous revision", | ||
shortOption: "P", | ||
toggle: true | ||
}, | ||
'wait-after-import': { | ||
name: 'Wait N seconds after importing proxy before deploying', | ||
shortOption: 'W', | ||
"wait-after-import": { | ||
name: "Wait N seconds after importing proxy before deploying", | ||
shortOption: "W", | ||
required: false | ||
}, | ||
'production': { | ||
name: 'Run resolve modules with npm install --production, default true', | ||
production: { | ||
name: "Run resolve modules with npm install --production, default true", | ||
required: false | ||
@@ -99,5 +99,5 @@ } | ||
module.exports.format = function(r) { | ||
var result = ''; | ||
r.forEach(function(e) { | ||
module.exports.format = function (r) { | ||
var result = ""; | ||
r.forEach(function (e) { | ||
result = result + parseDeployments.formatDeployment(e); | ||
@@ -108,10 +108,9 @@ }); | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
// Setup Delay for after import if set | ||
opts.waitAfterImportDelay = 0; | ||
if (opts['wait-after-import'] !== undefined) { | ||
opts.waitAfterImportDelay = parseInt(opts['wait-after-import']); | ||
if (opts["wait-after-import"] !== undefined) { | ||
opts.waitAfterImportDelay = parseInt(opts["wait-after-import"]); | ||
if (isNaN(opts.waitAfterImportDelay)) { | ||
console.error('invalid int for wait-after-import'); | ||
console.error("invalid int for wait-after-import"); | ||
process.exit(1); | ||
@@ -126,4 +125,4 @@ } | ||
try { | ||
var packageFile = path.resolve(opts.directory, 'package.json'); | ||
var packageObj = JSON.parse(fs.readFileSync(packageFile, 'utf8')); | ||
var packageFile = path.resolve(opts.directory, "package.json"); | ||
var packageObj = JSON.parse(fs.readFileSync(packageFile, "utf8")); | ||
if (!opts.main) { | ||
@@ -137,3 +136,3 @@ opts.main = packageObj.main; | ||
if (opts.debug) { | ||
console.error('unable to read package.json', err); | ||
console.error("unable to read package.json", err); | ||
} | ||
@@ -146,3 +145,3 @@ } | ||
if (opts.debug) { | ||
console.log('deploynodeapp: %j', opts); | ||
console.log("deploynodeapp: %j", opts); | ||
} | ||
@@ -152,7 +151,9 @@ | ||
getDeploymentInfo(opts, request, function(err) { | ||
if (err) { return cb(err); } | ||
getDeploymentInfo(opts, request, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// if preserve-policies, we do something entirely different... | ||
if (opts['preserve-policies'] && opts.deploymentVersion > 1) { | ||
if (opts["preserve-policies"] && opts.deploymentVersion > 1) { | ||
return preservePoliciesRun(opts, cb); | ||
@@ -162,70 +163,78 @@ } | ||
var steps = [ | ||
function(done) { | ||
function (done) { | ||
createApiProxy(opts, request, done); | ||
} | ||
] | ||
]; | ||
if (opts['bundled-dependencies']) { | ||
if (opts["bundled-dependencies"]) { | ||
opts.remoteNpm = false; | ||
steps.push(function(done) { | ||
usePackedSource(opts.directory, opts, function(err, packedDirectory) { | ||
steps.push(function (done) { | ||
usePackedSource(opts.directory, opts, function (err, packedDirectory) { | ||
// set the target directory to upload to the packed directory | ||
opts.directory = packedDirectory | ||
opts.directory = packedDirectory; | ||
return done(err); | ||
}); | ||
}) | ||
}); | ||
} | ||
steps = steps.concat([ | ||
function(done) { | ||
uploadSource(opts.directory, 'node', opts, request, done); | ||
function (done) { | ||
uploadSource(opts.directory, "node", opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
createTarget(opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
createProxy(opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
runNpm(opts, request, done); | ||
}, | ||
function(done) { | ||
function (done) { | ||
deployProxy2(opts, request, done); | ||
} | ||
]) | ||
]); | ||
// Run each function in series, and collect an array of results. | ||
async.series(steps, | ||
function(err, results) { | ||
if (err) { return cb(err); } | ||
async.series(steps, function (err, results) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
results = cleanResults(results); | ||
results = cleanResults(results); | ||
if (opts.debug) { console.log('results: %j', results); } | ||
if (opts.debug) { | ||
console.log("results: %j", results); | ||
} | ||
if (opts['import-only']) { | ||
return cb(undefined, results) | ||
} | ||
if (opts["import-only"]) { | ||
return cb(undefined, results); | ||
} | ||
async.map(Object.values(results[results.length - 1]), | ||
function(result, cb) { | ||
async.map( | ||
Object.values(results[results.length - 1]), | ||
function (result, cb) { | ||
if (opts.debug) { | ||
console.log("result: %j", result); | ||
} | ||
if (opts.debug) { console.log('result: %j', result); } | ||
var deployment = parseDeployments.parseDeploymentResult(result); | ||
if (deployment) { | ||
// Look up the deployed URI for user-friendliness | ||
parseDeployments.getPathInfo([ deployment ], opts, function(err) { | ||
// Ignore this error because deployment worked | ||
if (err && opts.verbose) { console.log('Error looking up deployed path: %s', err); } | ||
cb(undefined, deployment); | ||
}); | ||
} else { | ||
// Probably import-only -- do nothing | ||
cb(undefined, {}); | ||
} | ||
}, | ||
cb); | ||
}); | ||
var deployment = parseDeployments.parseDeploymentResult(result); | ||
if (deployment) { | ||
// Look up the deployed URI for user-friendliness | ||
parseDeployments.getPathInfo([deployment], opts, function (err) { | ||
// Ignore this error because deployment worked | ||
if (err && opts.verbose) { | ||
console.log("Error looking up deployed path: %s", err); | ||
} | ||
cb(undefined, deployment); | ||
}); | ||
} else { | ||
// Probably import-only -- do nothing | ||
cb(undefined, {}); | ||
} | ||
}, | ||
cb | ||
); | ||
}); | ||
}); | ||
@@ -235,6 +244,7 @@ }; | ||
function preservePoliciesRun(opts, cb) { | ||
// download the proxy to a temporary zip file | ||
tmp.file(function(err, fetchedProxyZip) { | ||
if (err) { return cb(err); } | ||
tmp.file(function (err, fetchedProxyZip) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
@@ -244,17 +254,27 @@ opts.revision = opts.deploymentVersion - 1; | ||
if (opts.verbose) { console.log('Downloading proxy %s revision %d', opts.name, opts.revision); } | ||
fetchProxy.run(opts, function(err) { | ||
if (err) { return cb(err); } | ||
if (opts.verbose) { | ||
console.log("Downloading proxy %s revision %d", opts.name, opts.revision); | ||
} | ||
fetchProxy.run(opts, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// set up temporary project dir | ||
tmp.dir({ unsafeCleanup: false }, function(err, tmpDir) { | ||
if (err) { return cb(err); } | ||
tmp.dir({ unsafeCleanup: false }, function (err, tmpDir) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
unzipProxy(opts, tmpDir, 'apiproxy/resources/node', function(err) { | ||
if (err) { return cb(err); } | ||
unzipProxy(opts, tmpDir, "apiproxy/resources/node", function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
// copy node files to tmpDir node directory | ||
var nodeResourceDir = path.resolve(tmpDir, 'apiproxy/resources/node'); | ||
copyNodeSource(opts, nodeResourceDir, function(err) { | ||
if (err) { return cb(err); } | ||
var nodeResourceDir = path.resolve(tmpDir, "apiproxy/resources/node"); | ||
copyNodeSource(opts, nodeResourceDir, function (err) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
@@ -272,36 +292,57 @@ // deploy proxy at tmpDir | ||
function copyNodeSource(opts, targetDir, cb) { | ||
if (opts.verbose) { | ||
console.log("Copying node source into proxy"); | ||
} | ||
if (opts.verbose) { console.log('Copying node source into proxy'); } | ||
// Get a list of entries, broken down by which are directories, | ||
// and with special handling for the node_modules directory. | ||
ziputils.enumerateDirectory(opts.directory, 'node', opts.remoteNpm, function(err, entries) { | ||
if (err) { return cb(err); } | ||
ziputils.enumerateDirectory( | ||
opts.directory, | ||
"node", | ||
opts.remoteNpm, | ||
function (err, entries) { | ||
if (err) { | ||
return cb(err); | ||
} | ||
if (opts.debug) { console.log('Directories to copy: %j', entries); } | ||
if (opts.debug) { | ||
console.log("Directories to copy: %j", entries); | ||
} | ||
function copyResource(entry, done) { | ||
function copyResource(entry, done) { | ||
if (entry.directory) { | ||
// ZIP up all directories, possibly with additional file prefixes | ||
if (opts.verbose) { | ||
console.log("Zipping: %s", entry.fileName); | ||
} | ||
ziputils.zipDirectory( | ||
entry.fileName, | ||
entry.zipEntryName, | ||
function (err, zipBuf) { | ||
if (err) { | ||
return done(err); | ||
} | ||
if (entry.directory) { | ||
// ZIP up all directories, possibly with additional file prefixes | ||
if (opts.verbose) { console.log('Zipping: %s', entry.fileName); } | ||
ziputils.zipDirectory(entry.fileName, entry.zipEntryName, function(err, zipBuf) { | ||
if (err) { return done(err); } | ||
// write zipBuf -> file | ||
var zipFileName = path.resolve(targetDir, entry.resourceName); | ||
// write zipBuf -> file | ||
var zipFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { | ||
console.log("Writing zip file: %s", zipFileName); | ||
} | ||
fs.writeFile(zipFileName, zipBuf, done); | ||
} | ||
); | ||
} else { | ||
// entry.file | ||
var targetFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { | ||
console.log("copy %s %s", entry.fileName, targetDir); | ||
} | ||
copyFile(entry.fileName, targetFileName, done); | ||
} | ||
} | ||
if (opts.verbose) { console.log('Writing zip file: %s', zipFileName); } | ||
fs.writeFile(zipFileName, zipBuf, done); | ||
}); | ||
} else { // entry.file | ||
var targetFileName = path.resolve(targetDir, entry.resourceName); | ||
if (opts.verbose) { console.log('copy %s %s', entry.fileName, targetDir); } | ||
copyFile(entry.fileName, targetFileName, done); | ||
} | ||
async.each(entries, copyResource, cb); | ||
} | ||
async.each(entries, copyResource, cb); | ||
}); | ||
); | ||
} | ||
@@ -315,9 +356,18 @@ | ||
} catch (e) { | ||
done(new Error(util.format('Proxy base directory %s does not exist', | ||
opts.directory))); | ||
done( | ||
new Error( | ||
util.format("Proxy base directory %s does not exist", opts.directory) | ||
) | ||
); | ||
return; | ||
} | ||
if (!ds.isDirectory()) { | ||
done(new Error(util.format('Proxy base directory %s is not a directory', | ||
opts.directory))); | ||
done( | ||
new Error( | ||
util.format( | ||
"Proxy base directory %s is not a directory", | ||
opts.directory | ||
) | ||
) | ||
); | ||
return; | ||
@@ -331,9 +381,19 @@ } | ||
if (!fs.existsSync(path.join(opts.directory, opts.main))) { | ||
done(new Error(util.format('Main script file %s does not seem to exist', opts.main))); | ||
done( | ||
new Error( | ||
util.format("Main script file %s does not seem to exist", opts.main) | ||
) | ||
); | ||
return; | ||
} | ||
if (path.dirname(opts.main) !== '.') { | ||
done(new Error(util.format('Main script file %s must be in the top level directory', | ||
opts.main))); | ||
return; | ||
if (path.dirname(opts.main) !== ".") { | ||
done( | ||
new Error( | ||
util.format( | ||
"Main script file %s must be in the top level directory", | ||
opts.main | ||
) | ||
) | ||
); | ||
return; | ||
} | ||
@@ -343,16 +403,21 @@ | ||
opts.remoteNpm = DefaultResolveModules; | ||
if (opts['upload-modules'] && (opts['upload-modules'] === true)) { | ||
if (opts["upload-modules"] && opts["upload-modules"] === true) { | ||
opts.remoteNpm = false; | ||
} | ||
if (opts['resolve-modules'] && (opts['resolve-modules'] === true)) { | ||
if (opts["resolve-modules"] && opts["resolve-modules"] === true) { | ||
opts.remoteNpm = true; | ||
} | ||
if (opts.debug) { | ||
console.log('Resolve NPM modules = %s', opts.remoteNpm); | ||
console.log("Resolve NPM modules = %s", opts.remoteNpm); | ||
} | ||
// Find out which revision we should be creating | ||
request.get(util.format('%s/v1/o/%s/apis/%s', | ||
opts.baseuri, opts.organization, opts.api), | ||
function(err, req, body) { | ||
request.get( | ||
util.format( | ||
"%s/v1/o/%s/apis/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api | ||
), | ||
function (err, req, body) { | ||
if (err) { | ||
@@ -364,4 +429,6 @@ done(err); | ||
if (opts.verbose) { | ||
console.log('API %s does not exist. Going to create revision 1', | ||
opts.api); | ||
console.log( | ||
"API %s does not exist. Going to create revision 1", | ||
opts.api | ||
); | ||
} | ||
@@ -373,14 +440,22 @@ done(); | ||
body.revision | ||
.map(v => parseInt(v)) | ||
.reduce((a, b) => ((a>b)?a:b), 0) + 1; | ||
.map((v) => parseInt(v)) | ||
.reduce((a, b) => (a > b ? a : b), 0) + 1; | ||
if (opts.verbose) { | ||
console.log('Going to create revision %d of API %s', | ||
opts.deploymentVersion, opts.api); | ||
console.log( | ||
"Going to create revision %d of API %s", | ||
opts.deploymentVersion, | ||
opts.api | ||
); | ||
} | ||
done(); | ||
} else { | ||
done(new Error(util.format('Get API info returned status %d', req.statusCode))); | ||
done( | ||
new Error( | ||
util.format("Get API info returned status %d", req.statusCode) | ||
) | ||
); | ||
} | ||
}); | ||
} | ||
); | ||
} | ||
@@ -392,71 +467,97 @@ | ||
'<TargetEndpoint name="default">' + | ||
'<PreFlow name="PreFlow"/>' + | ||
'<PostFlow name="PostFlow"/>' + | ||
'<ScriptTarget>' + | ||
'<ResourceURL>node://{{main}}</ResourceURL>' + | ||
'</ScriptTarget>' + | ||
'</TargetEndpoint>', opts); | ||
'<PreFlow name="PreFlow"/>' + | ||
'<PostFlow name="PostFlow"/>' + | ||
"<ScriptTarget>" + | ||
"<ResourceURL>node://{{main}}</ResourceURL>" + | ||
"</ScriptTarget>" + | ||
"</TargetEndpoint>", | ||
opts | ||
); | ||
var uri = util.format('%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default', | ||
opts.baseuri, opts.organization, opts.api, | ||
opts.deploymentVersion); | ||
var uri = util.format( | ||
"%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.deploymentVersion | ||
); | ||
if (opts.verbose) { | ||
console.log('Creating the target endpoint'); | ||
console.log("Creating the target endpoint"); | ||
} | ||
request({ | ||
uri: uri, | ||
method: 'POST', | ||
json: false, | ||
headers: { 'Content-Type': 'application/xml' }, | ||
body: targetDoc | ||
}, function(err, req, body) { | ||
handleUploadResult(err, req, 'targets/default.xml', done); | ||
}); | ||
request( | ||
{ | ||
uri: uri, | ||
method: "POST", | ||
json: false, | ||
headers: { "Content-Type": "application/xml" }, | ||
body: targetDoc | ||
}, | ||
function (err, req, body) { | ||
handleUploadResult(err, req, "targets/default.xml", done); | ||
} | ||
); | ||
} | ||
function runNpm(opts, request, done) { | ||
if (!opts.remoteNpm && !opts['bundled-dependencies']) { | ||
if (!opts.remoteNpm && !opts["bundled-dependencies"]) { | ||
done(); | ||
} else { | ||
if (opts.verbose) { | ||
console.log('Running "npm install" at Apigee. This may take several minutes.'); | ||
console.log( | ||
'Running "npm install" at Apigee. This may take several minutes.' | ||
); | ||
} | ||
var installURI = util.format('%s/v1/o/%s/apis/%s/revisions/%d/npm?command=install', | ||
opts.baseuri, opts.organization, opts.api, opts.deploymentVersion) | ||
var installURI = util.format( | ||
"%s/v1/o/%s/apis/%s/revisions/%d/npm?command=install", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.deploymentVersion | ||
); | ||
if (opts.production === 'false') { | ||
installURI = util.format("%s&production=false", installURI) | ||
if (opts.production === "false") { | ||
installURI = util.format("%s&production=false", installURI); | ||
} | ||
if (opts.debug) { | ||
installURI = util.format("%s&verbose=true", installURI) | ||
installURI = util.format("%s&verbose=true", installURI); | ||
} | ||
request({ | ||
uri: installURI, | ||
method: 'POST', | ||
headers: { | ||
'Accept': 'text/plain' | ||
request( | ||
{ | ||
uri: installURI, | ||
method: "POST", | ||
headers: { | ||
Accept: "text/plain" | ||
}, | ||
json: false | ||
}, | ||
json: false | ||
}, function(err, req, body) { | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log('NPM complete.'); | ||
console.log(body); | ||
function (err, req, body) { | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log("NPM complete."); | ||
console.log(body); | ||
} | ||
done(); | ||
} else { | ||
if (opts.verbose) { | ||
console.log("NPM failed with %d", req.statusCode); | ||
console.log(body); | ||
} | ||
done( | ||
new Error( | ||
util.format( | ||
"NPM install failed with status code %d", | ||
req.statusCode | ||
) | ||
) | ||
); | ||
} | ||
done(); | ||
} else { | ||
if (opts.verbose) { | ||
console.log('NPM failed with %d', req.statusCode); | ||
console.log(body); | ||
} | ||
done(new Error(util.format('NPM install failed with status code %d', req.statusCode))); | ||
} | ||
}); | ||
); | ||
} | ||
} |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true, | ||
@@ -17,3 +17,3 @@ prompt: true | ||
flowHookName: { | ||
name: 'One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook', | ||
name: "One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook", | ||
required: true, | ||
@@ -26,15 +26,21 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('detachFlowHook: %j', opts); | ||
console.log("detachFlowHook: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/e/%s/flowhooks/%s', | ||
opts.baseuri, opts.organization, opts.environment, opts.flowHookName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/e/%s/flowhooks/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.flowHookName | ||
); | ||
let requestOpts = { | ||
uri, | ||
method:'DELETE', | ||
json:true | ||
}; | ||
command_utils.run('detachFlowHook',opts, requestOpts, cb); | ||
uri, | ||
method: "DELETE", | ||
json: true | ||
}; | ||
command_utils.run("detachFlowHook", opts, requestOpts, cb); | ||
}; |
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
@@ -22,2 +23,3 @@ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -24,0 +26,0 @@ console.log('getCache: %j', opts); |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true, | ||
@@ -17,3 +17,3 @@ prompt: true | ||
flowHookName: { | ||
name: 'One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook', | ||
name: "One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook", | ||
required: true, | ||
@@ -26,5 +26,6 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('getFlowHook: %j', opts); | ||
console.log("getFlowHook: %j", opts); | ||
} | ||
@@ -35,9 +36,15 @@ // if(opts.targetSSL){ | ||
let uri = util.format('%s/v1/o/%s/e/%s/flowhooks/%s', opts.baseuri, opts.organization, opts.environment, opts.flowHookName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/e/%s/flowhooks/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.flowHookName | ||
); | ||
let requestOpts = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('getFlowHook', opts, requestOpts, cb); | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("getFlowHook", opts, requestOpts, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
var util = require('util'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var defaults = require('../defaults'); | ||
var command_utils = require('./command-utils') | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: false | ||
}, | ||
api: { | ||
name: 'API', | ||
shortOption: 'n', | ||
name: "API", | ||
shortOption: "n", | ||
required: false | ||
}, | ||
mapName:{ | ||
name:'Map Name', | ||
mapName: { | ||
name: "Map Name", | ||
required: true, | ||
@@ -26,7 +26,6 @@ prompt: true | ||
entryName: { | ||
name:'Entry Name', | ||
name: "Entry Name", | ||
required: true, | ||
prompt: true | ||
} | ||
}); | ||
@@ -36,22 +35,43 @@ | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('getKVMentry: %j', opts); | ||
console.log("getKVMentry: %j", opts); | ||
} | ||
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName); | ||
var uri = util.format( | ||
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
if (opts.api) { | ||
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
if (opts.environment) { | ||
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
var requestOpts = { | ||
uri: uri, | ||
method:'GET' | ||
} | ||
command_utils.run('getKVMentry',opts, requestOpts, cb) | ||
var requestOpts = { | ||
uri: uri, | ||
method: "GET" | ||
}; | ||
command_utils.run("getKVMentry", opts, requestOpts, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -19,14 +19,19 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('getRole: %j', opts); | ||
console.log("getRole: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s', | ||
opts.baseuri, opts.organization, opts.roleName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('getRole', opts, requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("getRole", opts, requestOptions, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -19,14 +19,19 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('getRolePermissions: %j', opts); | ||
console.log("getRolePermissions: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s/permissions', | ||
opts.baseuri, opts.organization, opts.roleName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s/permissions", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('getRolePermissions', opts, requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("getRolePermissions", opts, requestOptions, cb); | ||
}; |
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
@@ -23,2 +24,3 @@ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -25,0 +27,0 @@ console.log('getTargetServer: %j', opts); |
@@ -1,9 +0,10 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true, | ||
@@ -16,14 +17,19 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('listCaches: %j', opts); | ||
console.log("listCaches: %j", opts); | ||
} | ||
var uri = util.format('%s/v1/o/%s/e/%s/caches', | ||
opts.baseuri, opts.organization, opts.environment); | ||
var uri = util.format( | ||
"%s/v1/o/%s/e/%s/caches", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment | ||
); | ||
let requestOptions = { | ||
uri, | ||
method: 'GET', | ||
json: true | ||
}; | ||
command_utils.run('listCaches', opts, requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("listCaches", opts, requestOptions, cb); | ||
}; |
@@ -1,22 +0,22 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
parseDeployments = require("./parseDeployments"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
api: { | ||
name: 'API Name', | ||
shortOption: 'n' | ||
name: "API Name", | ||
shortOption: "n" | ||
}, | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e' | ||
name: "Environment", | ||
shortOption: "e" | ||
}, | ||
revision: { | ||
name: 'Revision', | ||
shortOption: 'r' | ||
name: "Revision", | ||
shortOption: "r" | ||
}, | ||
long: { | ||
name: 'Long', | ||
shortOption: 'l', | ||
name: "Long", | ||
shortOption: "l", | ||
toggle: true | ||
@@ -27,8 +27,9 @@ } | ||
module.exports.format = function(r) { | ||
return r.deployments.map( d => parseDeployments.formatDeployment(d)) | ||
.join('\n'); | ||
module.exports.format = function (r) { | ||
return r.deployments | ||
.map((d) => parseDeployments.formatDeployment(d)) | ||
.join("\n"); | ||
}; | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
var uri; | ||
@@ -39,17 +40,23 @@ var parser; | ||
if (opts.debug) { | ||
console.log('listdeployments: %j', opts); | ||
console.log("listdeployments: %j", opts); | ||
} | ||
if (opts.api && !opts.environment) { | ||
uri = util.format('%s/v1/o/%s/apis/%s/deployments', | ||
opts.baseuri, opts.organization, opts.api); | ||
uri = util.format( | ||
"%s/v1/o/%s/apis/%s/deployments", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api | ||
); | ||
parser = parseAPIBody; | ||
} else if (opts.environment && !opts.api) { | ||
uri = util.format('%s/v1/o/%s/e/%s/deployments', | ||
opts.baseuri, opts.organization, opts.environment); | ||
uri = util.format( | ||
"%s/v1/o/%s/e/%s/deployments", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment | ||
); | ||
parser = parseEnvironmentBody; | ||
} else if (opts.environment && opts.api) { | ||
cb(new Error('Can\'t specify both API and environment options')); | ||
cb(new Error("Can't specify both API and environment options")); | ||
return; | ||
@@ -66,3 +73,3 @@ } else { | ||
} | ||
request.get(uri, function(err, req, body) { | ||
request.get(uri, function (err, req, body) { | ||
if (err) { | ||
@@ -73,12 +80,16 @@ cb(err); | ||
if (opts.debug) { | ||
console.log('List of deployed APIs: %j', body); | ||
console.log("List of deployed APIs: %j", body); | ||
} | ||
var result = parser(body); | ||
if (opts.long) { | ||
parseDeployments.getPathInfo(result.deployments, opts, function(err) { | ||
cb(err, result); | ||
}); | ||
parseDeployments.getPathInfo( | ||
result.deployments, | ||
opts, | ||
function (err) { | ||
cb(err, result); | ||
} | ||
); | ||
} else { | ||
if (opts.debug) { | ||
console.log('All done'); | ||
console.log("All done"); | ||
} | ||
@@ -88,3 +99,3 @@ cb(undefined, result); | ||
} else { | ||
cb(new Error(util.format('HTTP error %d', req.statusCode))); | ||
cb(new Error(util.format("HTTP error %d", req.statusCode))); | ||
} | ||
@@ -91,0 +102,0 @@ } |
@@ -1,21 +0,20 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"); | ||
const descriptor = defaults.defaultDescriptor({ }); | ||
const descriptor = defaults.defaultDescriptor({}); | ||
module.exports.descriptor = descriptor; | ||
module.exports.format = function(r) { | ||
return r.join('\n'); | ||
module.exports.format = function (r) { | ||
return r.join("\n"); | ||
}; | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('listproxies: %j', opts); | ||
console.log("listproxies: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/apis', opts.baseuri, opts.organization); | ||
let uri = util.format("%s/v1/o/%s/apis", opts.baseuri, opts.organization); | ||
let request = defaults.defaultRequest(opts); | ||
@@ -25,3 +24,3 @@ if (opts.debug) { | ||
} | ||
request.get(uri, function(err, req, body) { | ||
request.get(uri, function (err, req, body) { | ||
if (err) { | ||
@@ -32,10 +31,10 @@ cb(err); | ||
if (opts.debug) { | ||
console.log('List of APIs: %j', body); | ||
console.log("List of APIs: %j", body); | ||
} | ||
if (opts.debug) { | ||
console.log('All done'); | ||
console.log("All done"); | ||
} | ||
cb(undefined, body); | ||
} else { | ||
cb(new Error(util.format('HTTP error %d', req.statusCode))); | ||
cb(new Error(util.format("HTTP error %d", req.statusCode))); | ||
} | ||
@@ -42,0 +41,0 @@ } |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
command_utils = require("./command-utils"); | ||
@@ -13,13 +12,17 @@ var descriptor = defaults.defaultDescriptor({}); | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
if (opts.debug) { | ||
console.log('listRoles: %j', opts); | ||
console.log("listRoles: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles', opts.baseuri, opts.organization); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles", | ||
opts.baseuri, | ||
opts.organization | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('listRoles', opts,requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("listRoles", opts, requestOptions, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
//options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
let descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -19,14 +19,20 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('getRoleUsers: %j', opts); | ||
console.log("getRoleUsers: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s/users', opts.baseuri, opts.organization, opts.roleName); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s/users", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('getRoleUsers', opts, requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("getRoleUsers", opts, requestOptions, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
parseDeployments = require("./parseDeployments"); | ||
const descriptor = defaults.defaultDescriptor({ }); | ||
const descriptor = defaults.defaultDescriptor({}); | ||
module.exports.descriptor = descriptor; | ||
module.exports.format = function(r) { | ||
return r.join('\n'); | ||
module.exports.format = function (r) { | ||
return r.join("\n"); | ||
}; | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('listsharedflows: %j', opts); | ||
console.log("listsharedflows: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/sharedflows', opts.baseuri, opts.organization); | ||
let uri = util.format( | ||
"%s/v1/o/%s/sharedflows", | ||
opts.baseuri, | ||
opts.organization | ||
); | ||
let request = defaults.defaultRequest(opts); | ||
@@ -28,3 +32,3 @@ if (opts.debug) { | ||
} | ||
request.get(uri, function(err, req, body) { | ||
request.get(uri, function (err, req, body) { | ||
if (err) { | ||
@@ -35,10 +39,10 @@ cb(err); | ||
if (opts.debug) { | ||
console.log('List of sharedflows: %j', body); | ||
console.log("List of sharedflows: %j", body); | ||
} | ||
if (opts.debug) { | ||
console.log('All done'); | ||
console.log("All done"); | ||
} | ||
cb(undefined, body); | ||
} else { | ||
cb(new Error(util.format('HTTP error %d', req.statusCode))); | ||
cb(new Error(util.format("HTTP error %d", req.statusCode))); | ||
} | ||
@@ -45,0 +49,0 @@ } |
@@ -1,9 +0,10 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true, | ||
@@ -16,13 +17,19 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('listTargetServers: %j', opts); | ||
console.log("listTargetServers: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/e/%s/targetservers', opts.baseuri, opts.organization, opts.environment); | ||
let uri = util.format( | ||
"%s/v1/o/%s/e/%s/targetservers", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('listTargetServers', opts, requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("listTargetServers", opts, requestOptions, cb); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -16,3 +16,3 @@ prompt: true | ||
email: { | ||
name: 'Developer email', | ||
name: "Developer email", | ||
required: true, | ||
@@ -25,15 +25,21 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('removeUserRole: %j', opts); | ||
console.log("removeUserRole: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s/users/%s', | ||
opts.baseuri, opts.organization, opts.roleName, opts.email ); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s/users/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName, | ||
opts.email | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'DELETE', | ||
json:true | ||
}; | ||
command_utils.run('removeUserRole', opts, requestOptions, cb); | ||
uri, | ||
method: "DELETE", | ||
json: true | ||
}; | ||
command_utils.run("removeUserRole", opts, requestOptions, cb); | ||
}; |
@@ -25,2 +25,3 @@ /* jshint node: true */ | ||
module.exports.run = function(opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
@@ -27,0 +28,0 @@ console.log('setRolePermissions: %j', opts); |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
path = require('path'), | ||
async = require('async'), | ||
fs = require('fs'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
parseDeployments = require('./parsedeployments'); | ||
const util = require("util"), | ||
async = require("async"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
parseDeployments = require("./parseDeployments"); | ||
@@ -36,14 +34,14 @@ /* From python apigeetool: | ||
api: { | ||
name: 'API Name', | ||
shortOption: 'n', | ||
name: "API Name", | ||
shortOption: "n", | ||
required: true | ||
}, | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: true | ||
}, | ||
revision: { | ||
name: 'Revision', | ||
shortOption: 'r', | ||
name: "Revision", | ||
shortOption: "r", | ||
required: false | ||
@@ -54,14 +52,14 @@ } | ||
module.exports.format = function(r) { | ||
module.exports.format = function (r) { | ||
if (r.name) { | ||
return parseDeployments.formatDeployment(r); | ||
} else { | ||
return ''; | ||
return ""; | ||
} | ||
}; | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('undeploy: %j', opts); | ||
console.log("undeploy: %j", opts); | ||
} | ||
@@ -72,11 +70,12 @@ | ||
// Run each function in series, and collect an array of results. | ||
async.series([ | ||
function(done) { | ||
getDeploymentInfo(opts, request, done); | ||
}, | ||
function(done) { | ||
undeploy(opts, request, done); | ||
} | ||
async.series( | ||
[ | ||
function (done) { | ||
getDeploymentInfo(opts, request, done); | ||
}, | ||
function (done) { | ||
undeploy(opts, request, done); | ||
} | ||
], | ||
function(err, results) { | ||
function (err, results) { | ||
if (err) { | ||
@@ -86,3 +85,3 @@ cb(err); | ||
if (opts.debug) { | ||
console.log('results: %j', results); | ||
console.log("results: %j", results); | ||
} | ||
@@ -99,7 +98,7 @@ | ||
} | ||
}); | ||
} | ||
); | ||
}; | ||
function getDeploymentInfo(opts, request, done) { | ||
// Just undeploy what we said | ||
@@ -113,5 +112,11 @@ if (opts.revision) { | ||
// Find out which revision we should be undeploying | ||
request.get(util.format('%s/v1/o/%s/environments/%s/apis/%s/deployments', | ||
opts.baseuri, opts.organization, opts.environment, opts.api), | ||
function(err, req, body) { | ||
request.get( | ||
util.format( | ||
"%s/v1/o/%s/environments/%s/apis/%s/deployments", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.api | ||
), | ||
function (err, req, body) { | ||
if (err) { | ||
@@ -121,18 +126,26 @@ done(err); | ||
if (opts.verbose) { | ||
console.log('API %s does not exist.', opts.api); | ||
console.log("API %s does not exist.", opts.api); | ||
} | ||
done(); | ||
} else if (req.statusCode === 400) { | ||
done(new Error(console.log(body.message))); | ||
done(new Error(console.log(body.message))); | ||
} else if (req.statusCode === 200) { | ||
opts.deploymentVersion = parseInt(body.revision[0].name); | ||
if (opts.verbose) { | ||
console.log('Going to undeploy revision %d of API %s', | ||
opts.deploymentVersion, opts.api); | ||
console.log( | ||
"Going to undeploy revision %d of API %s", | ||
opts.deploymentVersion, | ||
opts.api | ||
); | ||
} | ||
done(); | ||
} else { | ||
done(new Error(util.format('Get API info returned status %d', req.statusCode))); | ||
done( | ||
new Error( | ||
util.format("Get API info returned status %d", req.statusCode) | ||
) | ||
); | ||
} | ||
}); | ||
} | ||
); | ||
} | ||
@@ -142,55 +155,73 @@ | ||
if (opts.verbose) { | ||
console.log('Undeploying revision %d of %s to %s', opts.deploymentVersion, | ||
opts.api, opts.environment); | ||
console.log( | ||
"Undeploying revision %d of %s to %s", | ||
opts.deploymentVersion, | ||
opts.api, | ||
opts.environment | ||
); | ||
} | ||
var uri = util.format('%s/v1/o/%s/apis/%s/deployments', | ||
opts.baseuri, opts.organization, opts.api); | ||
var uri = util.format( | ||
"%s/v1/o/%s/apis/%s/deployments", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api | ||
); | ||
if (opts.debug) { | ||
console.log('Going to POST to %s', uri); | ||
console.log("Going to POST to %s", uri); | ||
} | ||
var deployCmd = util.format('action=undeploy&revision=%d&env=%s', | ||
opts.deploymentVersion, opts.environment); | ||
if (opts['base-path']) { | ||
deployCmd = util.format('%s&basepath=%s', deployCmd, opts['base-path']); | ||
var deployCmd = util.format( | ||
"action=undeploy&revision=%d&env=%s", | ||
opts.deploymentVersion, | ||
opts.environment | ||
); | ||
if (opts["base-path"]) { | ||
deployCmd = util.format("%s&basepath=%s", deployCmd, opts["base-path"]); | ||
} | ||
if (opts.debug) { | ||
console.log('Going go send command %s', deployCmd); | ||
console.log("Going go send command %s", deployCmd); | ||
} | ||
request({ | ||
uri: uri, | ||
method: 'POST', | ||
json: false, | ||
body: deployCmd, | ||
headers: { 'Content-Type': 'application/x-www-form-urlencoded', | ||
'Accept': 'application/json' } | ||
}, function(err, req, body) { | ||
var jsonBody = (body ? JSON.parse(body) : null); | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log('Undeployment successful'); | ||
request( | ||
{ | ||
uri: uri, | ||
method: "POST", | ||
json: false, | ||
body: deployCmd, | ||
headers: { | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
Accept: "application/json" | ||
} | ||
if (opts.debug) { | ||
console.log('%s', body); | ||
} | ||
done(undefined, jsonBody); | ||
} else { | ||
if (opts.verbose) { | ||
console.error('Undeployment result: %j', body); | ||
} | ||
}, | ||
function (err, req, body) { | ||
var jsonBody = body ? JSON.parse(body) : null; | ||
if (err) { | ||
done(err); | ||
} else if (req.statusCode === 200) { | ||
if (opts.verbose) { | ||
console.log("Undeployment successful"); | ||
} | ||
if (opts.debug) { | ||
console.log("%s", body); | ||
} | ||
done(undefined, jsonBody); | ||
} else { | ||
if (opts.verbose) { | ||
console.error("Undeployment result: %j", body); | ||
} | ||
var errMsg; | ||
if (jsonBody && (jsonBody.message)) { | ||
errMsg = jsonBody.message; | ||
} else { | ||
errMsg = util.format('Undeployment failed with status code %d', | ||
req.statusCode); | ||
var errMsg; | ||
if (jsonBody && jsonBody.message) { | ||
errMsg = jsonBody.message; | ||
} else { | ||
errMsg = util.format( | ||
"Undeployment failed with status code %d", | ||
req.statusCode | ||
); | ||
} | ||
done(new Error(errMsg)); | ||
} | ||
done(new Error(errMsg)); | ||
} | ||
}); | ||
); | ||
} |
@@ -1,18 +0,19 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environment: { | ||
name: 'Environment', | ||
shortOption: 'e', | ||
name: "Environment", | ||
shortOption: "e", | ||
required: false | ||
}, | ||
api: { | ||
name: 'API', | ||
shortOption: 'n', | ||
name: "API", | ||
shortOption: "n", | ||
required: false | ||
}, | ||
mapName: { | ||
name: 'Map Name', | ||
name: "Map Name", | ||
required: true, | ||
@@ -22,7 +23,6 @@ prompt: true | ||
entryName: { | ||
name: 'Entry Name', | ||
name: "Entry Name", | ||
required: true, | ||
prompt: true | ||
} | ||
}); | ||
@@ -33,26 +33,47 @@ | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('updateKVMentry: %j', opts); | ||
console.log("updateKVMentry: %j", opts); | ||
} | ||
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName); | ||
var uri = util.format( | ||
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
var payload = { | ||
name: opts.entryName, | ||
value: opts.entryValue | ||
}; | ||
name: opts.entryName, | ||
value: opts.entryValue | ||
}; | ||
if (opts.api) { | ||
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.api, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
if (opts.environment) { | ||
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName); | ||
uri = util.format( | ||
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environment, | ||
opts.mapName, | ||
opts.entryName | ||
); | ||
} | ||
let requestOpts = { | ||
uri, | ||
method: 'POST', | ||
body: payload, | ||
}; | ||
command_utils.run('updateKVMentry', opts, requestOpts, cb); | ||
uri, | ||
method: "POST", | ||
body: payload | ||
}; | ||
command_utils.run("updateKVMentry", opts, requestOpts, cb); | ||
}; |
@@ -1,35 +0,36 @@ | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
environments: { | ||
name: 'Environments', | ||
shortOption: 'e', | ||
required: true, | ||
prompt: true | ||
}, | ||
targetServerName: { | ||
name: 'Target Server Name', | ||
shortOption: 'n', | ||
required: true, | ||
prompt: true | ||
}, | ||
targetHost: { | ||
name: 'Target Host', | ||
/* required: true, */ | ||
prompt: true | ||
}, | ||
targetEnabled: { | ||
name: 'Target Enabled' | ||
}, | ||
targetPort: { | ||
name: 'Target Port', | ||
/* required: true, */ | ||
prompt: true | ||
}, | ||
targetSSL: { | ||
name: 'SSL Info' | ||
} | ||
}); | ||
environments: { | ||
name: "Environments", | ||
shortOption: "e", | ||
required: true, | ||
prompt: true | ||
}, | ||
targetServerName: { | ||
name: "Target Server Name", | ||
shortOption: "n", | ||
required: true, | ||
prompt: true | ||
}, | ||
targetHost: { | ||
name: "Target Host", | ||
/* required: true, */ | ||
prompt: true | ||
}, | ||
targetEnabled: { | ||
name: "Target Enabled" | ||
}, | ||
targetPort: { | ||
name: "Target Port", | ||
/* required: true, */ | ||
prompt: true | ||
}, | ||
targetSSL: { | ||
name: "SSL Info" | ||
} | ||
}); | ||
@@ -39,26 +40,36 @@ module.exports.descriptor = descriptor; | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('updateTargetServer: %j', opts); | ||
console.log("updateTargetServer: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/organizations/%s/environments/%s/targetservers/%s', | ||
opts.baseuri, opts.organization, opts.environments, opts.targetServerName); | ||
let uri = util.format( | ||
"%s/v1/organizations/%s/environments/%s/targetservers/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.environments, | ||
opts.targetServerName | ||
); | ||
let {targetHost, targetPort, targetEnabled} = opts; | ||
let { targetHost, targetPort, targetEnabled } = opts; | ||
let readTargetConfig = | ||
function(cb) { | ||
let requestOpts = { | ||
uri, | ||
method: 'GET', | ||
json: true | ||
}; | ||
command_utils.run('readTargetServerConfig', opts, requestOpts, (e, json) => { | ||
let readTargetConfig = function (cb) { | ||
let requestOpts = { | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run( | ||
"readTargetServerConfig", | ||
opts, | ||
requestOpts, | ||
(e, json) => { | ||
if (e) return cb(e); | ||
// fill in any options not specified | ||
if ( ! targetHost) targetHost = json.host; | ||
if ( ! targetPort) targetPort = json.port; | ||
if ( ! ('targetEnabled' in opts)) targetEnabled = json.isEnabled; | ||
if (!targetHost) targetHost = json.host; | ||
if (!targetPort) targetPort = json.port; | ||
if (!("targetEnabled" in opts)) targetEnabled = json.isEnabled; | ||
cb(); | ||
}); | ||
}; | ||
} | ||
); | ||
}; | ||
@@ -68,12 +79,15 @@ let noop = (cb) => cb(); | ||
// might need to retrieve the existing configuration | ||
let prepFn = (!targetHost || !targetPort || !('targetEnabled' in opts)) ? readTargetConfig : noop; | ||
let prepFn = | ||
!targetHost || !targetPort || !("targetEnabled" in opts) | ||
? readTargetConfig | ||
: noop; | ||
prepFn( e => { | ||
prepFn((e) => { | ||
if (e) return cb(e); | ||
let payload = { | ||
name: opts.targetServerName, | ||
host: targetHost, | ||
isEnabled: targetEnabled, | ||
port: targetPort | ||
}; | ||
name: opts.targetServerName, | ||
host: targetHost, | ||
isEnabled: targetEnabled, | ||
port: targetPort | ||
}; | ||
@@ -86,9 +100,9 @@ if (opts.targetSSL) { | ||
let requestOpts = { | ||
uri, | ||
method: 'PUT', | ||
body: payload, | ||
json: true | ||
}; | ||
command_utils.run('updateTargetServer', opts, requestOpts, cb); | ||
uri, | ||
method: "PUT", | ||
body: payload, | ||
json: true | ||
}; | ||
command_utils.run("updateTargetServer", opts, requestOpts, cb); | ||
}); | ||
}; |
/* jshint node: true */ | ||
'use strict'; | ||
"use strict"; | ||
const util = require('util'), | ||
defaults = require('../defaults'), | ||
options = require('../options'), | ||
command_utils = require('./command-utils'); | ||
const util = require("util"), | ||
defaults = require("../defaults"), | ||
options = require("../options"), | ||
command_utils = require("./command-utils"); | ||
var descriptor = defaults.defaultDescriptor({ | ||
roleName: { | ||
name: 'Role Name', | ||
name: "Role Name", | ||
required: true, | ||
@@ -16,3 +16,3 @@ prompt: true | ||
email: { | ||
name: 'EMail for the user', | ||
name: "EMail for the user", | ||
required: true, | ||
@@ -25,15 +25,21 @@ prompt: true | ||
module.exports.run = function(opts, cb) { | ||
module.exports.run = function (opts, cb) { | ||
options.validateSync(opts, descriptor); | ||
if (opts.debug) { | ||
console.log('verifyUserRole: %j', opts); | ||
console.log("verifyUserRole: %j", opts); | ||
} | ||
let uri = util.format('%s/v1/o/%s/userroles/%s/users/%s', | ||
opts.baseuri, opts.organization, opts.roleName, opts.email ); | ||
let uri = util.format( | ||
"%s/v1/o/%s/userroles/%s/users/%s", | ||
opts.baseuri, | ||
opts.organization, | ||
opts.roleName, | ||
opts.email | ||
); | ||
let requestOptions = { | ||
uri, | ||
method:'GET', | ||
json:true | ||
}; | ||
command_utils.run('verifyUserRole', opts,requestOptions, cb); | ||
uri, | ||
method: "GET", | ||
json: true | ||
}; | ||
command_utils.run("verifyUserRole", opts, requestOptions, cb); | ||
}; |
const fns = [ | ||
'listProxies', 'listSharedflows', 'listDeployments', | ||
'undeploy', 'fetchProxy', 'deployProxy', 'delete', | ||
'deployNodeApp', 'deployHostedTarget', 'getLogs', | ||
'createCache', 'deleteCache', 'getCache', 'listCaches', 'clearCache', | ||
'createProduct', 'deleteProduct', | ||
'createDeveloper', 'deleteDeveloper', | ||
'createApp', 'createAppKey', 'deleteApp', | ||
'createTargetServer', 'getTargetServer', 'deleteTargetServer', | ||
'listTargetServers', 'updateTargetServer', | ||
'createKVM', 'deleteKVM', 'getKVMentry', 'getKVMmap', | ||
'addEntryToKVM', 'deleteKVMentry', 'updateKVMentry', | ||
'deploySharedflow', 'undeploySharedflow', 'fetchSharedflow', | ||
'listSharedflowDeployments', 'deleteSharedflow', | ||
'attachFlowHook', 'detachFlowHook', 'getFlowHook', | ||
'listRoles', 'getRole', 'createRole', 'deleteRole', | ||
'getRolePermissions', 'setRolePermissions', | ||
'assignUserRole', 'removeUserRole', 'verifyUserRole', 'listRoleUsers' | ||
]; | ||
"listProxies", | ||
"listSharedflows", | ||
"listDeployments", | ||
"undeploy", | ||
"fetchProxy", | ||
"deployProxy", | ||
"delete", | ||
"deployNodeApp", | ||
"deployHostedTarget", | ||
"getLogs", | ||
"createCache", | ||
"deleteCache", | ||
"getCache", | ||
"listCaches", | ||
"clearCache", | ||
"createProduct", | ||
"deleteProduct", | ||
"createDeveloper", | ||
"deleteDeveloper", | ||
"createApp", | ||
"createAppKey", | ||
"deleteApp", | ||
"createTargetServer", | ||
"getTargetServer", | ||
"deleteTargetServer", | ||
"listTargetServers", | ||
"updateTargetServer", | ||
"createKVMmap", | ||
"deleteKVMmap", | ||
"getKVMentry", | ||
"getKVMmap", | ||
"addEntryToKVM", | ||
"deleteKVMentry", | ||
"updateKVMentry", | ||
"deploySharedflow", | ||
"undeploySharedflow", | ||
"fetchSharedflow", | ||
"listSharedflowDeployments", | ||
"deleteSharedflow", | ||
"attachFlowHook", | ||
"detachFlowHook", | ||
"getFlowHook", | ||
"listRoles", | ||
"getRole", | ||
"createRole", | ||
"deleteRole", | ||
"getRolePermissions", | ||
"setRolePermissions", | ||
"assignUserRole", | ||
"removeUserRole", | ||
"verifyUserRole", | ||
"listRoleUsers" | ||
]; | ||
module.exports = fns; |
@@ -1,3 +0,3 @@ | ||
const options = require('./options'); | ||
const fns = require('./fns'); | ||
const options = require("./options"); | ||
const fns = require("./fns"); | ||
@@ -7,3 +7,3 @@ var DefaultDefaults = {}; | ||
function runCommand(cmd, opts, cb) { | ||
options.validate(opts, cmd.descriptor, e => { | ||
options.validate(opts, cmd.descriptor, (e) => { | ||
if (e) { | ||
@@ -18,12 +18,13 @@ cb(e); | ||
function ApigeeTool(defaults) { | ||
this.defaults = (defaults ? defaults : DefaultDefaults); | ||
this.defaults = defaults ? defaults : DefaultDefaults; | ||
} | ||
ApigeeTool.getPromiseSDK = () => require('./promisesdk'); | ||
ApigeeTool.getPromiseSDK = () => require("./promisesdk"); | ||
ApigeeTool.defaults = (newDefaults) => new ApigeeTool(newDefaults); | ||
fns.forEach(fnName => { | ||
ApigeeTool[fnName] = (opts, cb) => runCommand(require(`./commands/${fnName}`), opts, cb); | ||
fns.forEach((fnName) => { | ||
ApigeeTool[fnName] = (opts, cb) => | ||
runCommand(require(`./commands/${fnName}`), opts, cb); | ||
}); | ||
module.exports = ApigeeTool; |
@@ -1,3 +0,3 @@ | ||
const options = require('./options'); | ||
const fns = require('./fns'); | ||
const options = require("./options"); | ||
const fns = require("./fns"); | ||
@@ -7,4 +7,4 @@ var DefaultDefaults = {}; | ||
function runCommand(cmd, opts) { | ||
return new Promise( (resolve, reject) => { | ||
options.validate(opts, cmd.descriptor, e => { | ||
return new Promise((resolve, reject) => { | ||
options.validate(opts, cmd.descriptor, (e) => { | ||
if (e) { | ||
@@ -15,4 +15,7 @@ reject(e); | ||
cmd.run(opts, (run_e, response) => { | ||
if (run_e) { reject(run_e); } | ||
else { resolve(response); } | ||
if (run_e) { | ||
reject(run_e); | ||
} else { | ||
resolve(response); | ||
} | ||
}); | ||
@@ -24,3 +27,3 @@ }); | ||
function ApigeeTool(defaults) { | ||
this.defaults = (defaults ? defaults : DefaultDefaults); | ||
this.defaults = defaults ? defaults : DefaultDefaults; | ||
} | ||
@@ -30,6 +33,7 @@ | ||
fns.forEach(fnName => { | ||
ApigeeTool[fnName] = (opts) => runCommand(require(`./commands/${fnName}`), opts); | ||
fns.forEach((fnName) => { | ||
ApigeeTool[fnName] = (opts) => | ||
runCommand(require(`./commands/${fnName}`), opts); | ||
}); | ||
module.exports = ApigeeTool; |
{ | ||
"name": "apigeetool", | ||
"version": "0.16.4", | ||
"version": "0.16.5", | ||
"description": "A CLI for Apigee Edge", | ||
@@ -10,3 +10,5 @@ "main": "lib/main.js", | ||
"scripts": { | ||
"testcli": "jasmine --config=./test/config/test-cli", | ||
"test": "jasmine --config=./test/config/test-all", | ||
"test-verbose": "jasmine --config=./test/config/test-all --reporter=jasmine-console-reporter", | ||
"remotetest": "mocha -R spec remotetests" | ||
@@ -34,4 +36,4 @@ }, | ||
"node-unzip-2": "^0.2.7", | ||
"postman-request": "^2.88.1-postman.33", | ||
"read": "^1.0.7", | ||
"postman-request": "^2.88.1-postman.33", | ||
"tar-fs": "^2.1.1", | ||
@@ -42,5 +44,6 @@ "tmp": "^0.0.27" | ||
"connect": "^3.4.0", | ||
"express": "^4.13.3", | ||
"express": "^4.21.0", | ||
"faker": "^5.5.3", | ||
"jasmine": "^3.5.0", | ||
"jasmine-console-reporter": "^3.1.0", | ||
"lodash.find": "^4.6.0", | ||
@@ -50,5 +53,9 @@ "mocha": "^10.0.0" | ||
"engines": { | ||
"node": ">= 12.22.0", | ||
"node": ">= 16.13.1", | ||
"npm": ">= 8.3.0" | ||
}, | ||
"overrides": { | ||
"braces": "3.0.3", | ||
"path-to-regexp": "0.1.10" | ||
}, | ||
"repository": { | ||
@@ -55,0 +62,0 @@ "type": "git", |
128
README.md
@@ -97,3 +97,3 @@ # apigeetool | ||
(optional) Limit for the maximum number of operations performed concurrently. | ||
Currently this only affects file uploads in the `deploynodeapp` command. Defaults to 4. | ||
Currently this only affects file uploads in the `deployNodeApp` command. Defaults to 4. | ||
@@ -126,16 +126,16 @@ `--json -j` | ||
* [attachFlowHook](#attachFlowHook) | ||
* [createappkey](#createappkey) | ||
* [createapp](#createapp) | ||
* [createcache](#createcache) | ||
* [createdeveloper](#createdeveloper) | ||
* [createKVMmap](#createKVMmap) | ||
* [createAppKey](#createAppKey) | ||
* [createApp](#createApp) | ||
* [createCache](#createCache) | ||
* [createDeveloper](#createDeveloper) | ||
* [createKVM](#createKVM) | ||
* [createProduct](#createproduct) | ||
* [createRole](#createRole) | ||
* [createTargetServer](#createTargetServer) | ||
* [deleteapp](#deleteapp) | ||
* [deletecache](#deletecache) | ||
* [deletedeveloper](#deletedeveloper) | ||
* [deleteApp](#deleteApp) | ||
* [deleteCache](#deleteCache) | ||
* [deleteDeveloper](#deleteDeveloper) | ||
* [deleteKVMentry](#deleteKVMentry) | ||
* [deleteKVMmap](#deleteKVMmap) | ||
* [deleteproduct](#deleteproduct) | ||
* [deleteProduct](#deleteProduct) | ||
* [deleteRole](#deleteRole) | ||
@@ -145,8 +145,8 @@ * [deleteSharedflow](#deleteSharedflow) | ||
* [delete](#delete) | ||
* [deployhostedtarget](#deployhostedtarget) | ||
* [deploynodeapp](#deploynodeapp) | ||
* [deployproxy](#deployproxy) | ||
* [deployHostedTarget](#deployHostedTarget) | ||
* [deployNodeApp](#deployNodeApp) | ||
* [deployProxy](#deployProxy) | ||
* [deploySharedflow](#deploySharedflow) | ||
* [detachFlowHook](#detachFlowHook) | ||
* [fetchproxy](#fetchproxy) | ||
* [detachFlowHook](#detachFlowHook) | ||
* [fetchProxy](#fetchProxy) | ||
* [fetchSharedflow](#fetchSharedflow) | ||
@@ -175,3 +175,3 @@ * [getFlowHook](#getFlowHook) | ||
## <a name="deploynodeapp"></a>deploynodeapp | ||
## <a name="deployNodeApp"></a>deployNodeApp | ||
@@ -184,7 +184,7 @@ Deploys a Node.js app to Apigee Edge as an API proxy. With your Node.js app deployed to Edge, you can take advantage of Edge features like security, quotas, caching, analytics, trace tool, and more. | ||
apigeetool deploynodeapp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 | ||
apigeetool deployNodeApp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 | ||
Deploys a Node.js app to both the default (HTTP) and secure (HTTPS) virtual hosts. | ||
apigeetool deploynodeapp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 -v default,secure | ||
apigeetool deployNodeApp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 -v default,secure | ||
@@ -237,3 +237,3 @@ #### Required parameters | ||
`--virtualhosts -v` | ||
(optional) A comma-separated list of virtual hosts that the deployed app will use. The two most common options are `default` and `secure`. The `default` option is always HTTP and `secure` is always HTTPS. By default, `apigeetool deploynodeapp` uses `default,secure`. | ||
(optional) A comma-separated list of virtual hosts that the deployed app will use. The two most common options are `default` and `secure`. The `default` option is always HTTP and `secure` is always HTTPS. By default, `apigeetool deployNodeApp` uses `default,secure`. | ||
@@ -299,3 +299,3 @@ `--bundled-dependencies` | ||
## <a name="deployproxy"></a>deployproxy | ||
## <a name="deployProxy"></a>deployProxy | ||
@@ -308,3 +308,3 @@ Deploys an API proxy to Apigee Edge. If the proxy is currently deployed, it will be undeployed first, and the newly deployed proxy's revision number is incremented. | ||
apigeetool deployproxy -u sdoe@example.com -o sdoe -e test -n example-proxy -d . | ||
apigeetool deployProxy -u sdoe@example.com -o sdoe -e test -n example-proxy -d . | ||
@@ -453,6 +453,6 @@ #### Required parameters | ||
Regardless of whether "deployproxy" or "deploynodeapp" is used to deploy the | ||
proxy or app, the result of "fetchproxy" will always be a ZIP file that | ||
Regardless of whether "deployProxy" or "deployNodeApp" is used to deploy the | ||
proxy or app, the result of "fetchProxy" will always be a ZIP file that | ||
represents an API proxy. The resulting proxy may be "unzipped" and | ||
re-deployed using "deployproxy." | ||
re-deployed using "deployProxy." | ||
@@ -463,3 +463,3 @@ #### Example | ||
apigeetool fetchproxy -u sdoe@example.com -o sdoe -n example-proxy -r 1 | ||
apigeetool fetchProxy -u sdoe@example.com -o sdoe -n example-proxy -r 1 | ||
@@ -1001,3 +1001,3 @@ #### Required parameters | ||
### <a name="createcache"></a>createcache | ||
### <a name="createCache"></a>createCache | ||
@@ -1009,7 +1009,7 @@ Creates a Cache with the given name. | ||
apigeetool createcache -u sdoe@example.com -o sdoe -e test -z test-cache | ||
apigeetool createCache -u sdoe@example.com -o sdoe -e test -z test-cache | ||
Create Cache map named "test-cache" (with description and expiry) | ||
apigeetool createcache -u sdoe@example.com -o sdoe -e test -z test-cache --description "sample key" --cacheExpiryInSecs 40000 | ||
apigeetool createCache -u sdoe@example.com -o sdoe -e test -z test-cache --description "sample key" --cacheExpiryInSecs 40000 | ||
@@ -1496,12 +1496,10 @@ #### Required parameters | ||
## <a name="createdeveloper"></a>Create Developer | ||
## <a name="createDeveloper"></a>Create Developer | ||
Creates a new Developer in Edge | ||
#### Example | ||
#### Code Example | ||
Create a developer. | ||
//see above for other required options | ||
opts.email = DEVELOPER_EMAIL | ||
//see above for other required options | ||
opts.email = DEVELOPER_EMAIL | ||
opts.firstName = 'Test' | ||
@@ -1525,10 +1523,10 @@ opts.lastName = 'Test1' | ||
## <a name="deletedeveloper"></a>Delete Developer | ||
## <a name="deleteDeveloper"></a>Delete Developer | ||
Delete a Developer in Edge | ||
#### Example | ||
#### Code Example | ||
//see above for other required options | ||
opts.email = DEVELOPER_EMAIL | ||
//see above for other required options | ||
opts.email = DEVELOPER_EMAIL | ||
@@ -1546,3 +1544,3 @@ sdk.deleteDeveloper(opts) | ||
#### Example | ||
#### Code Example | ||
@@ -1564,7 +1562,7 @@ opts.productName = APIGEE_PRODUCT_NAME | ||
## <a name="deleteproduct"></a>Delete Product | ||
## <a name="deleteProduct"></a>Delete Product | ||
Delete API Product in Edge | ||
#### Example | ||
#### Code Example | ||
opts.productName = APIGEE_PRODUCT_NAME | ||
@@ -1579,7 +1577,7 @@ | ||
## <a name="createapp"></a>Create App | ||
## <a name="createApp"></a>Create App | ||
Create App in Edge | ||
#### Example | ||
#### Code Example | ||
@@ -1597,7 +1595,7 @@ opts.name = APP_NAME | ||
## <a name="deleteapp"></a>Delete App | ||
## <a name="deleteApp"></a>Delete App | ||
Delete App in Edge | ||
#### Example | ||
#### Code Example | ||
@@ -1614,7 +1612,7 @@ opts.email = DEVELOPER_EMAIL | ||
## <a name="createappkey"></a>Create App Key | ||
## <a name="createAppKey"></a>Create App Key | ||
Create App Key in Edge | ||
#### Example | ||
#### Code Example | ||
@@ -1628,32 +1626,34 @@ opts.key = APP_KEY; | ||
sdk.createAppKey(opts) | ||
.then(function(result){ | ||
//create key/secret success | ||
},function(err){ | ||
//create key/secret failed | ||
}) ; | ||
.then(function(result){ | ||
//create key/secret success | ||
},function(err){ | ||
//create key/secret failed | ||
}) ; | ||
## <a name="createcache"></a>Create Cache | ||
## <a name="createCache"></a>Create Cache | ||
Create Cache in Edge | ||
#### Example | ||
#### Code Example | ||
opts.cache = CACHE_RESOURCE_NAME; | ||
sdk.createcache(opts) | ||
.then(function(result){ | ||
//cache create success | ||
sdk.createCache(opts) | ||
.then(function(result){ | ||
//create cache success | ||
},function(err){ | ||
//cache create failed | ||
//create cache failed | ||
}) ; | ||
## <a name="deletecache"></a>Delete Cache | ||
## <a name="deleteCache"></a>Delete Cache | ||
Delete Cache in Edge | ||
#### Example | ||
#### Code Example | ||
opts.cache = CACHE_RESOURCE_NAME; | ||
sdk.deletecache(opts) | ||
.then(function(result){ | ||
//delete create success | ||
sdk.deleteCache(opts) | ||
.then(function(result){ | ||
//delete cache success | ||
},function(err){ | ||
//delete create failed | ||
//delete failed | ||
}) ; | ||
@@ -1660,0 +1660,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7265
21
266829
7
74
3