UNPKG

1.62 kBJavaScriptView Raw
1'use strict'
2
3let cli = require('heroku-cli-util')
4let co = require('co')
5
6function * run (context, heroku) {
7 let lib = require('../../lib/outbound-rules')(heroku)
8 let space = context.flags.space
9 if (!space) throw new Error('Space name required.')
10 let rules = yield lib.getOutboundRules(space)
11 rules.rules = rules.rules || []
12
13 if (rules.rules.length === 0) throw new Error('No Outbound Rules configured. Nothing to do.')
14
15 let deleted = rules.rules.splice(context.args.ruleNumber - 1, 1)[0]
16
17 yield cli.confirmApp(space, context.flags.confirm, `Destructive Action
18This will remove:
19Destination: ${deleted.target}, From Port: ${deleted.from_port}, To Port: ${deleted.to_port}, Protocol ${deleted.protocol}
20from the Outbound Rules on ${cli.color.cyan.bold(space)}
21`)
22 rules = yield lib.putOutboundRules(space, rules)
23 cli.log(`Removed Rule ${cli.color.cyan.bold(context.args.rulenumber)} from Outbound Rules on ${cli.color.cyan.bold(space)}`)
24 cli.warn('It may take a few moments for the changes to take effect.')
25}
26
27module.exports = {
28 topic: 'outbound-rules',
29 command: 'remove',
30 description: 'Remove a Rules from the list of Outbound Rules',
31 help: `
32Example:
33 $ heroku outbound-rules:remove --space my-space 4
34 Removed 192.168.2.0/24 from trusted IP ranges on my-space
35 `,
36 needsApp: false,
37 needsAuth: true,
38 args: [
39 {name: 'ruleNumber'}
40 ],
41 flags: [
42 {name: 'space', hasValue: true, optional: false, description: 'space to remove rule from'},
43 {name: 'confirm', hasValue: true, description: 'set to space name to bypass confirm prompt'}
44 ],
45 run: cli.command(co.wrap(run))
46}