heroku
Version:
CLI to interact with Heroku
64 lines (63 loc) • 2.62 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = require("@heroku-cli/command");
const core_1 = require("@oclif/core");
const tsheredoc_1 = require("tsheredoc");
class Remove extends command_1.Command {
async run() {
const { args, flags } = await this.parse(Remove);
const { app, space } = flags;
const { telemetry_drain_id } = args;
if (!(app || space || telemetry_drain_id)) {
core_1.ux.error((0, tsheredoc_1.default)(`
Requires either --app or --space or a TELEMETRY_DRAIN_ID to be provided.
See more help with --help
`));
}
if (telemetry_drain_id) {
core_1.ux.action.start(`Removing telemetry drain ${telemetry_drain_id}`);
await this.removeDrain(telemetry_drain_id);
}
else if (app) {
core_1.ux.action.start(`Removing all telemetry drains from app ${app}`);
const { body: telemetryDrains } = await this.heroku.get(`/apps/${app}/telemetry-drains`, {
headers: {
Accept: 'application/vnd.heroku+json; version=3.sdk',
},
});
for (const telemetryDrain of telemetryDrains) {
await this.removeDrain(telemetryDrain.id);
}
}
else if (space) {
core_1.ux.action.start(`Removing all telemetry drains from space ${space}`);
const { body: telemetryDrains } = await this.heroku.get(`/spaces/${space}/telemetry-drains`, {
headers: {
Accept: 'application/vnd.heroku+json; version=3.sdk',
},
});
for (const telemetryDrain of telemetryDrains) {
await this.removeDrain(telemetryDrain.id);
}
}
core_1.ux.action.stop();
}
async removeDrain(telemetry_drain_id) {
const { body: telemetryDrain } = await this.heroku.delete(`/telemetry-drains/${telemetry_drain_id}`, {
headers: {
Accept: 'application/vnd.heroku+json; version=3.sdk',
},
});
return telemetryDrain;
}
}
exports.default = Remove;
Remove.topic = 'telemetry';
Remove.description = 'remove a telemetry drain';
Remove.args = {
telemetry_drain_id: core_1.Args.string({ description: 'ID of the drain to remove' }),
};
Remove.flags = {
app: command_1.flags.app({ description: 'name of the app to remove all drains from' }),
space: command_1.flags.string({ char: 's', description: 'name of the space to remove all drains from' }),
};
;