mirror of
https://github.com/kforney/pentest-distro-builder.git
synced 2024-10-06 12:38:52 -06:00
67 lines
No EOL
3 KiB
JavaScript
67 lines
No EOL
3 KiB
JavaScript
"use strict";
|
|
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See LICENSE.md in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const vscode = require("vscode");
|
|
const dockerExtension_1 = require("../dockerExtension");
|
|
const containerNode_1 = require("../explorer/models/containerNode");
|
|
const telemetry_1 = require("../telemetry/telemetry");
|
|
const docker_endpoint_1 = require("./utils/docker-endpoint");
|
|
const quick_pick_container_1 = require("./utils/quick-pick-container");
|
|
const teleCmdId = 'vscode-docker.container.remove';
|
|
async function removeContainer(actionContext, context) {
|
|
let containersToRemove;
|
|
if (context instanceof containerNode_1.ContainerNode && context.containerDesc) {
|
|
containersToRemove = [context.containerDesc];
|
|
}
|
|
else {
|
|
const opts = {
|
|
"filters": {
|
|
"status": ["created", "restarting", "running", "paused", "exited", "dead"]
|
|
}
|
|
};
|
|
const selectedItem = await quick_pick_container_1.quickPickContainer(actionContext, true, opts);
|
|
if (selectedItem) {
|
|
if (selectedItem.allContainers) {
|
|
containersToRemove = await docker_endpoint_1.docker.getContainerDescriptors(opts);
|
|
}
|
|
else {
|
|
containersToRemove = [selectedItem.containerDesc];
|
|
}
|
|
}
|
|
}
|
|
if (containersToRemove) {
|
|
const numContainers = containersToRemove.length;
|
|
let containerCounter = 0;
|
|
vscode.window.setStatusBarMessage("Docker: Removing Container(s)...", new Promise((resolve, reject) => {
|
|
containersToRemove.forEach((c) => {
|
|
// tslint:disable-next-line:no-function-expression no-any // Grandfathered in
|
|
docker_endpoint_1.docker.getContainer(c.Id).remove({ force: true }, function (err, _data) {
|
|
containerCounter++;
|
|
if (err) {
|
|
// TODO: parseError, proper error handling
|
|
vscode.window.showErrorMessage(err.message);
|
|
dockerExtension_1.dockerExplorerProvider.refreshContainers();
|
|
reject();
|
|
}
|
|
if (containerCounter === numContainers) {
|
|
dockerExtension_1.dockerExplorerProvider.refreshContainers();
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
}));
|
|
}
|
|
if (telemetry_1.reporter) {
|
|
/* __GDPR__
|
|
"command" : {
|
|
"command" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
|
}
|
|
*/
|
|
telemetry_1.reporter.sendTelemetryEvent("command", { command: teleCmdId });
|
|
}
|
|
}
|
|
exports.removeContainer = removeContainer;
|
|
//# sourceMappingURL=remove-container.js.map
|