diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index efa37bb2ca..6bbb222e2f 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -1,4 +1,11 @@ name: Zowe CICD Integration Tests + +permissions: + contents: write + issues: write + pull-requests: write + statuses: write + on: workflow_dispatch: inputs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6485176d2f..262fe86796 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ All notable changes to the Zowe Installer will be documented in this file. +## `2.18.1` +- Bugfix: Error message `ZWEL0141E` did not print user ID. [#3971](https://github.com/zowe/zowe-install-packaging/pull/3971) + ## `2.17.0` ## New features and enhancements diff --git a/README.md b/README.md index 0fca70475a..ef3549e658 100644 --- a/README.md +++ b/README.md @@ -194,3 +194,10 @@ Please check details in [playbooks folder](playbooks/README.md). ## Quick Sanity Check on Your Zowe Instance Please check details in [sanity test folder](tests/sanity/README.md). + +
Hosting infrastructure for this project is supported by:
++ + + +
diff --git a/bin/commands/internal/start/prepare/index.sh b/bin/commands/internal/start/prepare/index.sh index 85ca4ad100..464ae53205 100644 --- a/bin/commands/internal/start/prepare/index.sh +++ b/bin/commands/internal/start/prepare/index.sh @@ -142,8 +142,11 @@ global_validate() { if [[ ${ZWE_ENABLED_COMPONENTS} == *"discovery"* || ${ZWE_ENABLED_COMPONENTS} == *"files-api"* || ${ZWE_ENABLED_COMPONENTS} == *"jobs-api"* ]]; then validate_this "validate_zosmf_host_and_port \"${ZOSMF_HOST}\" \"${ZOSMF_PORT}\" 2>&1" "zwe-internal-start-prepare,global_validate:${LINENO}" fi - elif [ "${ZWE_components_gateway_apiml_security_auth_provider}" = "zosmf" ]; then - validate_this "validate_zosmf_as_auth_provider \"${ZOSMF_HOST}\" \"${ZOSMF_PORT}\" \"${ZWE_components_gateway_apiml_security_auth_provider}\" 2>&1" "zwe-internal-start-prepare,global_validate:${LINENO}" + if [ "${ZWE_components_discovery_enabled}" = "false" -a "${ZWE_components_gateway_apiml_security_auth_provider}" = "zosmf" ]; then + let "ZWE_PRIVATE_ERRORS_FOUND=${ZWE_PRIVATE_OLD_ERRORS_FOUND}+1" + print_error "Using z/OSMF as 'components.gateway.apiml.security.auth.provider' is not possible: discovery is disabled." + print_formatted_info "ZWELS" "zwe-internal-start-prepare,global_validate:${LINENO}" "Zosmf validation failed" + fi fi check_runtime_validation_result "zwe-internal-start-prepare,global_validate:${LINENO}" diff --git a/bin/commands/internal/start/prepare/index.ts b/bin/commands/internal/start/prepare/index.ts index cf9463fbdc..30c67135f2 100644 --- a/bin/commands/internal/start/prepare/index.ts +++ b/bin/commands/internal/start/prepare/index.ts @@ -75,7 +75,7 @@ function prepareLogDirectory() { if (logDir) { os.mkdir(logDir, 0o750); if (!fs.isDirectoryWritable(logDir)) { - common.printFormattedError("ZWELS", "zwe-internal-start-prepare,prepare_log_directory", `ZWEL0141E: User $(get_user_id) does not have write permission on ${logDir}.`); + common.printFormattedError("ZWELS", "zwe-internal-start-prepare,prepare_log_directory", `ZWEL0141E: User ${user} does not have write permission on ${logDir}.`); std.exit(141); } } @@ -172,12 +172,11 @@ function globalValidate(enabledComponents:string[]): void { privateErrors++; common.printFormattedError('ZWELS', "zwe-internal-start-prepare,global_validate", "Zosmf validation failed"); } - } else if (std.getenv('ZWE_components_gateway_apiml_security_auth_provider') == "zosmf") { - let zosmfOk = zosmf.validateZosmfAsAuthProvider(zosmfHost, zosmfPort, 'zosmf'); - if (!zosmfOk) { - privateErrors++; - common.printFormattedError('ZWELS', "zwe-internal-start-prepare,global_validate", "Zosmf validation failed"); - } + } + if (!enabledComponents.includes('discovery') && std.getenv('ZWE_components_gateway_apiml_security_auth_provider') == "zosmf") { + privateErrors++; + common.printError("Using z/OSMF as 'components.gateway.apiml.security.auth.provider' is not possible: discovery is disabled."); + common.printFormattedError('ZWELS', "zwe-internal-start-prepare,global_validate", "Zosmf validation failed"); } } diff --git a/bin/commands/support/verify-fingerprints/index.sh b/bin/commands/support/verify-fingerprints/index.sh index 0044c5e48a..3a67cc129b 100644 --- a/bin/commands/support/verify-fingerprints/index.sh +++ b/bin/commands/support/verify-fingerprints/index.sh @@ -63,7 +63,10 @@ print_message "- Calculate hashes of Zowe files" cust_hashes=$(create_tmp_file "${tmp_file_prefix}") result=$(java -cp "${ZWE_zowe_runtimeDirectory}/bin/utils/" HashFiles "${all_files}" | sort > "${cust_hashes}") code=$? -if [ ${code} -eq 1 -o ! -f "${cust_hashes}" ]; then +if [ -f "${cust_hashes}" ]; then + file_size_check=$(wc -l "${cust_hashes}" | awk '{print $1}') +fi +if [ "${code}" -eq 1 -o ! -f "${cust_hashes}" -o "${file_size_check}" -eq 0 ]; then print_error " * Error ZWEL0151E: Failed to create temporary file ${cust_hashes}. Please check permission or volume free space." print_error " * Exit code: ${code}" print_error " * Output:" diff --git a/bin/libs/zosmf.sh b/bin/libs/zosmf.sh index 116f66c65e..84477c3699 100644 --- a/bin/libs/zosmf.sh +++ b/bin/libs/zosmf.sh @@ -49,16 +49,3 @@ validate_zosmf_host_and_port() { print_message "Successfully checked z/OS MF is available on 'https://${zosmf_host}:${zosmf_port}/zosmf/info'" fi } - -validate_zosmf_as_auth_provider() { - zosmf_host="${1}" - zosmf_port="${2}" - auth_provider="${3}" - - if [ -n "${zosmf_host}" -a -n "${zosmf_port}" ]; then - if [ "${auth_provider}" = "zosmf" ]; then - print_error "z/OSMF is not configured. Using z/OSMF as authentication provider is not supported." - return 1 - fi - fi -} diff --git a/bin/libs/zosmf.ts b/bin/libs/zosmf.ts index 89bddfa108..9e05a98be0 100644 --- a/bin/libs/zosmf.ts +++ b/bin/libs/zosmf.ts @@ -31,7 +31,7 @@ export function validateZosmfHostAndPort(zosmfHost: string, zosmfPort: number): common.printError(`Warning: Could not validate if z/OS MF is available on 'https://${zosmfHost}:${zosmfPort}/zosmf/info'. NODE_HOME is not defined.`); zosmfCheckPassed=false; } else { - let execReturn = shell.execOutSync(`${std.getenv('NODE_HOME')}/bin/node`, `${std.getenv('ZWE_zowe_runtimeDirectory')}/bin/utils/curl.js`, `"https://${zosmfHost}:${zosmfPort}/zosmf/info"`, `-k`, `-H`, `"X-CSRF-ZOSMF-HEADER: true"`, `--response-type`, `status`); + const execReturn = shell.execOutSync(`${std.getenv('NODE_HOME')}/bin/node`, `${std.getenv('ZWE_zowe_runtimeDirectory')}/bin/utils/curl.js`, `https://${zosmfHost}:${zosmfPort}/zosmf/info`, `-k`, `-H`, `X-CSRF-ZOSMF-HEADER: true`, `--response-type`, `status`); if (execReturn.rc || !execReturn.out) { common.printError(`Warning: Could not validate if z/OS MF is available on 'https://${zosmfHost}:${zosmfPort}/zosmf/info'. No response code from z/OSMF server.`); zosmfCheckPassed=false @@ -47,14 +47,3 @@ export function validateZosmfHostAndPort(zosmfHost: string, zosmfPort: number): } return zosmfCheckPassed; } - -//TODO isnt this completely backwards? -export function validateZosmfAsAuthProvider(zosmfHost: string, zosmfPort: number, authProvider: string): boolean { - if (zosmfHost && zosmfPort) { - if (authProvider == 'zosmf') { - common.printError("z/OSMF is not configured. Using z/OSMF as authentication provider is not supported."); - return true; - } - } - return false; -} diff --git a/containers/base-jdk/ubi/Dockerfile b/containers/base-jdk/ubi/Dockerfile index b87b254888..e4618a38bb 100644 --- a/containers/base-jdk/ubi/Dockerfile +++ b/containers/base-jdk/ubi/Dockerfile @@ -9,7 +9,7 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -FROM zowe-docker-release.jfrog.io/ompzowe/base:latest-ubi +FROM zowe-docker-release.jfrog.io/ompzowe/base:2-ubi ################################## # labels diff --git a/containers/base-jdk/ubuntu/Dockerfile b/containers/base-jdk/ubuntu/Dockerfile index 3ce76a688a..bdb950bbc6 100644 --- a/containers/base-jdk/ubuntu/Dockerfile +++ b/containers/base-jdk/ubuntu/Dockerfile @@ -9,7 +9,7 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -FROM zowe-docker-release.jfrog.io/ompzowe/base:latest-ubuntu +FROM zowe-docker-release.jfrog.io/ompzowe/base:2-ubuntu ################################## # labels diff --git a/containers/base-node/Dockerfile b/containers/base-node/Dockerfile index e3cd778ccd..345a3a3118 100644 --- a/containers/base-node/Dockerfile +++ b/containers/base-node/Dockerfile @@ -10,7 +10,7 @@ ####################################################################### # base image tag -ARG ZOWE_BASE_IMAGE=latest-ubuntu +ARG ZOWE_BASE_IMAGE=2-ubuntu FROM zowe-docker-release.jfrog.io/ompzowe/base:${ZOWE_BASE_IMAGE} diff --git a/containers/zowe-launch-scripts/Dockerfile b/containers/zowe-launch-scripts/Dockerfile index 4c969ce1d7..4334923c61 100644 --- a/containers/zowe-launch-scripts/Dockerfile +++ b/containers/zowe-launch-scripts/Dockerfile @@ -10,7 +10,7 @@ ####################################################################### # base image tag -ARG ZOWE_BASE_IMAGE=latest-ubuntu +ARG ZOWE_BASE_IMAGE=2-ubuntu FROM zowe-docker-release.jfrog.io/ompzowe/base-node:${ZOWE_BASE_IMAGE} diff --git a/manifest.json.template b/manifest.json.template index 25179f2c57..409aaf4c0e 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -1,6 +1,6 @@ { "name": "Zowe", - "version": "2.18.0", + "version": "2.18.1", "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/schemas/zowe-yaml-schema.json b/schemas/zowe-yaml-schema.json index df7b978c92..c9390f9c01 100644 --- a/schemas/zowe-yaml-schema.json +++ b/schemas/zowe-yaml-schema.json @@ -804,7 +804,7 @@ "file": { "type": "string", "description": "Path of your z/OS keyring, including ring owner and ring name. Case sensitivity and spaces matter.", - "pattern": "^safkeyring:\/\/.*" + "pattern": "^safkeyring[a-z]*:\/\/.*" }, "password": { "type": "string", @@ -831,7 +831,7 @@ "file": { "type": "string", "description": "Path of your z/OS keyring, including ring owner and ring name. Case sensitivity and spaces matter.", - "pattern": "^safkeyring:\/\/.*" + "pattern": "^safkeyring[a-z]*:\/\/.*" }, "password": { "type": "string", diff --git a/smpe/bld/service/promoted-apar.txt b/smpe/bld/service/promoted-apar.txt index e65ef7390f..df37f324c7 100644 --- a/smpe/bld/service/promoted-apar.txt +++ b/smpe/bld/service/promoted-apar.txt @@ -1,3 +1,6 @@ +IO29431 +IO29432 +IO29433 IO29428 IO29429 IO29430 diff --git a/smpe/bld/service/promoted-close.txt b/smpe/bld/service/promoted-close.txt index b0196523e5..49972ae814 100644 --- a/smpe/bld/service/promoted-close.txt +++ b/smpe/bld/service/promoted-close.txt @@ -1,3 +1,48 @@ + IO29431 - + 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.18.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/ + + IO29432 - + 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.18.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/ + + IO29433 - + 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.18.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/ + IO29428 - PROBLEM SUMMARY: **************************************************************** diff --git a/smpe/bld/service/promoted-hold.txt b/smpe/bld/service/promoted-hold.txt index e5d2bfc0ca..2974e256e5 100644 --- a/smpe/bld/service/promoted-hold.txt +++ b/smpe/bld/service/promoted-hold.txt @@ -1,3 +1,28 @@ +++HOLD(UO90061) SYSTEM FMID(AZWE002) REASON(ACTION) DATE(24240) + 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(UO90059) SYSTEM FMID(AZWE002) REASON(ACTION) DATE(24200) COMMENT( **************************************************************** diff --git a/smpe/bld/service/promoted-ptf.txt b/smpe/bld/service/promoted-ptf.txt index a3922dcc47..c76a55c053 100644 --- a/smpe/bld/service/promoted-ptf.txt +++ b/smpe/bld/service/promoted-ptf.txt @@ -1,3 +1,5 @@ +UO90061 +UO90062 UO90059 UO90060 UO90057 diff --git a/smpe/bld/service/ptf-bucket.txt b/smpe/bld/service/ptf-bucket.txt index 11868e20ab..b787a4ea5c 100644 --- a/smpe/bld/service/ptf-bucket.txt +++ b/smpe/bld/service/ptf-bucket.txt @@ -24,4 +24,7 @@ #UO90049 UO90050 - IO29349 IO29350 IO29351 - Fri Mar 8 19:42:44 UTC 2024 #UO90057 UO90058 - IO29424 IO29425 IO29426 - Fri May 24 14:23:02 UTC 2024 #UO90059 UO90060 - IO29428 IO29429 IO29430 - Thu Jul 18 16:30:14 UTC 2024 -UO90061 UO90062 - IO29431 IO29432 IO29433 +#UO90061 UO90062 - IO29431 IO29432 IO29433 - Tue Aug 27 14:35:44 UTC 2024 +UO90074 UO90075 - IO29454 IO29456 IO29457 +UO90076 UO90077 - IO29458 IO29459 IO29460 +UO90078 UO90079 - IO29461 IO29462 IO29463 diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 7dadd89d81..46028f9421 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -1849,7 +1849,11 @@ echo ' # VSAM configurations if you are using VSAM as Caching Service storage echo ' vsam:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # VSAM data set with Record-Level-Sharing enabled or not' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # Valid values could be: NONRLS or RLS.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +#if (${instance-zowe_setup_vsam_mode}) echo ' mode: $!{instance-zowe_setup_vsam_mode}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +#else +echo ' mode: NONRLS' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +#end echo ' # Volume name if you are using VSAM in NONRLS mode' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' volume: "$!{instance-zowe_setup_vsam_volume}"' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # Storage class name if you are using VSAM in RLS mode' >> "${instance-zowe_runtimeDirectory}/zowe.yaml"