@broadcom/ops-for-zowe-cli
Version:
OPS/MVS® Plug-in for Zowe CLI
311 lines • 17.6 kB
JavaScript
;
/*
* Copyright (c) 2024 Broadcom. All Rights Reserved. The term
* "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
*
* This software and all information contained therein is
* confidential and proprietary and shall not be duplicated,
* used, disclosed, or disseminated in any way except as
* authorized by the applicable license agreement, without the
* express written permission of Broadcom. All authorized
* reproductions must be marked with this language.
*
* EXCEPT AS SET FORTH IN THE APPLICABLE LICENSE AGREEMENT, TO
* THE EXTENT PERMITTED BY APPLICABLE LAW, BROADCOM PROVIDES THIS
* SOFTWARE WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT
* LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL BROADCOM
* BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR
* DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS SOFTWARE,
* INCLUDING WITHOUT LIMITATION, LOST PROFITS, BUSINESS
* INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF BROADCOM IS
* EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SSMResourceListUtils = void 0;
const constants_1 = require("../constants");
const OpsTextUtils_1 = require("./OpsTextUtils");
class SSMResourceListUtils {
static printShowResourceResponse(SSMResourceList, params) {
if (params.arguments.restApi === false) {
return SSMResourceListUtils.formatNotRestApiResourceList(SSMResourceList, params);
}
else {
return SSMResourceListUtils.formatRestApiAllResourceList(SSMResourceList, params);
}
}
static printResourceStateList(SSMResourceList, params) {
if (params.arguments.restApi === false) {
return SSMResourceListUtils.formatNotRestApiResourceList(SSMResourceList, params);
}
else {
return SSMResourceListUtils.formatRestApiResourceList(SSMResourceList, params);
}
}
static formatNotRestApiResourceList(SSMResourceList, params) {
let table = "";
let output = "";
for (let i = 0; i < SSMResourceList.count; i += 1) {
table = SSMResourceList.ssmresource[i].table;
if (i > 0) {
output = output + "\n";
}
output = output + SSMResourceListUtils.formatResourceResponse(table, SSMResourceList.ssmresource[i].resource);
output = `${output}\n${SSMResourceListUtils.formatStateResponse(SSMResourceList.ssmresource[i].current, SSMResourceList.ssmresource[i].desired, params.arguments.restApi)}`;
}
return output;
}
static formatRestApiResourceList(SSMResourceList, params) {
let table = "";
let output = "";
if (SSMResourceList.length > 0) {
for (let i = 0; i < SSMResourceList.length; i += 1) {
table = SSMResourceList[i].table;
if (i > 0) {
output = output + "\n";
}
output = output + SSMResourceListUtils.formatResourceResponse(table, SSMResourceList[i].resource);
output = `${output}\n${SSMResourceListUtils.formatStateResponse(SSMResourceList[i].currentState, SSMResourceList[i].desiredState, params.arguments.restApi)}`;
}
}
else {
table = SSMResourceList.table;
output = SSMResourceListUtils.formatResourceResponse(table, SSMResourceList.resource);
output = `${output}\n${SSMResourceListUtils.formatStateResponse(SSMResourceList.currentState, SSMResourceList.desiredState, params.arguments.restApi)}`;
}
return output;
}
static formatRestApiAllResourceList(SSMResourceList, params) {
let output = "";
if (SSMResourceList.length > 0) {
for (let i = 0; i < SSMResourceList.length; i += 1) {
const resource = SSMResourceList[i];
output = output + SSMResourceListUtils.formatOutputFromArrayRestApi(resource, i, params);
}
// close out JSON
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
output = output + "]";
}
}
else {
output = output + SSMResourceListUtils.formatOutputRestApi(SSMResourceList, params);
}
return output;
}
static formatOutputFromArrayRestApi(resource, i, params) {
let output = "";
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.CSV) {
if (i === 0) {
output = `${output}${SSMResourceListUtils.formatAllCsvHeaderResponse()}`;
}
output = `${output}\n${SSMResourceListUtils.formatAllCsvDataResponse(resource)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
if (i === 0) {
output = output + "[";
}
else if (i > 0) {
output = output + ",\n";
}
output = `${output}${SSMResourceListUtils.formatAllDataResponseJson(resource)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.NAMEVALUECOLOR) {
if (i > 0) {
output = output + "\n";
}
output = `${output}${SSMResourceListUtils.formatAllDataResponseWithColor(resource)}`;
}
else {
if (i > 0) {
output = output + "\n";
}
output = `${output}${SSMResourceListUtils.formatAllDataResponse(resource)}`;
}
return output;
}
static formatOutputRestApi(resource, params) {
let output = "";
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.CSV) {
output = `${SSMResourceListUtils.formatAllCsvHeaderResponse()}`;
output = `${output}\n${SSMResourceListUtils.formatAllCsvDataResponse(resource)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
output = `[${output}${SSMResourceListUtils.formatAllDataResponseJson(resource)}]`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.NAMEVALUECOLOR) {
output = `${output}${SSMResourceListUtils.formatAllDataResponseWithColor(resource)}`;
}
else {
output = `${output}${SSMResourceListUtils.formatAllDataResponse(resource)}`;
}
return output;
}
static formatResourceResponse(table, resourceName) {
const name = OpsTextUtils_1.OpsTextUtils.colorizeAttention("name: ");
return `${name}/${table}/${resourceName}`;
}
static formatStateResponse(current, desired, restApi) {
const state = " state";
let currentStateString = "current";
let desiredStateString = "desired";
if (restApi) {
currentStateString = currentStateString + state;
desiredStateString = desiredStateString + state;
}
let currentState = current;
let desiredState = desired;
if (currentState === desiredState) {
currentState = OpsTextUtils_1.OpsTextUtils.colorizeOK(currentState);
desiredState = OpsTextUtils_1.OpsTextUtils.colorizeOK(desiredState);
}
else {
currentState = OpsTextUtils_1.OpsTextUtils.colorizeError(currentState);
desiredState = OpsTextUtils_1.OpsTextUtils.colorizeError(desiredState);
}
const currentAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention(currentStateString + ": ");
const desiredAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention(desiredStateString + ": ");
return `${currentAttention}${currentState} ${desiredAttention}${desiredState}`;
}
static formatAllDataResponse(SSMResourceList) {
let output = `name: /${SSMResourceList.table}/${SSMResourceList.resource}\n`;
const lineLength = 30;
output = output + ` sysplex: ${SSMResourceList.sysplex} system: ${SSMResourceList.system}`;
// if no value then show ''
if (SSMResourceList.jobName === "") {
SSMResourceList.jobName = "''";
}
output = output + ` subsystem: ${SSMResourceList.subsystem} jobName: ${SSMResourceList.jobName}\n`;
output = output + ` type: ${SSMResourceList.type} currentState: ${SSMResourceList.currentState}`;
output = output + ` desiredState: ${SSMResourceList.desiredState}`;
// if no value then show ''
if (SSMResourceList.prereqs === "") {
SSMResourceList.prereqs = "''";
}
// For prereqs place on separate line if long value
if (SSMResourceList.prereqs.length > lineLength) {
output = output + `\n prereqs: ${SSMResourceList.prereqs}\n`;
}
else {
output = output + ` prereqs: ${SSMResourceList.prereqs}\n`;
}
// if no value then show ''
if (SSMResourceList.missingPrereqs === "") {
SSMResourceList.missingPrereqs = "''";
}
// For missingPrereqs place on separate line if long value
if (SSMResourceList.missingPrereqs.length > lineLength) {
output = output + ` missingPrereqs: ${SSMResourceList.missingPrereqs}\n`;
}
else {
output = output + ` missingPrereqs: ${SSMResourceList.missingPrereqs}`;
}
output = output + ` resourceMode: ${SSMResourceList.resourceMode}`;
output = output + ` prereqMode: ${SSMResourceList.prereqMode} referenceMode: ${SSMResourceList.referenceMode}\n`;
output = output + ` actionMode: ${SSMResourceList.actionMode} scheduleMode: ${SSMResourceList.scheduleMode}`;
output = output + ` checkpointState: ${SSMResourceList.chkpointState} iplState: ${SSMResourceList.iplState}`;
return output;
}
static formatAllDataResponseJson(SSMResourceList) {
let output = `{`;
output = output + `"sysplex": "${SSMResourceList.sysplex}", "system": "${SSMResourceList.system}", `;
output = output + `"subsystem": "${SSMResourceList.subsystem}", "table": "${SSMResourceList.table}", `;
output = output + `"resource": "${SSMResourceList.resource}", "jobName": "${SSMResourceList.jobName}", `;
output = output + `"type": "${SSMResourceList.type}", "currentState": "${SSMResourceList.currentState}", `;
output = output + `"desiredState": "${SSMResourceList.desiredState}", "prereqs": "${SSMResourceList.prereqs}", `;
output = output + `"missingPrereqs": "${SSMResourceList.missingPrereqs}", "resourceMode": "${SSMResourceList.resourceMode}", `;
output = output + `"prereqMode": "${SSMResourceList.prereqMode}", "referenceMode": "${SSMResourceList.referenceMode}", `;
output = output + `"actionMode": "${SSMResourceList.actionMode}", "scheduleMode": "${SSMResourceList.scheduleMode}", `;
output = output + `"checkpointState": "${SSMResourceList.chkpointState}", "iplState": "${SSMResourceList.iplState}"`;
output = output + `}`;
return output;
}
static formatAllDataResponseWithColor(SSMResourceList) {
const name = OpsTextUtils_1.OpsTextUtils.colorizeAttention("name: ");
let output = `${name}/${SSMResourceList.table}/${SSMResourceList.resource}\n`;
const sysplexText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("sysplex: ");
const sysplexValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.sysplex);
const systemText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("system: ");
const systemValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.system);
const subsystemText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("subsystem: ");
const subsystemValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.subsystem);
// if no value then show ''
if (SSMResourceList.jobName === "") {
SSMResourceList.jobName = "''";
}
const jobNameText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("jobName: ");
const jobNameValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.jobName);
const typeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("type: ");
const typeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.type);
const currentStateText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("currentState: ");
const currentStateValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.currentState);
const desiredStateText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("desiredState: ");
const desiredStateValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.desiredState);
// if no value then show ''
if (SSMResourceList.prereqs === "") {
SSMResourceList.prereqs = "''";
}
const prereqsText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("prereqs: ");
const prereqsValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.prereqs);
// if no value then show ''
if (SSMResourceList.missingPrereqs === "") {
SSMResourceList.missingPrereqs = "''";
}
const missingPrereqsText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("missingPrereqs: ");
const missingPrereqsValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.missingPrereqs);
const resourceModeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("resourceMode: ");
const resourceModeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.resourceMode);
const prereqModeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("prereqMode: ");
const prereqModeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.prereqMode);
const referenceModeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("referenceMode: ");
const referenceModeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.referenceMode);
const actionModeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("actionMode: ");
const actionModeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.actionMode);
const scheduleModeText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("scheduleMode: ");
const scheduleModeValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.scheduleMode);
const chkpointStateText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("chkpointState: ");
const chkpointStateValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.chkpointState);
const iplStateText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("iplState: ");
const iplStateValue = OpsTextUtils_1.OpsTextUtils.colorizeOK(SSMResourceList.iplState);
const lineLength = 30;
output = output + ` ${sysplexText}${sysplexValue} ${systemText}${systemValue}`;
output = output + ` ${subsystemText}${subsystemValue} ${jobNameText}${jobNameValue}\n`;
output = output + ` ${typeText}${typeValue} ${currentStateText}${currentStateValue}`;
output = output + ` ${desiredStateText}${desiredStateValue}`;
// For prereqs and missingPrereqs place on separate line if long value
if (SSMResourceList.prereqs.length > lineLength) {
output = output + `\n ${prereqsText}${prereqsValue}\n`;
}
else {
output = output + ` ${prereqsText}${prereqsValue}\n`;
}
if (SSMResourceList.missingPrereqs.length > lineLength) {
output = output + `\n ${missingPrereqsText}${missingPrereqsValue}\n`;
}
else {
output = output + ` ${missingPrereqsText}${missingPrereqsValue}`;
}
output = output + ` ${resourceModeText}${resourceModeValue}`;
output = output + ` ${prereqModeText}${prereqModeValue} ${referenceModeText}${referenceModeValue}\n`;
output = output + ` ${actionModeText}${actionModeValue} ${scheduleModeText}${scheduleModeValue}`;
output = output + ` ${chkpointStateText}${chkpointStateValue} ${iplStateText}${iplStateValue}\n`;
return output;
}
static formatAllCsvHeaderResponse() {
let output = `Sysplex,System,Subsystem,Job Name,Type,Current State,Desired State,Prereqs,Missing Prereqs,Resource Mode,`;
output = output + `Prereq Mode,Reference Mode,Action Mode,Schedule Mode,Checkpoint State,IPL State`;
return output;
}
static formatAllCsvDataResponse(SSMResourceList) {
let output = `"${SSMResourceList.sysplex}","${SSMResourceList.system}",`;
output = output + `"${SSMResourceList.subsystem}","${SSMResourceList.jobName}",`;
output = output + `"${SSMResourceList.type}","${SSMResourceList.currentState}",`;
output = output + `"${SSMResourceList.desiredState}","${SSMResourceList.prereqs}",`;
output = output + `"${SSMResourceList.missingPrereqs}","${SSMResourceList.resourceMode}",`;
output = output + `"${SSMResourceList.prereqMode}","${SSMResourceList.referenceMode}",`;
output = output + `"${SSMResourceList.actionMode}","${SSMResourceList.scheduleMode}",`;
output = output + `"${SSMResourceList.chkpointState}","${SSMResourceList.iplState}"`;
return output;
}
}
exports.SSMResourceListUtils = SSMResourceListUtils;
//# sourceMappingURL=SSMResourceListUtils.js.map