UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

76 lines 3.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = require("debug"); const i18n_1 = require("@kui-shell/core/api/i18n"); const table_models_1 = require("@kui-shell/core/api/table-models"); const resource_1 = require("../../model/resource"); const strings = i18n_1.i18n('plugin-k8s'); const debug = debug_1.default('k8s/view/modes/events'); function getEvents(tab, resource) { return __awaiter(this, void 0, void 0, function* () { try { const cmdGetPodEvents = `kubectl get events --field-selector involvedObject.name=${resource.metadata.name},involvedObject.namespace=${resource.metadata.namespace} -n ${resource.metadata.namespace}`; const customColumns = 'custom-columns=TYPE:type,REASON:reason,LAST SEEN:lastTimestamp,COUNT:count,FIRST SEEN:firstTimestamp,FROM:source.component,MESSAGE:message'; const cmd = `${cmdGetPodEvents} -o "${customColumns}"`; debug('getEvents', cmd); return tab.REPL.qexec(cmd).then(result => { if (table_models_1.isTable(result) && !result.body[0]) { return strings('No resources found.'); } return result; }); } catch (err) { return err.message; } }); } function hasEvents(resource) { return resource_1.isKubeResource(resource) && !(resource.apiVersion === 'v1' && resource.kind === 'Event'); } exports.eventsMode = { when: hasEvents, mode: (command, resource) => { debug('events', resource); try { return { mode: 'events', label: strings('events'), leaveBottomStripeAlone: true, direct: { plugin: 'k8s/dist/index', operation: 'renderAndViewEvents', parameters: { command, resource } } }; } catch (err) { debug('error rendering events mode', err); } } }; exports.renderAndViewEvents = (tab, parameters) => __awaiter(void 0, void 0, void 0, function* () { const { command, resource } = parameters; debug('renderAndViewEvents', command, resource); const events = yield getEvents(tab, resource.resource); if (typeof events === 'string') { const pre = document.createElement('pre'); const code = document.createElement('code'); pre.appendChild(code); code.innerText = events; return pre; } else { return events; } }); //# sourceMappingURL=events.js.map