diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 3231c9ff92..2df637d7ec 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/README.md b/README.md index 526a1f8652..6b389b95fd 100644 --- a/README.md +++ b/README.md @@ -187,3 +187,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/libs/zosmf.ts b/bin/libs/zosmf.ts index 4f315406a1..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 diff --git a/containers/base-jdk/ubi/Dockerfile b/containers/base-jdk/ubi/Dockerfile index b87b254888..14a2d3f4de 100644 --- a/containers/base-jdk/ubi/Dockerfile +++ b/containers/base-jdk/ubi/Dockerfile @@ -9,23 +9,23 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -FROM zowe-docker-release.jfrog.io/ompzowe/base:latest-ubi +FROM zowe-docker-release.jfrog.io/ompzowe/base:3-ubi ################################## # labels LABEL name="Zowe Base Image with JDK enabled" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="2.0.2" \ - release="0" \ - summary="Base image for Zowe components with JDK enabled" \ - description="Base image for Zowe components with JDK enabled" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="3.0.0" \ + release="0" \ + summary="Base image for Zowe components with JDK enabled" \ + description="Base image for Zowe components with JDK enabled" ################################## # Install JDK RUN microdnf install --nodocs \ - java-1.8.0-openjdk \ - && microdnf clean all --enablerepo='*' \ - # smoke tests - && java -version -ENV JAVA_HOME=/usr/lib/jvm/jre-1.8.0 + java-17-openjdk-headless \ + && microdnf clean all --enablerepo='*' \ + # smoke tests + && java -version +ENV JAVA_HOME=/usr/lib/jvm/jre-1.17.0 diff --git a/containers/base-jdk/ubuntu/Dockerfile b/containers/base-jdk/ubuntu/Dockerfile index 3ce76a688a..b5c3417d84 100644 --- a/containers/base-jdk/ubuntu/Dockerfile +++ b/containers/base-jdk/ubuntu/Dockerfile @@ -9,24 +9,25 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -FROM zowe-docker-release.jfrog.io/ompzowe/base:latest-ubuntu +FROM zowe-docker-release.jfrog.io/ompzowe/base:3-ubuntu ################################## # labels LABEL name="Zowe Base Image with JDK enabled" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="2.0.2" \ - release="0" \ - summary="Base image for Zowe components with JDK enabled" \ - description="Base image for Zowe components with JDK enabled" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="3.0.0" \ + release="0" \ + summary="Base image for Zowe components with JDK enabled" \ + description="Base image for Zowe components with JDK enabled" ################################## -# Install JDK + +# Install JDK. RUN apt-get update \ - && apt-get install -y \ - openjdk-8-jre \ - && rm -rf /var/lib/apt/lists/* \ - # smoke tests - && java -version -ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre + && apt-get install -y \ + openjdk-17-jre \ + && rm -rf /var/lib/apt/lists/* \ + # smoke tests + && java -version +ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/jre diff --git a/containers/base-node/Dockerfile b/containers/base-node/Dockerfile index e3cd778ccd..089a4c7af0 100644 --- a/containers/base-node/Dockerfile +++ b/containers/base-node/Dockerfile @@ -10,19 +10,19 @@ ####################################################################### # base image tag -ARG ZOWE_BASE_IMAGE=latest-ubuntu +ARG ZOWE_BASE_IMAGE=3-ubuntu FROM zowe-docker-release.jfrog.io/ompzowe/base:${ZOWE_BASE_IMAGE} ################################## # labels LABEL name="Zowe Base Image with node.js enabled" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="2.0.2" \ - release="0" \ - summary="Base image for Zowe components with node.js enabled" \ - description="Base image for Zowe components with node.js enabled" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="3.0.0" \ + release="0" \ + summary="Base image for Zowe components with node.js enabled" \ + description="Base image for Zowe components with node.js enabled" ################################## # node.js is installed in base image, so no actions here diff --git a/containers/base/ubi/Dockerfile b/containers/base/ubi/Dockerfile index 1c7faf2def..51a4753b90 100644 --- a/containers/base/ubi/Dockerfile +++ b/containers/base/ubi/Dockerfile @@ -14,12 +14,12 @@ FROM registry.redhat.io/ubi8/ubi-minimal:latest ################################## # labels LABEL name="Zowe Base Image" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="2.0.2" \ - release="0" \ - summary="Base image for Zowe components" \ - description="Base image for Zowe components" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="3.0.0" \ + release="0" \ + summary="Base image for Zowe components" \ + description="Base image for Zowe components" ################################## # arguments @@ -32,59 +32,58 @@ ARG NODE_CPU_ARCH=x64 ################################## # environments -ENV NODE_VERSION=16.18.1 +ENV NODE_VERSION=18.20.4 ################################## # customize RUN set -ex \ - # shadow-utils is needed for having adduser groupadd commands - && microdnf install --nodocs shadow-utils \ - # define zowe user/group - && groupadd --gid ${GID} zowe \ - && useradd -r -m --no-log-init --uid ${UID} --gid ${GID} --home /home/zowe zowe \ - # create /licenses folder - && mkdir -p /licenses \ - && chown zowe.zowe /licenses \ - # create /component folder - && mkdir -p /component \ - && chown zowe.zowe /component \ - # install node.js which is mandatory for now - && microdnf install --nodocs \ - findutils \ - tar \ - xz \ - && ARCH=${NODE_CPU_ARCH} \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && for key in \ - 4ED778F539E3634C779C87C6D7062848A1AB005C \ - 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ - 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ - C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ - C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ - DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ - A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ - 108F52B48DB57BB0CC439B2997B01419BD92F80A \ - B9E2F5981AA6E0CD28160D9FF13993A75599653C \ - ; do \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \ - done \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ - && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ - && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ - && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - # smoke tests - && node --version \ - && npm --version \ - # remove unused pacakges - && microdnf remove \ - findutils \ - tar \ - xz \ - # clean up - && microdnf clean all --enablerepo='*' + # shadow-utils is needed for having adduser groupadd commands + && microdnf install --nodocs shadow-utils \ + # define zowe user/group + && groupadd --gid ${GID} zowe \ + && useradd -r -m --no-log-init --uid ${UID} --gid ${GID} --home /home/zowe zowe \ + # create /licenses folder + && mkdir -p /licenses \ + && chown zowe.zowe /licenses \ + # create /component folder + && mkdir -p /component \ + && chown zowe.zowe /component \ + # install node.js which is mandatory for now + && microdnf install --nodocs \ + findutils \ + tar \ + xz \ + && ARCH=${NODE_CPU_ARCH} \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && for key in \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + 141F07595B7B3FFE74309A937405533BE57C7D57 \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ + DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \ + CC68F5A3106FF448322E48ED27F5E38D5B0A215F \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \ + C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ + 108F52B48DB57BB0CC439B2997B01419BD92F80A \ + A363A499291CBBC940DD62E41F10027AF002F8B0 \ + ; do \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ + # smoke tests + && node --version \ + && npm --version \ + # remove unused pacakges + && microdnf remove \ + findutils \ + tar \ + xz \ + # clean up + && microdnf clean all --enablerepo='*' diff --git a/containers/base/ubuntu/Dockerfile b/containers/base/ubuntu/Dockerfile index 232f9b5824..a8b0c96819 100644 --- a/containers/base/ubuntu/Dockerfile +++ b/containers/base/ubuntu/Dockerfile @@ -14,12 +14,12 @@ FROM ubuntu:latest ################################## # labels LABEL name="Zowe Base Image" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="2.0.2" \ - release="0" \ - summary="Base image for Zowe components" \ - description="Base image for Zowe components" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="3.0.0" \ + release="0" \ + summary="Base image for Zowe components" \ + description="Base image for Zowe components" ################################## # arguments @@ -32,65 +32,64 @@ ARG NODE_CPU_ARCH=x64 ################################## # environments -ENV NODE_VERSION=16.18.1 +ENV NODE_VERSION=18.20.4 ################################## # customize RUN set -ex \ - # define zowe user/group - && groupadd -g $GID -r zowe \ - && useradd -r -m --no-log-init --uid ${UID} --gid ${GID} -d /home/zowe zowe \ - # use bash as default shell - && cd /bin \ - && ln -sfn bash sh \ - # create /licenses folder - && mkdir -p /licenses \ - && chown zowe.zowe /licenses \ - # create /component folder - && mkdir -p /component \ - && chown zowe.zowe /component \ - # install node.js which is mandatory for now - && apt-get update \ - && apt-get install -y \ - curl \ - gnupg \ - xz-utils \ - # upgrade - && apt-get upgrade -y \ - && ARCH=${NODE_CPU_ARCH} \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && for key in \ - 4ED778F539E3634C779C87C6D7062848A1AB005C \ - 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ - 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ - C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ - C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ - DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ - A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ - 108F52B48DB57BB0CC439B2997B01419BD92F80A \ - B9E2F5981AA6E0CD28160D9FF13993A75599653C \ - ; do \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \ - done \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ - && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ - && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ - && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - # smoke tests - && node --version \ - && npm --version \ - # remove unused pacakges - && apt-get purge --auto-remove -y \ - bzip2 \ - curl \ - gnupg \ - tini \ - xz-utils \ - # clean up - && rm -rf /var/lib/apt/lists/* + # define zowe user/group + && groupadd -g $GID -r zowe \ + && useradd -r -m --no-log-init --uid ${UID} --gid ${GID} -d /home/zowe zowe \ + # use bash as default shell + && cd /bin \ + && ln -sfn bash sh \ + # create /licenses folder + && mkdir -p /licenses \ + && chown zowe.zowe /licenses \ + # create /component folder + && mkdir -p /component \ + && chown zowe.zowe /component \ + # install node.js which is mandatory for now + && apt-get update \ + && apt-get install -y \ + curl \ + gnupg \ + xz-utils \ + # upgrade + && apt-get upgrade -y \ + && ARCH=${NODE_CPU_ARCH} \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && for key in \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + 141F07595B7B3FFE74309A937405533BE57C7D57 \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ + DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \ + CC68F5A3106FF448322E48ED27F5E38D5B0A215F \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \ + C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ + 108F52B48DB57BB0CC439B2997B01419BD92F80A \ + A363A499291CBBC940DD62E41F10027AF002F8B0 \ + ; do \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ + # smoke tests + && node --version \ + && npm --version \ + # remove unused pacakges + && apt-get purge --auto-remove -y \ + bzip2 \ + curl \ + gnupg \ + tini \ + xz-utils \ + # clean up + && rm -rf /var/lib/apt/lists/* diff --git a/containers/zowe-launch-scripts/Dockerfile b/containers/zowe-launch-scripts/Dockerfile index 4c969ce1d7..30d28465dc 100644 --- a/containers/zowe-launch-scripts/Dockerfile +++ b/containers/zowe-launch-scripts/Dockerfile @@ -10,19 +10,19 @@ ####################################################################### # base image tag -ARG ZOWE_BASE_IMAGE=latest-ubuntu +ARG ZOWE_BASE_IMAGE=3-ubuntu FROM zowe-docker-release.jfrog.io/ompzowe/base-node:${ZOWE_BASE_IMAGE} ################################## # labels LABEL name="Zowe Launch Script Image" \ - maintainer="jack-tiefeng.jia@ibm.com" \ - vendor="Zowe" \ - version="0.0.0" \ - release="0" \ - summary="Base Launch Script for Zowe components" \ - description="Base Launch Script for Zowe components" + maintainer="mark.ackert@broadcom.com" \ + vendor="Zowe" \ + version="0.0.0" \ + release="0" \ + summary="Base Launch Script for Zowe components" \ + description="Base Launch Script for Zowe components" ################################## # switch context diff --git a/example-zowe.yaml b/example-zowe.yaml index 812f46b7b5..9122f2cb01 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -535,7 +535,7 @@ components: auth: provider: zosmf zosmf: - jwtAutoconfiguration: auto + jwtAutoconfiguration: jwt serviceId: ibmzosmf authorization: endpoint: @@ -565,17 +565,14 @@ components: storage: evictionStrategy: reject - # can be inMemory, VSAM, redis or infinispan - mode: VSAM - size: 10000 - vsam: - # your VSAM data set created by "zwe init vsam" command or ZWECSVSM JCL - # this is required if storage mode is VSAM - name: "" + # can be infinispan, inMemory, redis or VSAM(deprecated) + mode: infinispan infinispan: # this is required if storage mode is infinispan jgroups: port: 7600 + keyExchange: + port: 7601 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> app-server: diff --git a/files/defaults.yaml b/files/defaults.yaml index 8705166e9a..30f23f5efb 100644 --- a/files/defaults.yaml +++ b/files/defaults.yaml @@ -152,8 +152,8 @@ components: auth: provider: zosmf zosmf: - jwtAutoconfiguration: auto - serviceId: zosmf + jwtAutoconfiguration: jwt + serviceId: ibmzosmf authorization: endpoint: enabled: false diff --git a/playbooks/all_host_vars_list.yml b/playbooks/all_host_vars_list.yml index 93f9f01653..ab362790d5 100644 --- a/playbooks/all_host_vars_list.yml +++ b/playbooks/all_host_vars_list.yml @@ -39,10 +39,10 @@ zowe_apiml_security_oidc_client_id: zowe_apiml_security_oidc_client_secret: zowe_apiml_security_oidc_registry: zowe_apiml_security_zosmf_applid: IZUDFLT -zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: AUTO +zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: LTPA zowe_apiml_verify_certficates_of_services: true zowe_auto_create_user_group: false -zowe_caching_service_persistent: VSAM +zowe_caching_service_persistent: infinispan zowe_caching_service_port: 7555 zowe_caching_service_vsam_dsprefix: CACHE zowe_caching_vsam_storage_class: diff --git a/playbooks/roles/configfmid/defaults/main.yml b/playbooks/roles/configfmid/defaults/main.yml index 34b56b1682..ba662c7ebe 100644 --- a/playbooks/roles/configfmid/defaults/main.yml +++ b/playbooks/roles/configfmid/defaults/main.yml @@ -61,7 +61,7 @@ zowe_apiml_gateway_timeout_millis: 600000 zowe_apiml_security_x509_enabled: false zowe_apiml_security_zosmf_applid: IZUDFLT zowe_apiml_security_auth_provider: zosmf -zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: AUTO +zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: LTPA zowe_apiml_security_oidc_enabled: false zowe_apiml_security_oidc_client_id: zowe_apiml_security_oidc_client_secret: diff --git a/playbooks/roles/configure/defaults/main.yml b/playbooks/roles/configure/defaults/main.yml index 39ad5e895f..62356c113f 100644 --- a/playbooks/roles/configure/defaults/main.yml +++ b/playbooks/roles/configure/defaults/main.yml @@ -63,7 +63,7 @@ zowe_apiml_security_x509_enabled: false zowe_apiml_service_forwardClientCertEnabled: true zowe_apiml_security_zosmf_applid: IZUDFLT zowe_apiml_security_auth_provider: zosmf -zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: AUTO +zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: LTPA zowe_apiml_security_oidc_enabled: false zowe_apiml_security_oidc_client_id: zowe_apiml_security_oidc_client_secret: @@ -75,7 +75,7 @@ zowe_mvs_explorer_port: 7561 zowe_uss_explorer_port: 7562 # caching service zowe_caching_service_port: 7555 -zowe_caching_service_persistent: VSAM +zowe_caching_service_persistent: infinispan # the final data set name will be: {zowe_dataset_prefix}.{zowe_caching_service_vsam_dsprefix}{zowe_instance_id} # for example: IBMUSER.ZWE.CACHE1 zowe_caching_service_vsam_dsprefix: CACHE diff --git a/playbooks/roles/custom_for_test/defaults/main.yml b/playbooks/roles/custom_for_test/defaults/main.yml index 5209791295..884cdbbf8f 100644 --- a/playbooks/roles/custom_for_test/defaults/main.yml +++ b/playbooks/roles/custom_for_test/defaults/main.yml @@ -67,14 +67,14 @@ zowe_apiml_security_oidc_registry: zowe_apiml_security_oidc_jwks_uri: zowe_apiml_security_zosmf_applid: IZUDFLT zowe_apiml_security_auth_provider: zosmf -zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: AUTO +zowe_apiml_security_zosmf_jwt_autoconfiguration_mode: LTPA # explorer APIs/plugins ports zowe_jobs_explorer_port: 7560 zowe_mvs_explorer_port: 7561 zowe_uss_explorer_port: 7562 # caching service zowe_caching_service_port: 7555 -zowe_caching_service_persistent: VSAM +zowe_caching_service_persistent: infinispan # the final data set name will be: {zowe_dataset_prefix}.{zowe_caching_service_vsam_dsprefix}{zowe_instance_id} # for example: IBMUSER.ZWE.CACHE1 zowe_caching_service_vsam_dsprefix: CACHE diff --git a/playbooks/roles/custom_for_test/tasks/main.yml b/playbooks/roles/custom_for_test/tasks/main.yml index 4403348fad..ea85b09568 100644 --- a/playbooks/roles/custom_for_test/tasks/main.yml +++ b/playbooks/roles/custom_for_test/tasks/main.yml @@ -151,7 +151,7 @@ # ============================================================================ # Enable disabled services -- name: Update zowe.yaml zowe.setup.vsam +- name: Update zowe.yaml import_role: name: zos tasks_from: update_zowe_yaml diff --git a/pswi/05_test.sh b/pswi/05_test.sh index 523458b3c3..079ba78efc 100644 --- a/pswi/05_test.sh +++ b/pswi/05_test.sh @@ -60,91 +60,6 @@ sh scripts/submit_jcl.sh "`cat JCL`" if [ $? -gt 0 ];then exit -1;fi rm JCL - -if [ "$ZOSMF_V" = "2.4" ]; then - echo "Not covering deployment on z/OSMF 2.4 yet." -#TODO: it's same as for 2.3 without work zfs - manage this in deploy_test_2_3.py and add api call to register PSWI -# z/OSMF 2.4 - -# Delete Portable Software Instance if it already exists -# No check of return code because if it does not exist the script would fail (return code 404) -#echo 'Invoking REST API to delete the portable software instance if the previous test did not delete it.' -# -#RESP=`curl -s ${BASE_URL}/zosmf/swmgmt/pswi/${ZOSMF_SYSTEM}/${PSWI} -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS ` -# -## The response is in format "statusurl":"https:\/\/:ZOSMF_URL:post\/restofurl" -#echo 'Invoking REST API to register a Portable Software Instance' -# -#RESP=`curl -s ${BASE_URL}/zosmf/swmgmt/pswi -k -X "POST" -d "$NEW_PSWI_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS ` -#sh scripts/check_response.sh "${RESP}" $? -#if [ $? -gt 0 ];then exit -1;fi -# -#EXPORT_STATUS_URL=`echo $RESP | grep -o '"statusurl":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null` -#if [ "$EXPORT_STATUS_URL" == "" ] -#then -# echo "No response from the REST API call." -# exit -1 -#fi -# -#STATUS="" -#until [ "$STATUS" == "complete" ] -#do -#RESP=`curl -s $EXPORT_STATUS_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -#sh scripts/check_response.sh "${RESP}" $? -#if [ $? -gt 0 ];then exit -1;fi -# -#STATUS=`echo $RESP | grep -o '"status":".*"' | cut -f4 -d\"` -#echo "The status is: "$STATUS -# -#if [ "$STATUS" != "complete" ] && [ "$STATUS" != "running" ] -#then -# echo "Registration of PSWI in z/OSMF failed." -# exit -1 -#fi -#sleep 3 -#done -# -#google-chrome --version -#RC=$? -# -#if [ $RC -gt 0 ]; -#then -#echo "Checking if the system is CentOS or RHEL." -#yum version -#RC=$? -# -#if [ $RC -gt 0 ]; -#then -# echo "Installing Chrome on Debian/Ubuntu." -# wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -# sudo apt-get install ./google-chrome-stable_current_*.rpm -#else -# echo "Installing Chrome on CentOS or RHEL." -# wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm -# sudo yum install ./google-chrome-stable_current_*.rpm -#fi -#fi -# -#echo "Downloading Chromedriver" -#version=`google-chrome --product-version` -#url="https://chromedriver.storage.googleapis.com/"${version}"/chromedriver_linux64.zip" -#rm chromedriver.zip -#rm chromedriver -#wget $url -nc -O chromedriver.zip -# -## Run the deployment test -#echo " Running the deployment test for z/OSMF version 2.4" -#DIR=`pwd` -#PATH=$DIR/scripts/spool_files.sh:$PATH -#pip install selenium -#pip install requests -# -#export HEADLESS="true" -#python ../PSI_testing/deploy_test.py -# -#rm chromedriver - -else # z/OSMF 2.3 # Check if work zFS for PSWI is mounted @@ -158,4 +73,14 @@ echo " Running the deployment test for z/OSMF version 2.3" pip install requests python scripts/deploy_test_2_3.py -fi +echo "Mounting ${TEST_HLQ}.ZFS" +sh scripts/tmp_mounts.sh "${TEST_HLQ}.ZFS" "${TEST_MOUNT}" +if [ $? -gt 0 ];then exit -1;fi + +echo "Registering/testing the configuration workflow ${TEST_HLQ}.WORKFLOW(ZWECONF)" +sh scripts/wf_run_test.sh "${TEST_HLQ}.WORKFLOW(ZWECONF)" +if [ $? -gt 0 ];then exit -1;fi + +echo "Registering/testing the configuration workflow ${TEST_MOUNT}/content/files/workflows/ZWECONF.xml" +sh scripts/wf_run_test.sh "${TEST_MOUNT}/files/workflows/ZWECONF.xml" +if [ $? -gt 0 ];then exit -1;fi diff --git a/pswi/scripts/tmp_mounts.sh b/pswi/scripts/tmp_mounts.sh index c2e5f89370..23fa144cdb 100644 --- a/pswi/scripts/tmp_mounts.sh +++ b/pswi/scripts/tmp_mounts.sh @@ -44,7 +44,7 @@ fi if [ "$MOUNTED" = false ] then # Check if data set exists - echo "Checking if temporary zFS ${TMP_ZFS} exists." + echo "Checking if temporary zFS ${ZFS} exists." RESP=`curl -s "${BASE_URL}/zosmf/restfiles/ds?dslevel=${ZFS}" -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` sh scripts/check_response.sh "${RESP}" $? if [ $? -gt 0 ];then exit -1;fi @@ -61,7 +61,7 @@ then #TODO: also check the first dsname because it can be something that just has tmp_zfs as HLQ echo fi - # Mount zFS to TMP_MOUNT + # Mount zFS to MOUNT echo "Mounting zFS ${ZFS} to ${MOUNT} mount point with JCL because REST API doesn't allow AGGRGROW parm." echo ${JOBST1} > JCL diff --git a/pswi/scripts/wf_run_test.sh b/pswi/scripts/wf_run_test.sh new file mode 100755 index 0000000000..5987aeef41 --- /dev/null +++ b/pswi/scripts/wf_run_test.sh @@ -0,0 +1,88 @@ +#!/bin/sh +#version=1.0 + +export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" +WF_DEF_FILE=$1 +run=$2 + +echo "" +echo "" +echo "Script for testing workflow and if specified running with defaults as well..." +echo "Host :" $ZOSMF_URL +echo "Port :" $ZOSMF_PORT +echo "z/OSMF system :" $ZOSMF_SYSTEM +echo "Workflow definition file :" $WF_DEF_FILE + +WF_NAME="Testing workflows" +# URLs +CREATE_WF_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows" +WF_LIST_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows?owner=${ZOSMF_USER}&workflowName=${WF_NAME}" + +# JSONs + +ADD_WORKFLOW_JSON='{"workflowName":"'$WF_NAME'", +"workflowDefinitionFile":"'${WF_DEF_FILE}'", +"system":"'$ZOSMF_SYSTEM'", +"owner":"'$ZOSMF_USER'", +"assignToOwner" :true}' + +# Get workflowKey for the workflow owned by user +echo "Get workflowKey for the workflow if it exists." + +RESP=`curl -s $WF_LIST_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +WFKEY=`echo $RESP | grep -o '"workflowKey":".*"' | cut -f4 -d\"` + +if [ -n "$WFKEY" ] +then +WORKFLOW_URL="${CREATE_WF_URL}/${WFKEY}" + +echo "Deleting the workflow." +RESP=`curl -s $WORKFLOW_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +sh scripts/check_response.sh "${RESP}" $? +fi + +set -ex +# Create workflow with REST API +echo 'Invoking REST API to create the workflow.' + +RESP=`curl -s $CREATE_WF_URL -k -X "POST" -d "$ADD_WORKFLOW_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +sh scripts/check_response.sh "${RESP}" $? +if [ $? -gt 0 ];then exit -1;fi +WFKEY=`echo $RESP | grep -o '"workflowKey":".*"' | cut -f4 -d\"` +WORKFLOW_URL="${CREATE_WF_URL}/${WFKEY}" + +if [ -n "${run}" ] +then +# Run workflow +echo "Invoking REST API to start the workflow." + +RESP=`curl -s ${WORKFLOW_URL}/operations/start -k -X "PUT" -d "{}" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +sh scripts/check_response.sh "${RESP}" $? +if [ $? -gt 0 ];then exit -1;fi +STATUS="" +until [ "$STATUS" = "FINISHED" ] +do +sleep 20 + + +# Get the result of the workflow +RESP=`curl -s ${WORKFLOW_URL} -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +if [ $? -gt 0 ];then exit -1;fi +STATUS_NAME=`echo $RESP | grep -o '"statusName":".*"' | cut -f4 -d\"` + +if [ "$STATUS_NAME" = "in-progress" ] +then + echo "Workflow ended with an error." + echo $RESP + exit -1 +elif [ "$STATUS_NAME" = "complete" ] +then + echo "Workflow finished successfully." + STATUS="FINISHED" +fi +done +fi + +echo "Deleting the workflow." +RESP=`curl -s $WORKFLOW_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +sh scripts/check_response.sh "${RESP}" $? diff --git a/workflows/files/ZWECONF.properties b/workflows/files/ZWECONF.properties index 4eadca84d7..5859e80dbc 100644 --- a/workflows/files/ZWECONF.properties +++ b/workflows/files/ZWECONF.properties @@ -539,6 +539,22 @@ components_caching_service_storage_vsam_name= # Port for jgroups. This is required if storage mode is infinispan. components_caching_service_storage_infinispan_jgroups_port=7600 +# components_caching_service_storage_infinispan_jgroups_host +# Label: Caching service storage jgroups host +# Abstract: Host for jgroups +# Category: components +# Description: +# Host for jgroups +components_caching_service_storage_infinispan_jgroups_host= + +# components_caching_service_storage_infinispan_jgroups_keyExchange_port +# Label: Caching service storage jgroups key exchange port +# Abstract: Port for jgroups key exchang +# Category: components +# Description: +# Port for jgroups key exchange. This is required if storage mode is infinispan. +components_caching_service_storage_infinispan_jgroups_keyExchange_port=7601 + # components_app_server_enabled # Label: Enable app server # Abstract: Check this option to enable the app server diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 8a44349963..d6a4a93a84 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -3,9 +3,9 @@