@heroku-cli/plugin-spaces
Version:
Heroku plugin to manage Heroku Private Spaces
44 lines (35 loc) • 1.57 kB
JavaScript
const cli = require('heroku-cli-util')
function check(val, message) {
if (!val) throw new Error(`${message}.\nUSAGE: heroku spaces:vpn:destroy --space example-space vpn-connection-name`)
}
async function run(context, heroku) {
let space = context.flags.space
check(space, 'Space name required')
let name = context.flags.name || context.args.name
check(name, 'VPN name required')
let lib = require('../../lib/vpn-connections')(heroku)
await cli.confirmApp(name, context.flags.confirm, `Destructive Action
This command will attempt to destroy the specified VPN Connection in space ${cli.color.green(space)}`)
await cli.action(`Tearing down VPN Connection ${cli.color.cyan(name)} in space ${cli.color.cyan(space)}`, lib.deleteVPNConnection(space, name))
}
module.exports = {
topic: 'spaces',
command: 'vpn:destroy',
description: 'destroys VPN in a private space',
help: `Example:
$ heroku spaces:vpn:destroy --space example-space vpn-connection-name --confirm vpn-connection-name
Tearing down VPN Connection vpn-connection-name in space example-space
`,
needsApp: false,
needsAuth: true,
args: [
{name: 'name', optional: true, hidden: true},
],
flags: [
{name: 'space', char: 's', hasValue: true, description: 'space to get peering info from'},
{name: 'name', char: 'n', hasValue: true, description: 'name or id of the VPN connection to retrieve config from'},
{name: 'confirm', hasValue: true, description: 'set to VPN connection name to bypass confirm prompt'},
],
run: cli.command(run),
}