From f00a002790013f0ab86663a484ba1d55e34552e8 Mon Sep 17 00:00:00 2001 From: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:32:27 -0500 Subject: [PATCH] User/markackert/v215-staging-to-rc (#3734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove node 14 support node 14 is no longer supported. our documentation says so Signed-off-by: 1000TurquoisePogs * Update node.sh Signed-off-by: 1000TurquoisePogs * Update cicd-test.yml Signed-off-by: 1000TurquoisePogs * Update cicd-test-readme.md Signed-off-by: 1000TurquoisePogs * Update make_matrix.sh Signed-off-by: 1000TurquoisePogs * Update node.sh Signed-off-by: 1000TurquoisePogs * Tracing messages with correct function names (#3619) Signed-off-by: Martin Zeithaml * Replace introspect URL with JWK for OIDC validation (#3614) * Replace introspect url with JWK Signed-off-by: at670475 * fix name Signed-off-by: at670475 * temporary change to test Signed-off-by: at670475 * fix Signed-off-by: at670475 * fix Signed-off-by: at670475 * revert back the manifest.json Signed-off-by: at670475 --------- Signed-off-by: at670475 Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * Ensure workflow files are in ascii in final PAX (#3593) * build: convert workflow files to ascii before paxing Signed-off-by: MarkAckert * chore: add changelog Signed-off-by: MarkAckert * build: adjust dir base Signed-off-by: MarkAckert * build: remove quotes from ls command Signed-off-by: MarkAckert * build: fix quotes in iconv Signed-off-by: MarkAckert * deleted hyphen Signed-off-by: mm667937 * script was trying to convert files that are in input directory but it was trying it from working directory Signed-off-by: mm667937 * build: fix variable Signed-off-by: MarkAckert * build: correct conversion script; use find instead of ls Signed-off-by: MarkAckert * Have to convert all the workflows back to IBM-1047 before copy into dataset(not going into pswi, just test dir) Signed-off-by: mm667937 * update changelog target version Signed-off-by: MarkAckert --------- Signed-off-by: MarkAckert Signed-off-by: mm667937 Co-authored-by: mm667937 * Formatting in general pattern (#3615) Signed-off-by: Martin Zeithaml Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * add new PTF numbers Signed-off-by: ojcelis * Promote PTF after release v2.12.0 Signed-off-by: zowe-robot * updated PTF bucket Signed-off-by: ojcelis * Update cicd-test-readme.md Signed-off-by: 1000TurquoisePogs * Update cicd-test.yml Signed-off-by: 1000TurquoisePogs * update zowe version to next release Signed-off-by: ojcelis * build: remove node v14/v16 refs; cicd defaults to v16 Signed-off-by: MarkAckert * zwe diagnose running under configmgr Signed-off-by: Martin Zeithaml * Make example-zowe.yaml certificate scenarios more accurate Signed-off-by: Leanid Astrakou * Add global and component level network configuration options (#3509) * Add global and component level network configuration options Signed-off-by: Timothy Gerstel * Use zoweIpv4 for bind addresses and update tls settings to enums Signed-off-by: Timothy Gerstel * Deduplicate schema and separate server from client Also change "bind" to "listen" and tls prefix with TLSv, as seen in the majority of our servers. Signed-off-by: 1000TurquoisePogs * Fix schema json syntax Signed-off-by: 1000TurquoisePogs * Shorten tlsSettings to tls, and fix plural ipAddresses Signed-off-by: 1000TurquoisePogs --------- Signed-off-by: Timothy Gerstel Signed-off-by: 1000TurquoisePogs Co-authored-by: 1000TurquoisePogs * Build: fix failing chown from build step (#3658) * build: remove failing chown from build step Signed-off-by: MarkAckert * build: update mkdir to _cmd, chown _super to _cmd Signed-off-by: MarkAckert * chore: update comment Signed-off-by: MarkAckert --------- Signed-off-by: MarkAckert * zzow system updates (#3651) * build: zzow04 to zzow08 Signed-off-by: MarkAckert * build: add port Signed-off-by: MarkAckert * build: remove explicit pax vars. action defaults updated. Signed-off-by: MarkAckert * build: update marist system names Signed-off-by: MarkAckert * chore: update playbook hosts Signed-off-by: MarkAckert * chore: change ansible port for new systems Signed-off-by: MarkAckert * test: update failing vt test; system response correct Signed-off-by: MarkAckert * build: update PSWI builds for zzow07 Signed-off-by: MarkAckert * chore: lint fix Signed-off-by: MarkAckert * chore: update random gen to create 6,7,8 Signed-off-by: MarkAckert * build: temporarily disable vt test Signed-off-by: MarkAckert * build: comment out entire file (lint errors) Signed-off-by: MarkAckert --------- Signed-off-by: MarkAckert * Update TLS settings (#3659) * Update TLS settings Signed-off-by: 1000TurquoisePogs * Update zowe-yaml-schema.json Signed-off-by: 1000TurquoisePogs --------- Signed-off-by: 1000TurquoisePogs Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * Add getesm to build (#3663) * Add getesm to build Signed-off-by: 1000TurquoisePogs * Update README.md Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> --------- Signed-off-by: 1000TurquoisePogs Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Co-authored-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> * Reduce string fields by introducing better typing (#3617) * Reduce string fields by introducing better typing Signed-off-by: 1000TurquoisePogs * Add new reusable types Signed-off-by: 1000TurquoisePogs --------- Signed-off-by: 1000TurquoisePogs Signed-off-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * build: update zzow matrix generator (#3665) Signed-off-by: MarkAckert * Added more clarification to example-zowe.yaml (#3660) * Added more clarification Signed-off-by: Leanid Astrakou * 512 char --> 126 Signed-off-by: Leanid Astrakou --------- Signed-off-by: Leanid Astrakou Co-authored-by: ojcelis <84936499+ojcelis@users.noreply.github.com> Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Co-authored-by: 1000TurquoisePogs * Add zosmf scheme option for at-tls in api ml (#3661) * add zosmf scheme option for at-tls in api ml Signed-off-by: Pablo Hernán Carle * add common-java Signed-off-by: Pablo Hernán Carle * common-java lib package Signed-off-by: Pablo Hernán Carle * try without comp Signed-off-by: Pablo Hernán Carle * back to allowlist common-java-lib Signed-off-by: Pablo Hernán Carle * remove env Signed-off-by: Pablo Hernán Carle --------- Signed-off-by: Pablo Hernán Carle Co-authored-by: Pablo Hernán Carle Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * Revert "Reduce string fields by introducing better typing (#3617)" (#3674) This reverts commit 1190cbbd35e7ef5eb6e7234b830f856c1f6a970a. Signed-off-by: MarkAckert * Typo in comment (#3679) Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> * Promote PTF after release v2.13.0 Signed-off-by: zowe-robot * update manifest version Signed-off-by: MarkAckert * Update version to 2.14.0 (#3691) Signed-off-by: James Struga * Add return code to zis plugin install Signed-off-by: James Struga * add typescript too Signed-off-by: James Struga * Schema missing in staging Signed-off-by: James Struga * Fix components not being enabled or disabled at ha instance level (#3692) * Fix components not being enabled or disabled at ha instance level Signed-off-by: 1000TurquoisePogs * Fix for env vars too Signed-off-by: 1000TurquoisePogs --------- Signed-off-by: 1000TurquoisePogs Co-authored-by: Timothy Gerstel * build: sigstore sign build artifacts Signed-off-by: MarkAckert * build: add id-token permissions for sigstore Signed-off-by: MarkAckert * build: discrete permissions cont.. Signed-off-by: MarkAckert * build: discrete permissions cont... PR Signed-off-by: MarkAckert * build: update contents permissions (ack locks) Signed-off-by: MarkAckert * upgrade cicd-test to node18 Signed-off-by: MarkAckert * Promote PTF after release v2.14.0 Signed-off-by: zowe-robot * update manifest to 2.15.0 Signed-off-by: MarkAckert * bin/libs/string.sh: trim update Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> * Update zwe for handeling missing parms Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> * Treat special chars Signed-off-by: Martin Zeithaml * Too many slashes Signed-off-by: Martin Zeithaml * Minor fixes Signed-off-by: Martin Zeithaml * Switch ChangeTag to sh Signed-off-by: Martin Zeithaml * Regex update Signed-off-by: Martin Zeithaml * Revert changes Signed-off-by: Martin Zeithaml * Get volume Signed-off-by: Martin Zeithaml * Support '$' and '-' in ds name Signed-off-by: Martin Zeithaml * Escape prefix Signed-off-by: Martin Zeithaml * Use the zos function for getFileEncoding (#3642) * Use the zos function Signed-off-by: Martin Zeithaml * CCSID only for platform=zos Signed-off-by: Martin Zeithaml * Update type declaration file Signed-off-by: Martin Zeithaml --------- Signed-off-by: Martin Zeithaml Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * update changelog to align with 2.15.0 Signed-off-by: MarkAckert * TSS: Detect zOSMF Root CA (#3725) * TSS: Detect zOSMF Root CA Signed-off-by: Martin Zeithaml * Parameters updated Signed-off-by: Martin Zeithaml * Minor text change Signed-off-by: Martin Zeithaml --------- Signed-off-by: Martin Zeithaml Signed-off-by: Martin Zeithaml Co-authored-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> * Escape dataset in copyMvsToUss Signed-off-by: Martin Zeithaml --------- Signed-off-by: 1000TurquoisePogs Signed-off-by: Martin Zeithaml Signed-off-by: at670475 Signed-off-by: MarkAckert Signed-off-by: mm667937 Signed-off-by: ojcelis Signed-off-by: zowe-robot Signed-off-by: ojcelis <84936499+ojcelis@users.noreply.github.com> Signed-off-by: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Signed-off-by: Leanid Astrakou Signed-off-by: Timothy Gerstel Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Signed-off-by: Pablo Hernán Carle Signed-off-by: James Struga Signed-off-by: Martin Zeithaml Co-authored-by: 1000TurquoisePogs Co-authored-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Co-authored-by: Andrea Tabone <39694626+taban03@users.noreply.github.com> Co-authored-by: mm667937 Co-authored-by: ojcelis Co-authored-by: zowe-robot Co-authored-by: ojcelis <84936499+ojcelis@users.noreply.github.com> Co-authored-by: Martin Zeithaml Co-authored-by: Leanid Astrakou Co-authored-by: Timothy Gerstel Co-authored-by: Leanid Astrakou Co-authored-by: Pablo Carle Co-authored-by: Pablo Hernán Carle Co-authored-by: James Struga --- .github/workflows/build-packaging.yml | 10 ++- CHANGELOG.md | 11 ++- .../keyring-jcl/connect/.parameters | 2 +- .../keyring-jcl/generate/.parameters | 2 +- .../keyring-jcl/import-ds/.parameters | 2 +- bin/commands/diagnose/index.sh | 70 +++++++++++----- bin/commands/diagnose/index.ts | 71 +++++++++++----- bin/libs/certificate.sh | 80 ++++++++++++++++++- bin/libs/configmgr.ts | 3 +- bin/libs/string.sh | 2 +- bin/libs/string.ts | 13 +++ bin/libs/zos-dataset.ts | 27 +++---- bin/libs/zos-fs.ts | 16 ++-- bin/libs/zos.ts | 2 +- bin/libs/zwecli.sh | 3 + bin/zwe | 4 +- build/zwe/types/@qjstypes/zos.d.ts | 5 ++ manifest.json.template | 2 +- smpe/bld/service/promoted-apar.txt | 3 + smpe/bld/service/promoted-close.txt | 45 +++++++++++ smpe/bld/service/promoted-hold.txt | 25 ++++++ smpe/bld/service/promoted-ptf.txt | 2 + smpe/bld/service/ptf-bucket.txt | 2 +- 23 files changed, 325 insertions(+), 77 deletions(-) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 1591457df4..dc6dda480d 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -1,4 +1,11 @@ name: Zowe Build and Packaging + +permissions: + id-token: write + issues: write + pull-requests: write + contents: write + on: push: branches: @@ -130,7 +137,7 @@ jobs: echo BUILD_WHAT=$BUILD_WHAT >> $GITHUB_OUTPUT - - name: '[Prep 7] Comment on PR to indicate build is started' + - name: '[Prep 7] Comment on PR to indicate build is started' uses: actions/github-script@v5 id: create-comment if: (github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request') && startsWith(env.CURRENT_BRANCH, 'PR-') @@ -265,6 +272,7 @@ jobs: timeout-minutes: 10 uses: zowe-actions/shared-actions/publish@main with: + sigstore-sign-artifacts: true artifacts: | .pax/zowe.pax .pax/zowe-smpe.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index fc042086f3..9edb889b67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to the Zowe Installer will be documented in this file. +## `2.15.0` + +## New features and enhancements + +## Minor enhancements/defect fixes +- Bugfix: `zwe diagnose` running under comfigmgr and output formatted. Fixes #[3627](https://github.com/zowe/zowe-install-packaging/issues/3627). + ## `2.14.0` ### New features and enhancements @@ -16,9 +23,8 @@ All notable changes to the Zowe Installer will be documented in this file. - Enhancement: Added utility "getesm" into bin/utils. When run it outputs to STDOUT which ESM your system is using. (#3662) #### Minor enhancements/defect fixes -- Enhancement: `/bin/utils/date-add.rex` utility is accepting the date formatting as combination of YY|YYYY, MM, DD and any separator. - Bugfix: Workflow files in the Zowe PAX are now ASCII-encoded. Fixes [#3591](https://github.com/zowe/zowe-install-packaging/issues/3591). - +- Enhancement: `/bin/utils/date-add.rex` utility is accepting the date formatting as combination of YY|YYYY, MM, DD and any separator. ## `2.12.0` @@ -26,7 +32,6 @@ All notable changes to the Zowe Installer will be documented in this file. #### Minor enhancements/defect fixes - ## `2.11.0` ### New features and enhancements diff --git a/bin/commands/certificate/keyring-jcl/connect/.parameters b/bin/commands/certificate/keyring-jcl/connect/.parameters index 8ae86cb266..1160a03958 100644 --- a/bin/commands/certificate/keyring-jcl/connect/.parameters +++ b/bin/commands/certificate/keyring-jcl/connect/.parameters @@ -8,6 +8,6 @@ trust-cas||string|||||Labels of extra certificate authorities should be trusted, connect-user||string|required||||Certificate owner. Can be `SITE` or a user ID. connect-label||string|required||||Certificate label to connect. trust-zosmf||boolean|||||Whether to trust z/OSMF CA. -zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify "_auto_" to let Zowe to detect automatically. This only works for RACF. +zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify `_auto_` to let Zowe to detect automatically. This works for RACF and TSS. zosmf-user||string||IZUSVR|||z/OSMF user name. This is used to automatically detect z/OSMF root certificate authorities. ignore-security-failures||boolean|||||Whether to ignore security setup job failures. diff --git a/bin/commands/certificate/keyring-jcl/generate/.parameters b/bin/commands/certificate/keyring-jcl/generate/.parameters index 6017cd675d..5a16628783 100644 --- a/bin/commands/certificate/keyring-jcl/generate/.parameters +++ b/bin/commands/certificate/keyring-jcl/generate/.parameters @@ -16,6 +16,6 @@ country||string|||||Country of certificate and certificate authority. validity||string|||||Validity days of certificate. trust-cas||string|||||Labels of extra certificate authorities should be trusted, separated by comma (Maximum 2). trust-zosmf||boolean|||||Whether to trust z/OSMF CA. -zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify "_auto_" to let Zowe to detect automatically. This only works for RACF. +zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify `_auto_` to let Zowe to detect automatically. This works for RACF and TSS. zosmf-user||string||IZUSVR|||z/OSMF user name. This is used to automatically detect z/OSMF root certificate authorities. ignore-security-failures||boolean|||||Whether to ignore security setup job failures. diff --git a/bin/commands/certificate/keyring-jcl/import-ds/.parameters b/bin/commands/certificate/keyring-jcl/import-ds/.parameters index f0cb41275a..801991dcce 100644 --- a/bin/commands/certificate/keyring-jcl/import-ds/.parameters +++ b/bin/commands/certificate/keyring-jcl/import-ds/.parameters @@ -7,7 +7,7 @@ keyring-name||string|required||||Name of the keyring. alias|a|string|required|localhost|||Certificate alias name. trust-cas||string|||||Labels of extra certificate authorities should be trusted, separated by comma (Maximum 2). trust-zosmf||boolean|||||Whether to trust z/OSMF CA. -zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify "_auto_" to let Zowe to detect automatically. This only works for RACF. +zosmf-ca||string||_auto_|||Labels of z/OSMF root certificate authorities. Specify `_auto_` to let Zowe to detect automatically. This works for RACF and TSS. zosmf-user||string||IZUSVR|||z/OSMF user name. This is used to automatically detect z/OSMF root certificate authorities. import-ds-name||string|required||||Name of the data set holds certificate to import into keyring. import-ds-password||string|required||||Password of the data set holds certificate to import. diff --git a/bin/commands/diagnose/index.sh b/bin/commands/diagnose/index.sh index e843993523..d1f07e8ebe 100644 --- a/bin/commands/diagnose/index.sh +++ b/bin/commands/diagnose/index.sh @@ -11,25 +11,59 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -error_code="${ZWE_CLI_PARAMETER_ERROR_CODE}" +USE_CONFIGMGR=$(check_configmgr_enabled) +if [ "${USE_CONFIGMGR}" = "true" ]; then + _CEE_RUNOPTS="XPLINK(ON),HEAPPOOLS(OFF)" ${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr -script "${ZWE_zowe_runtimeDirectory}/bin/commands/diagnose/cli.js" +else + + error_code="${ZWE_CLI_PARAMETER_ERROR_CODE}" -server_code=$(echo "${error_code}" | cut -c4) + print_message "" -if echo $error_code | grep -q -E "^[zZ][wW][eE][AaSsDdLl][A-Za-z]?[0-9]{3,4}[A-Za-z]$"; then - if [[ "$server_code" == [Dd] ]]; then - print_message "This code corresponds to the errors related to the ZOWE Desktop and the App Server." - print_message "To find the description of this error code, refer to the Zowe documentation at https://github.com/zowe/docs-site/blob/master/docs/troubleshoot/app-framework/appserver-error-codes.md" - elif [[ "$server_code" == [Ss] ]]; then - print_message "This code corresponds to the errors related to the Zowe Subsystem Services (ZSS) and Zowe Installation Services (ZIS)" - print_message "To find the description of this error code, refer to the Zowe documentation for ZSS at https://docs.zowe.org/stable/troubleshoot/app-framework/zss-error-codes and for ZIS at https://github.com/zowe/docs-site/blob/master/docs/troubleshoot/app-framework/zis-error-codes.md" - elif [[ "$server_code" == [Aa] ]]; then - print_message "This code corresponds to the errors related to the Zowe API Mediation Layer (APIML)." - print_message "To find the description of this error code, refer to the Zowe documentation at https://docs.zowe.org/stable/troubleshoot/troubleshoot-apiml-error-codes" - elif [[ "$server_code" == [Ll] ]]; then - print_message "This code corresponds to the errors related to the Zowe Launcher and ZWE" - print_message "To find the description of this error code, refer to the Zowe documentation for the Launcher at https://docs.zowe.org/stable/troubleshoot/launcher/launcher-error-codes and https://github.com/zowe/launcher/blob/v2.x/master/src/msg.h, and for ZWE at https://docs.zowe.org/stable/appendix/zwe_server_command_reference/zwe/ " + if echo $error_code | grep -q -E "^[zZ][wW][eE][AaSsDdLl][A-Za-z]?[0-9]{3,4}[A-Za-z]$"; then + server_code=$(echo "${error_code}" | cut -c4) + if [[ "$server_code" == [Dd] ]]; then + print_message "This code corresponds to the errors related to the ZOWE Desktop and the App Server." + print_message "" + print_message "To find the description of this error code, refer to the:" + print_message "" + print_message " Zowe documentation for Application framework" + print_message " https://docs.zowe.org/stable/troubleshoot/app-framework/appserver-error-codes" + elif [[ "$server_code" == [Ss] ]]; then + print_message "This code corresponds to the errors related to the Zowe Subsystem Services (ZSS) and Zowe Installation Services (ZIS)." + print_message "" + print_message "To find the description of this error code, refer to the:" + print_message "" + print_message " Zowe documentation for ZSS" + print_message " https://docs.zowe.org/stable/troubleshoot/app-framework/zss-error-codes" + print_message " Zowe documentation for ZIS" + print_message " https://docs.zowe.org/stable/troubleshoot/app-framework/zis-error-codes" + elif [[ "$server_code" == [Aa] ]]; then + print_message "This code corresponds to the errors related to the Zowe API Mediation Layer (APIML)." + print_message "" + print_message "To find the description of this error code, refer to the:" + print_message "" + print_message " Zowe documentation for API Mediation Layer" + print_message " https://docs.zowe.org/stable/troubleshoot/troubleshoot-apiml-error-codes" + elif [[ "$server_code" == [Ll] ]]; then + print_message "This code corresponds to the errors related to the Zowe Launcher and ZWE." + print_message "" + print_message "To find the description of this error code, refer to the:" + print_message "" + print_message " Zowe documentation for Launcher" + print_message " https://docs.zowe.org/stable/troubleshoot/launcher/launcher-error-codes" + print_message " Launcher error codes" + print_message " https://github.com/zowe/launcher/blob/v2.x/master/src/msg.h" + print_message " Zowe documentation for ZWE" + print_message " https://docs.zowe.org/stable/appendix/zwe_server_command_reference/zwe/" + fi + print_message "" + print_message "You may also explore reports from other users experiencing the same error by searching" + print_message "https://github.com/search?q=org%3Azowe+${error_code}&type=discussions" + else + print_error_and_exit "ZWEL0102E: Invalid parameter --error-code='${error_code}'" "" 102 fi - print_message "You may also explore reports from other users experiencing the same error by searching here https://github.com/search?q=org%3Azowe+${error_code}&type=discussions" -else - print_error_and_exit "Invalid Error Code" "" 102 + + print_message "" + fi diff --git a/bin/commands/diagnose/index.ts b/bin/commands/diagnose/index.ts index 1fe91dc198..8fb6518277 100644 --- a/bin/commands/diagnose/index.ts +++ b/bin/commands/diagnose/index.ts @@ -8,31 +8,60 @@ Copyright Contributors to the Zowe Project. */ - import * as std from 'cm_std'; import * as common from '../../libs/common'; -export function execute() { - const errorCode: string = std.getenv('ZWE_CLI_PARAMETER_ERROR_CODE'); +const THIS_CODE = "\nThis code corresponds to the errors related to the"; +const FIND_DESC = "To find the description of this error code, refer to the:\n "; +const URL = { + apiML: "https://docs.zowe.org/stable/troubleshoot/troubleshoot-apiml-error-codes", + appFW : "https://docs.zowe.org/stable/troubleshoot/app-framework/appserver-error-codes", + launcher: "https://docs.zowe.org/stable/troubleshoot/launcher/launcher-error-codes", + launcherGit: "https://github.com/zowe/launcher/blob/v2.x/master/src/msg.h", + zss: "https://docs.zowe.org/stable/troubleshoot/app-framework/zss-error-codes", + zis: "https://docs.zowe.org/stable/troubleshoot/app-framework/zis-error-codes", + zwe: "https://docs.zowe.org/stable/appendix/zwe_server_command_reference/zwe/" +} + +function thisCodeCorrespondsTo(component: string){ + common.printMessage(`${THIS_CODE} ${component}.\n`); + common.printMessage(`${FIND_DESC}`); +} - const serverCode: string = errorCode.charAt(3); +function printLinks(description: string, link: string){ + if (link.indexOf('github') > 0) + common.printMessage(` ${description}`) + else + common.printMessage(` Zowe documentation for ${description}`) + common.printMessage(` ${link}`); +} - if (/^[zZ][wW][eE][AaSsDdLl][A-Za-z]?[0-9]{3,4}[A-Za-z]$/.test(errorCode)) { - if (serverCode.toLowerCase() === 'd') { - common.printMessage("This code corresponds to the errors related to the ZOWE Desktop and the App Server."); - common.printMessage("To find the description of this error code, refer to the Zowe documentation at https://github.com/zowe/docs-site/blob/master/docs/troubleshoot/app-framework/appserver-error-codes.md"); - } else if (serverCode.toLowerCase() === 's') { - common.printMessage("This code corresponds to the errors related to the Zowe Subsystem Services (ZSS) and Zowe Installation Services (ZIS)"); - common.printMessage("To find the description of this error code, refer to the Zowe documentation for ZSS at https://docs.zowe.org/stable/troubleshoot/app-framework/zss-error-codes and for ZIS at https://github.com/zowe/docs-site/blob/master/docs/troubleshoot/app-framework/zis-error-codes.md"); - } else if (serverCode.toLowerCase() === 'a') { - common.printMessage("This code corresponds to the errors related to the Zowe API Mediation Layer (APIML)."); - common.printMessage("To find the description of this error code, refer to the Zowe documentation at https://docs.zowe.org/stable/troubleshoot/troubleshoot-apiml-error-codes"); - } else if (serverCode.toLowerCase() === 'l') { - common.printMessage("This code corresponds to the errors related to the Zowe Launcher and ZWE"); - common.printMessage("To find the description of this error code, refer to the Zowe documentation for the Launcher at https://docs.zowe.org/stable/troubleshoot/launcher/launcher-error-codes and https://github.com/zowe/launcher/blob/v2.x/master/src/msg.h, and for ZWE at https://docs.zowe.org/stable/appendix/zwe_server_command_reference/zwe/"); +export function execute() { + const errorCode = std.getenv('ZWE_CLI_PARAMETER_ERROR_CODE'); + if (/^[zZ][wW][eE][AaSsDdLl][A-Za-z]?[0-9]{3,4}[A-Za-z]$/.test(errorCode)) { + const serverCode = errorCode.charAt(3); + if (serverCode.toLowerCase() === 'd') { + thisCodeCorrespondsTo('ZOWE Desktop and the App Server'); + printLinks('Application framework', `${URL.appFW}`); + } + else if (serverCode.toLowerCase() === 's') { + thisCodeCorrespondsTo('Zowe Subsystem Services (ZSS) and Zowe Installation Services (ZIS)'); + printLinks('ZSS', `${URL.zss}`); + printLinks('ZIS', `${URL.zis}`); + } + else if (serverCode.toLowerCase() === 'a') { + thisCodeCorrespondsTo('Zowe API Mediation Layer (APIML)'); + printLinks('API Mediation Layer', `${URL.apiML}`); + } + else if (serverCode.toLowerCase() === 'l') { + thisCodeCorrespondsTo('Zowe Launcher and ZWE'); + printLinks('Launcher', `${URL.launcher}`); + printLinks('Launcher error codes', `${URL.launcherGit}`); + printLinks('ZWE', `${URL.zwe}`); + } + common.printMessage(`\nYou may also explore reports from other users experiencing the same error by searching\nhttps://github.com/search?q=org%3Azowe+${errorCode}&type=discussions\n`); + } + else { + common.printErrorAndExit(`ZWEL0102E: Invalid parameter --error-code='${errorCode}'`, undefined, 102); } - common.printMessage(`You may also explore reports from other users experiencing the same error by searching here https://github.com/search?q=org%3Azowe+${errorCode}&type=discussions`) - } else { - common.printErrorAndExit("Invalid Error Code", undefined, 102); - } } diff --git a/bin/libs/certificate.sh b/bin/libs/certificate.sh index 49fcc232ef..13dec5e1d4 100644 --- a/bin/libs/certificate.sh +++ b/bin/libs/certificate.sh @@ -876,7 +876,15 @@ EOF if [ "${trust_zosmf}" = "1" ]; then if [ "${zosmf_root_ca}" = "_auto_" ]; then - zosmf_root_ca=$(detect_zosmf_root_ca "${ZWE_PRIVATE_ZOSMF_USER}") + if [ "${security_product}" = "RACF" ]; then + zosmf_root_ca=$(detect_zosmf_root_ca_racf "${ZWE_PRIVATE_ZOSMF_USER}") + fi + if [ "${security_product}" = "TSS" ]; then + zosmf_root_ca=$(detect_zosmf_root_ca_tss "${ZWE_PRIVATE_ZOSMF_USER}") + fi + if [ "${security_product}" = "ACF2" ]; then + zosmf_root_ca=$(detect_zosmf_root_ca_acf2 "${ZWE_PRIVATE_ZOSMF_USER}") + fi fi if [ -z "${zosmf_root_ca}" ]; then print_error_and_exit "Error ZWEL0137E: z/OSMF root certificate authority is not provided (or cannot be detected) with trusting z/OSMF option enabled." "" 137 @@ -1397,12 +1405,76 @@ EOF "${labels_with_private_key}" } -# this only works for RACF -detect_zosmf_root_ca() { +# FIXME +# - Support for multiple? | long | special characters entries +detect_zosmf_root_ca_tss() { + zosmf_user=${1:-IZUSVR} + zosmf_root_ca= + + print_trace "- Detect z/OSMF keyring by listing ID(${zosmf_user}) [TSS]" + zosmf_certs=$(tsocmd "TSS LIST(${zosmf_user}) KEYRING(ALL)" 2>&1) + code=$? + if [ ${code} -ne 0 ]; then + print_trace " * Exit code: ${code}" + print_trace " * Output:" + if [ -n "${zosmf_certs}" ]; then + print_trace "$(padding_left "${zosmf_certs}" " ")" + fi + return 1 + fi + + # Output example: + # KEYRING LABEL = KEYRING.IZUDFLT + zosmf_keyring_name=$(echo "${zosmf_certs}" | grep "KEYRING LABEL = " | awk -F= '{ print $2 }' | head -n 1) + if [ -n "${zosmf_keyring_name}" ]; then + print_trace " * z/OSMF keyring name is ${zosmf_keyring_name}" + # Output example: + # ACID(CERTAUTH) DIGICERT(ABCDEFGH) DEFAULT(NO ) USAGE(CERTAUTH) + # LABLCERT(ZOSMF_ROOT_CA ) + zosmf_root_ca=$(echo "${zosmf_certs}" | grep -A 1 "ACID(CERTAUTH)" | grep "LABLCERT(" | head -n 1) + zosmf_root_ca=$(echo "${zosmf_root_ca}" | awk '{ print substr( $0, 12, length($0)-13) }') + zosmf_root_ca=$(echo "${zosmf_root_ca}" | sed -e 's/^[[:space:]]*//;s/[[:space:]]*$//') + if [ -n "${zosmf_root_ca}" ]; then + print_trace " * z/OSMF root certificate authority found: ${zosmf_root_ca}" + echo "${zosmf_root_ca}" + return 0 + else + print_trace " * Error: cannot detect z/OSMF root certificate authority" + return 2 + fi + else + print_trace " * Error: failed to detect z/OSMF keyring name" + return 3 + fi +} + +# FIXME +# - add similar code using ACFUNIX instead of tsocmd +# - or use JCLs to be sure it will always works +detect_zosmf_root_ca_acf2() { + zosmf_user=${1:-IZUSVR} + zosmf_root_ca= + + print_trace "- Detect z/OSMF keyring by listing ID(${zosmf_user}) [ACF2]" + echo "${zosmf_root_ca}" + return 1 +} + +# FIXME +# - Support for multiple? | long | special characters entries +# - RACDCERT LISTRING will be confused if label contains 'CERTAUTH' word: +# +# Certificate Label Name Cert Owner USAGE DEFAULT +# -------------------------------- ------------ -------- ------- +# CERTAUTH_FOR_T800 ID(SKYNET) DEADLY YES +# JOHN_CONNOR CERTAUTH CERTAUTH NO +# +# Will return CERTAUTH_FOR_T800 instead of JOHN_CONNOR +detect_zosmf_root_ca_racf() { zosmf_user=${1:-IZUSVR} zosmf_root_ca= - print_trace "- Detect z/OSMF keyring by listing ID(${zosmf_user})" + print_trace "- Detect z/OSMF keyring by listing ID(${zosmf_user}) [RACF]" zosmf_certs=$(tsocmd "RACDCERT LIST ID(${zosmf_user})" 2>&1) code=$? if [ ${code} -ne 0 ]; then diff --git a/bin/libs/configmgr.ts b/bin/libs/configmgr.ts index ba16685f1e..26c16fa89a 100644 --- a/bin/libs/configmgr.ts +++ b/bin/libs/configmgr.ts @@ -14,6 +14,7 @@ import * as os from 'cm_os'; import * as xplatform from 'xplatform'; import { ConfigManager } from 'Configuration'; import * as fs from './fs'; +import * as stringlib from './string'; import * as objUtils from '../utils/ObjUtils'; @@ -415,7 +416,7 @@ function getMemberNameFromConfigPath(configPath: string): string|undefined { function stripMemberName(configPath: string, memberName: string): string { //Turn PARMLIB(my.zowe(yaml)):PARMLIB(my.other.zowe(yaml)) //Into PARMLIB(my.zowe):FILE(/some/path.yaml):PARMLIB(my.other.zowe) - const replacer = new RegExp('\\('+memberName+'\\)\\)', 'gi'); + const replacer = new RegExp('\\('+stringlib.escapeDollar(memberName)+'\\)\\)', 'gi'); return configPath.replace(replacer, ")"); } diff --git a/bin/libs/string.sh b/bin/libs/string.sh index 1c1be161ba..c5b95d38bb 100755 --- a/bin/libs/string.sh +++ b/bin/libs/string.sh @@ -22,7 +22,7 @@ trim() { input=${1} fi - echo "${input}" | xargs + echo "${input}" | sed -e 's/^[[:space:]]*//;s/[[:space:]]*$//' } ############################### diff --git a/bin/libs/string.ts b/bin/libs/string.ts index 7fa5c6020f..20acafbf6d 100644 --- a/bin/libs/string.ts +++ b/bin/libs/string.ts @@ -344,3 +344,16 @@ export function itemInList(stringList: string, stringToFind?: string, separator: } return stringList.split(separator).includes(stringToFind); } + +export function escapeDollar(str: string): string | undefined { + if (str === null || str === undefined) + return undefined; + return str.replace(/[$]/g, '\\$&'); +} + +export function escapeRegExp(str: string): string | undefined { + if (str === null || str === undefined) + return undefined; + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + diff --git a/bin/libs/zos-dataset.ts b/bin/libs/zos-dataset.ts index c1960ec929..74d10aed9e 100644 --- a/bin/libs/zos-dataset.ts +++ b/bin/libs/zos-dataset.ts @@ -18,7 +18,7 @@ import * as shell from './shell'; import * as zoslib from './zos'; export function isDatasetExists(datasetName: string): boolean { - const result = shell.execSync('sh', '-c', `cat "//'${datasetName}'" 1>/dev/null 2>&1`); + const result = shell.execSync('sh', '-c', `cat "//'${stringlib.escapeDollar(datasetName)}'" 1>/dev/null 2>&1`); return result.rc === 0; } @@ -27,7 +27,7 @@ export function isDatasetExists(datasetName: string): boolean { // 1: data set is not in catalog // 2: data set member doesn't exist export function tsoIsDatasetExists(datasetName: string): number { - const result = zoslib.tsoCommand(`listds '${datasetName}' label`); + const result = zoslib.tsoCommand(`listds '${stringlib.escapeDollar(datasetName)}' label`); if (result.rc != 0) { if (result.out.includes('NOT IN CATALOG')) { return 1; @@ -44,7 +44,7 @@ export function tsoIsDatasetExists(datasetName: string): number { } export function createDataSet(dsName: string, dsOptions: string): number { - const result=zoslib.tsoCommand(`ALLOCATE NEW DA('${dsName}') ${dsOptions}`); + const result=zoslib.tsoCommand(`ALLOCATE NEW DA('${stringlib.escapeDollar(dsName)}') ${dsOptions}`); return result.rc; } @@ -55,7 +55,7 @@ export function copyToDataset(filePath: string, dsName: string, cpOptions: strin } } - const cpCommand=`cp ${cpOptions} -v "${filePath}" "//'${dsName}'"`; + const cpCommand=`cp ${cpOptions} -v "${filePath}" "//'${stringlib.escapeDollar(dsName)}'"`; common.printDebug('- '+cpCommand); const result=shell.execOutSync('sh', '-c', `${cpCommand} 2>&1`); if (result.rc == 0) { @@ -79,7 +79,7 @@ export function datasetCopyToDataset(prefix: string, datasetFrom: string, datase } } - const cmd=`exec '${prefix}.${std.getenv('ZWE_PRIVATE_DS_SZWEEXEC')}(ZWEMCOPY)' '${datasetFrom} ${datasetTo}'`; + const cmd = `exec '${stringlib.escapeDollar(prefix)}.${std.getenv('ZWE_PRIVATE_DS_SZWEEXEC')}(ZWEMCOPY)' '${stringlib.escapeDollar(datasetFrom)} ${stringlib.escapeDollar(datasetTo)}'`; const result = zoslib.tsoCommand(cmd); return result.rc; } @@ -91,7 +91,7 @@ export function datasetCopyToDataset(prefix: string, datasetFrom: string, datase // 1: there are some users // @output output of operator command "d grs" export function listDatasetUser(datasetName: string): number { - const cmd=`D GRS,RES=(*,${datasetName})`; + const cmd = `D GRS,RES=(*,'${stringlib.escapeDollar(datasetName)}')`; const result=zoslib.operatorCommand(cmd); return result.out.includes('NO REQUESTORS FOR RESOURCE') ? 0 : 1; // example outputs: @@ -128,7 +128,7 @@ export function listDatasetUser(datasetName: string): number { // 3: data set is in use // @output tso listds label output export function deleteDataset(dataset: string): number { - const cmd=`delete '${dataset}'`; + const cmd=`delete '${stringlib.escapeDollar(dataset)}'`; const result=zoslib.tsoCommand(cmd); if (result.rc != 0) { if (result.out.includes('NOT IN CATALOG')) { @@ -170,7 +170,7 @@ export function isDatasetSmsManaged(dataset: string): { rc: number, smsManaged?: // SMS flag is in `FORMAT 1 DSCB` section second line, after 780037 common.printTrace(`- Check if ${dataset} is SMS managed`); - const labelResult = zoslib.tsoCommand(`listds '${dataset}' label`); + const labelResult = zoslib.tsoCommand(`listds '${stringlib.escapeDollar(dataset)}' label`); const datasetLabel=labelResult.out; if (labelResult.rc == 0) { let formatIndex = datasetLabel.indexOf('--FORMAT 1 DSCB--'); @@ -212,14 +212,13 @@ export function isDatasetSmsManaged(dataset: string): { rc: number, smsManaged?: export function getDatasetVolume(dataset: string): { rc: number, volume?: string } { common.printTrace(`- Find volume of data set ${dataset}`); - const result = zoslib.tsoCommand(`listds '${dataset}'`); + const result = zoslib.tsoCommand(`listds '${stringlib.escapeDollar(dataset)}'`); if (result.rc == 0) { let volumesIndex = result.out.indexOf('--VOLUMES--'); let volume: string; if (volumesIndex != -1) { let startIndex = volumesIndex + '--VOLUMES--'.length; - let endIndex = result.out.indexOf('--',startIndex); - volume = result.out.substring(startIndex, endIndex).trim(); + volume = result.out.substring(startIndex).trim(); } if (!volume) { common.printError(" * Failed to find volume information of the data set."); @@ -235,7 +234,7 @@ export function getDatasetVolume(dataset: string): { rc: number, volume?: string export function apfAuthorizeDataset(dataset: string): number { const result = isDatasetSmsManaged(dataset); if (result.rc) { - common.printError("Error ZWEL0134E: Failed to find SMS status of data set ${dataset}."); + common.printError(`Error ZWEL0134E: Failed to find SMS status of data set ${dataset}.`); return 134; } @@ -256,7 +255,7 @@ export function apfAuthorizeDataset(dataset: string): number { } } - const apfCmd="SETPROG APF,ADD,DSNAME=${dataset},${apfVolumeParam}" + const apfCmd=`SETPROG APF,ADD,DSNAME=${dataset},${apfVolumeParam}`; if (std.getenv('ZWE_CLI_PARAMETER_SECURITY_DRY_RUN') == "true") { common.printMessage("- Dry-run mode, security setup is NOT performed on the system."); common.printMessage(" Please apply this operator command manually:"); @@ -277,7 +276,7 @@ export function apfAuthorizeDataset(dataset: string): number { } export function createDatasetTmpMember(dataset: string, prefix: string='ZW'): string | null { - common.printTrace(` > create_data_set_tmp_member in ${dataset}`); + common.printTrace(` > createDatasetTmpMember in ${dataset}`); for (var i = 0; i < 100; i++) { let rnd=Math.floor(Math.random()*10000); diff --git a/bin/libs/zos-fs.ts b/bin/libs/zos-fs.ts index 99305bc4b9..e0023a449f 100644 --- a/bin/libs/zos-fs.ts +++ b/bin/libs/zos-fs.ts @@ -20,11 +20,13 @@ import * as shell from './shell'; // Get file encoding from z/OS USS tagging export function getFileEncoding(filePath: string): number|undefined { //zos.changeTag(file, id) - let returnArray = os.stat(filePath); - if (!returnArray[1] && ((returnArray[0].mode & os.S_IFREG) == os.S_IFREG)) { //no error, and is file - return returnArray[0].ccsid; - } else { - common.printError(`getFileEncoding path=${filePath}, err=${returnArray[1]}`); + if (os.platform == 'zos') { + let returnArray = zos.zstat(filePath); + if (!returnArray[1] && ((returnArray[0].mode & os.S_IFMT) == os.S_IFREG)) { //no error, and is file + return returnArray[0].ccsid; + } else { + common.printError(`getFileEncoding path=${filePath}, err=${returnArray[1]}`); + } } return undefined; } @@ -85,7 +87,7 @@ export function detectFileEncoding(fileName: string, expectedSample: string, exp export function copyMvsToUss(dataset: string, file: string): number { common.printDebug(`copyMvsToUss dataset=${dataset}, file=${file}`); - const result = shell.execSync('sh', '-c', `cp "//'${dataset}'" "${file}"`); + const result = shell.execSync('sh', '-c', `cp "//'${stringlib.escapeDollar(dataset)}'" '${file}'`); return result.rc; } @@ -109,7 +111,7 @@ export function ensureFileEncoding(file: string, expectedSample: string, expecte } } common.printTrace(`- Remove encoding tag of ${file}.`); - zos.changeTag(file, 0); + shell.execSync('sh', '-c', `chtag -r "${file}"`); } else { common.printTrace(`- Failed to detect encoding of ${file}.`); } diff --git a/bin/libs/zos.ts b/bin/libs/zos.ts index b49e81451b..8cc5dea000 100644 --- a/bin/libs/zos.ts +++ b/bin/libs/zos.ts @@ -16,7 +16,7 @@ import * as shell from './shell'; import * as stringlib from './string'; export function tsoCommand(...args:string[]): { rc: number, out: string } { - let message="tsocmd "+args.join(' '); + let message = "tsocmd " + '"' + args.join(' ') + '"'; common.printDebug('- '+message); //we echo at the end to avoid a configmgr quirk where trying to read stdout when empty can hang waiting for bytes const result = shell.execOutSync('sh', '-c', `${message} 2>&1 && echo '.'`); diff --git a/bin/libs/zwecli.sh b/bin/libs/zwecli.sh index eb0e249a3c..0131c5ff5b 100755 --- a/bin/libs/zwecli.sh +++ b/bin/libs/zwecli.sh @@ -376,6 +376,9 @@ zwecli_inline_execute_command() { export ZWE_PRIVATE_CLI_IS_TOP_LEVEL_COMMAND=false + print_trace "- zwecli_inline_execute_command" + print_trace " * ${*}" + # process new command . "${ZWE_zowe_runtimeDirectory}/bin/zwe" diff --git a/bin/zwe b/bin/zwe index baaf43bb9d..80e6247115 100755 --- a/bin/zwe +++ b/bin/zwe @@ -69,7 +69,9 @@ while [ $# -gt 0 ]; do print_error_and_exit "Error ZWEL0103E: Invalid type of parameter ${arg}" "" 103 fi fi - shift + if [ $# -gt 0 ]; then + shift + fi done # debug results diff --git a/build/zwe/types/@qjstypes/zos.d.ts b/build/zwe/types/@qjstypes/zos.d.ts index ec41ae6571..551948c5c2 100644 --- a/build/zwe/types/@qjstypes/zos.d.ts +++ b/build/zwe/types/@qjstypes/zos.d.ts @@ -11,8 +11,13 @@ export type ZStat = { dev: number; ino: number; + mode: number; + nlink: number; uid: number; gid: number; + rdev: number; + size: number; + blocks: number; atime: number; mtime: number; ctime: number; diff --git a/manifest.json.template b/manifest.json.template index 65de58a3d7..cb8813927d 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -1,6 +1,6 @@ { "name": "Zowe", - "version": "2.14.0", + "version": "2.15.0", "description": "Zowe is an open source project created to host technologies that benefit the Z platform from all members of the Z community (Integrated Software Vendors, System Integrators and z/OS consumers). Zowe, like Mac or Windows, comes with a set of APIs and OS capabilities that applications build on and also includes some applications out of the box. Zowe offers modern interfaces to interact with z/OS and allows you to work with z/OS in a way that is similar to what you experience on cloud platforms today. You can use these interfaces as delivered or through plug-ins and extensions that are created by clients or third-party vendors.", "license": "EPL-2.0", "homepage": "https://zowe.org", diff --git a/smpe/bld/service/promoted-apar.txt b/smpe/bld/service/promoted-apar.txt index 50dd21d4dd..07ec28cc3e 100644 --- a/smpe/bld/service/promoted-apar.txt +++ b/smpe/bld/service/promoted-apar.txt @@ -1,3 +1,6 @@ +IO29346 +IO29347 +IO29348 IO29343 IO29344 IO29345 diff --git a/smpe/bld/service/promoted-close.txt b/smpe/bld/service/promoted-close.txt index dd88e48cee..ee6b38e692 100644 --- a/smpe/bld/service/promoted-close.txt +++ b/smpe/bld/service/promoted-close.txt @@ -1,3 +1,48 @@ + IO29346 - + PROBLEM SUMMARY: + **************************************************************** + * USERS AFFECTED: All Zowe users * + **************************************************************** + * PROBLEM DESCRIPTION: Update Zowe FMID AZWE002 to match the * + * community release * + **************************************************************** + * RECOMMENDATION: Apply provided service * + **************************************************************** + The Zowe community version was updated to 2.14.0. + This PTF provides the community changes in SMP/E format. + Follow this link for more details on the community changes: + https://docs.zowe.org/stable/ + + IO29347 - + PROBLEM SUMMARY: + **************************************************************** + * USERS AFFECTED: All Zowe users * + **************************************************************** + * PROBLEM DESCRIPTION: Update Zowe FMID AZWE002 to match the * + * community release * + **************************************************************** + * RECOMMENDATION: Apply provided service * + **************************************************************** + The Zowe community version was updated to 2.14.0. + This PTF provides the community changes in SMP/E format. + Follow this link for more details on the community changes: + https://docs.zowe.org/stable/ + + IO29348 - + PROBLEM SUMMARY: + **************************************************************** + * USERS AFFECTED: All Zowe users * + **************************************************************** + * PROBLEM DESCRIPTION: Update Zowe FMID AZWE002 to match the * + * community release * + **************************************************************** + * RECOMMENDATION: Apply provided service * + **************************************************************** + The Zowe community version was updated to 2.14.0. + This PTF provides the community changes in SMP/E format. + Follow this link for more details on the community changes: + https://docs.zowe.org/stable/ + IO29343 - PROBLEM SUMMARY: **************************************************************** diff --git a/smpe/bld/service/promoted-hold.txt b/smpe/bld/service/promoted-hold.txt index 1fc5b423cc..3337b60c7a 100644 --- a/smpe/bld/service/promoted-hold.txt +++ b/smpe/bld/service/promoted-hold.txt @@ -1,3 +1,28 @@ +++HOLD(UO90047) SYSTEM FMID(AZWE002) REASON(ACTION) DATE(24026) + COMMENT( + **************************************************************** + * Affected function: Zowe servers * + **************************************************************** + * Description: stop servers * + **************************************************************** + * Timing: pre-APPLY * + **************************************************************** + * Part: ZWESLSTC and ZWESISTC * + **************************************************************** + Stop the Zowe servers before installing this update. + + **************************************************************** + * Affected function: Zowe servers * + **************************************************************** + * Description: start servers * + **************************************************************** + * Timing: post-APPLY * + **************************************************************** + * Part: ZWESLSTC and ZWESISTC * + **************************************************************** + Start the Zowe servers after installing this update. + + ). ++HOLD(UO90045) SYSTEM FMID(AZWE002) REASON(ACTION) DATE(23348) COMMENT( **************************************************************** diff --git a/smpe/bld/service/promoted-ptf.txt b/smpe/bld/service/promoted-ptf.txt index 7d09f95e2c..08242dbddd 100644 --- a/smpe/bld/service/promoted-ptf.txt +++ b/smpe/bld/service/promoted-ptf.txt @@ -1,3 +1,5 @@ +UO90047 +UO90048 UO90045 UO90046 UO90033 diff --git a/smpe/bld/service/ptf-bucket.txt b/smpe/bld/service/ptf-bucket.txt index bef1acd7b8..0f4b8c00a3 100644 --- a/smpe/bld/service/ptf-bucket.txt +++ b/smpe/bld/service/ptf-bucket.txt @@ -20,5 +20,5 @@ #UO90031 UO90032 - IO29286 IO29287 IO29288 - Tue Sep 12 18:27:05 UTC 2023 #UO90033 UO90034 - IO29289 IO29290 IO29291 - Tue Oct 24 19:49:48 UTC 2023 #UO90045 UO90046 - IO29343 IO29344 IO29345 - Thu Dec 14 16:23:26 UTC 2023 -UO90047 UO90048 - IO29346 IO29347 IO29348 +#UO90047 UO90048 - IO29346 IO29347 IO29348 - Fri Jan 26 17:21:09 UTC 2024 UO90049 UO90050 - IO29349 IO29350 IO29351