@broadcom/ops-for-zowe-cli
Version:
OPS/MVS® Plug-in for Zowe CLI
368 lines • 13.4 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.RuleListUtils = void 0;
const constants_1 = require("../constants");
const OpsTextUtils_1 = require("./OpsTextUtils");
let output = "";
class RuleListUtils {
/**
*
*
* @static
* @param {*} ruleList
* @param {IHandlerParameters} params
* @return {*}
* @memberof RuleListUtils
*/
static printRuleStatusResponse(ruleList, params) {
if (params.arguments.restApi === false) {
for (let i = 0; i < ruleList.count; i += 1) {
const rule = ruleList.aofrule[i];
if (i > 0) {
output = output + "\n";
}
output = output + RuleListUtils.formatRuleResponseNameWithColor(rule.system, rule.ruleset, rule.rule);
output = `${output}\n${RuleListUtils.formatStatusResponse(rule.status, rule.oldStatus)}`;
}
}
else {
output = RuleListUtils.formatRuleResponseNameWithColor(ruleList.system, ruleList.ruleset, ruleList.rule);
const cmdType = params.positionals[1].toString();
if (cmdType.includes("auto") || cmdType.includes("-ae")) {
output = `${output}\n${RuleListUtils.formatAutoStatusResponse(ruleList)}`;
}
else {
output = `${output}\n${RuleListUtils.formatStatusResponse(ruleList.status, ruleList.oldStatus)}`;
}
}
return output;
}
/**
*
*
* @static
* @param {*} ruleList
* @param {IHandlerParameters} params
* @return {*}
* @memberof RuleListUtils
*/
static printShowRuleResponse(ruleList, params) {
if (params.arguments.restApi === false) {
// Response from Web Services server
output = this.formatOutputNotRestApi(ruleList);
}
else {
// Response from REST API server
output = this.formatRestApiRuleList(ruleList, params);
}
return output;
}
/**
*
*
* @static
* @param {*} ruleList
* @return {*}
* @memberof RuleListUtils
*/
static formatOutputNotRestApi(ruleList) {
let output = "";
// Response from Web Services server
for (let i = 0; i < ruleList.count; i += 1) {
const rule = ruleList.aofrule[i];
if (i > 0) {
output = output + "\n";
}
output = output + RuleListUtils.formatRuleResponseNameWithColor(rule.system, rule.ruleset, rule.rule);
output = `${output}\n${RuleListUtils.formatShowResponse(rule.status)}`;
}
return output;
}
/**
*
*
* @static
* @param {*} ruleList
* @param {IHandlerParameters} params
* @return {*}
* @memberof RuleListUtils
*/
static formatRestApiRuleList(ruleList, params) {
let output = "";
// Response from REST API server
if (ruleList.length > 0) {
for (let i = 0; i < ruleList.length; i += 1) {
const rule = ruleList[i];
output += RuleListUtils.formatOutputFromArrayRestApi(rule, i, params);
}
// close out JSON
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
output = output + "]";
}
}
else {
output = output + RuleListUtils.formatOutputRestApi(ruleList, params);
}
return output;
}
/**
*
*
* @static
* @param {*} rule
* @param {number} i
* @param {IHandlerParameters} params
* @return {*}
* @memberof RuleListUtils
*/
static formatOutputFromArrayRestApi(rule, i, params) {
let output = "";
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.CSV) {
if (i === 0) {
output = `${output}${RuleListUtils.formatAllCsvHeaderResponse()}`;
}
output = `${output}\n${RuleListUtils.formatAllCsvDataResponse(rule)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
if (i === 0) {
output = output + "[";
}
else if (i > 0) {
output = output + ",\n";
}
output = `${output}${RuleListUtils.formatAllDataResponseJson(rule)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.NAMEVALUECOLOR) {
if (i > 0) {
output = output + "\n";
}
output = output + RuleListUtils.formatRuleResponseNameWithColor(rule.system, rule.ruleset, rule.rule);
output = `${output}\n${RuleListUtils.formatShowAllRuleResponseWithColor(rule)}`;
}
else {
if (i > 0) {
output = output + "\n";
}
output = `${output}${RuleListUtils.formatShowAllRuleResponse(rule)}`;
}
return output;
}
/**
*
*
* @static
* @param {*} rule
* @param {IHandlerParameters} params
* @return {*}
* @memberof RuleListUtils
*/
static formatOutputRestApi(rule, params) {
let output = "";
if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.CSV) {
output = `${RuleListUtils.formatAllCsvHeaderResponse()}`;
output = `${output}\n${RuleListUtils.formatAllCsvDataResponse(rule)}`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.JSON) {
output = `[${output}${RuleListUtils.formatAllDataResponseJson(rule)}]`;
}
else if (params.arguments.format.toUpperCase() === constants_1.OpsConstants.NAMEVALUECOLOR) {
output = RuleListUtils.formatRuleResponseNameWithColor(rule.system, rule.ruleset, rule.rule);
output = `${output}\n${RuleListUtils.formatShowAllRuleResponseWithColor(rule)}`;
}
else {
output = `${output}${RuleListUtils.formatShowAllRuleResponse(rule)}`;
}
return output;
}
/**
*
*
* @static
* @param {string} system
* @param {string} ruleSet
* @param {string} ruleName
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatRuleResponseNameWithColor(system, ruleSet, ruleName) {
const name = OpsTextUtils_1.OpsTextUtils.colorizeAttention("name: ");
return `${name}${system}/${ruleSet}/${ruleName}`;
}
/**
*
*
* @static
* @param {string} newStatus
* @param {string} oldStatus
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatStatusResponse(newStatus, oldStatus) {
if (newStatus === "ENABLED") {
newStatus = OpsTextUtils_1.OpsTextUtils.colorizeOK(newStatus);
}
else {
newStatus = OpsTextUtils_1.OpsTextUtils.colorizeError(newStatus);
}
const oldAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention("old status: ");
const newAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention("new status: ");
return `${oldAttention}${oldStatus}\n${newAttention}${newStatus}`;
}
static formatAutoStatusResponse(ruleList) {
if (ruleList.autoEnabled === "YES") {
ruleList.autoEnabled = OpsTextUtils_1.OpsTextUtils.colorizeOK(ruleList.autoEnabled);
}
else {
ruleList.autoEnabled = OpsTextUtils_1.OpsTextUtils.colorizeError(ruleList.autoEnabled);
}
const oldAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention("old autoenabled status: ");
const newAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention("new autoenabled status: ");
return `${oldAttention}${ruleList.oldAutoEnabled}\n${newAttention}${ruleList.autoEnabled}`;
}
/**
*
*
* @static
* @param {string} status
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatShowResponse(status) {
if (status === "ENABLED") {
status = OpsTextUtils_1.OpsTextUtils.colorizeOK(status);
}
else {
status = OpsTextUtils_1.OpsTextUtils.colorizeError(status);
}
const statusAttention = OpsTextUtils_1.OpsTextUtils.colorizeAttention("status: ");
return statusAttention + status;
}
/**
*
*
* @static
* @param {*} ruleList
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatShowAllRuleResponse(ruleList) {
const output = `name: ${ruleList.system}/${ruleList.ruleset}/${ruleList.rule}\n`;
return `${output} sysplex: ${ruleList.sysplex}\n subsystem: ${ruleList.subsystem}\n status: ${ruleList.status}\n autoEnabled: ${ruleList.autoEnabled}\n`;
}
/**
*
*
* @static
* @param {*} ruleList
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatShowAllRuleResponseWithColor(ruleList) {
const statusText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("status:");
const sysplexText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("sysplex:");
const subsystemText = OpsTextUtils_1.OpsTextUtils.colorizeAttention("subsystem:");
let status;
if (ruleList.status === "ENABLED") {
status = OpsTextUtils_1.OpsTextUtils.colorizeOK(ruleList.status);
}
else {
status = OpsTextUtils_1.OpsTextUtils.colorizeError(ruleList.status);
}
return ` ${sysplexText} ${ruleList.sysplex}\n ${subsystemText} ${ruleList.subsystem}\n ${statusText} ${status}\n`;
}
/**
*
*
* @static
* @param {*} ruleList
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatAllDataResponseJson(ruleList) {
let output = `{`;
output = output + `"sysplex": "${ruleList.sysplex}", "system": "${ruleList.system}", `;
output = output + `"subsystem": "${ruleList.subsystem}", "table": "${ruleList.ruleset}", `;
output = output + `"rule": "${ruleList.rule}", "status": "${ruleList.status}"`;
output = output + `}`;
return output;
}
/**
*
*
* @static
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatAllCsvHeaderResponse() {
return `sysplex,system,subsystem,ruleset,rule,status`;
}
/**
*
*
* @static
* @param {*} ruleList
* @return {*} {string}
* @memberof RuleListUtils
*/
static formatAllCsvDataResponse(ruleList) {
let output = `"${ruleList.sysplex}","${ruleList.system}",`;
output = output + `"${ruleList.subsystem}","${ruleList.ruleset}",`;
output = output + `"${ruleList.rule}","${ruleList.status}"`;
return output;
}
// public static formatOutputRestApiColor(ruleList: any) {
//
// let output = "";
//
// // Response from REST API server
// if (ruleList.length > 0) {
// for (let i = 0; i < ruleList.length; i += 1) {
// const rule = ruleList[i];
// if (i > 0) {
// output = output + "\n";
// }
// output = output + RuleUtils.formatRuleResponseNameWithColor(rule.system, rule.ruleset, rule.rule);
// output = `${output}\n${RuleUtils.formatShowAllRuleResponse(ruleList)}`;
// }
// } else {
// output = RuleUtils.formatRuleResponseNameWithColor(ruleList.system, ruleList.ruleset, ruleList.rule);
// output = `${output}\n${RuleUtils.formatShowAllRuleResponse(ruleList)}`;
// }
// return output;
// }
/**
*
*
* @static
* @param {IHandlerParameters} params
* @return {*} {string}
* @memberof RuleListUtils
*/
static printShowRuleError(params) {
return `Specifying ruleset = '*' and a specific rule, in this case rule = '${params.arguments.rule}', is invalid.`;
}
}
exports.RuleListUtils = RuleListUtils;
//# sourceMappingURL=RuleListUtils.js.map