From 8c49dd58ef595d9d413bef1cd5ff593be53ecab1 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 29 Aug 2024 07:38:25 -0400 Subject: [PATCH 001/121] Add zlux content for v3 Signed-off-by: 1000TurquoisePogs --- files/zlux/config/allowedPlugins.json | 16 +---- .../plugins/org.zowe.zlux.ivydesktop.json | 5 ++ .../plugins/org.zowe.zlux.ng2desktop.json | 2 +- files/zlux/config/zluxserver.json | 72 ------------------- manifest.json.template | 2 +- 5 files changed, 9 insertions(+), 88 deletions(-) create mode 100644 files/zlux/config/plugins/org.zowe.zlux.ivydesktop.json delete mode 100644 files/zlux/config/zluxserver.json diff --git a/files/zlux/config/allowedPlugins.json b/files/zlux/config/allowedPlugins.json index 368cac3a02..dcc69a094f 100644 --- a/files/zlux/config/allowedPlugins.json +++ b/files/zlux/config/allowedPlugins.json @@ -28,14 +28,6 @@ "identifier": "org.zowe.zlux.auth.trivial", "versions": ["*"] }, - { - "identifier": "org.zowe.zlux.auth.zosmf", - "versions": ["*"] - }, - { - "identifier": "org.zowe.zlux.auth.zss", - "versions": ["*"] - }, { "identifier": "org.zowe.zlux.auth.safsso", "versions": ["*"] @@ -53,11 +45,11 @@ "versions": ["*"] }, { - "identifier": "org.zowe.zlux.ng2desktop.settings", + "identifier": "org.zowe.zlux.ivydesktop", "versions": ["*"] }, { - "identifier": "org.zowe.zlux.proxy.zosmf", + "identifier": "org.zowe.zlux.ng2desktop.settings", "versions": ["*"] }, { @@ -72,10 +64,6 @@ "identifier": "org.zowe.zlux.sample.iframe", "versions": ["*"] }, - { - "identifier": "org.zowe.zosmf.workflows", - "versions": ["*"] - }, { "identifier": "org.openmainframe.zowe.workshop-starter", "versions": ["*"] diff --git a/files/zlux/config/plugins/org.zowe.zlux.ivydesktop.json b/files/zlux/config/plugins/org.zowe.zlux.ivydesktop.json new file mode 100644 index 0000000000..1a791b6331 --- /dev/null +++ b/files/zlux/config/plugins/org.zowe.zlux.ivydesktop.json @@ -0,0 +1,5 @@ +{ + "identifier": "org.zowe.zlux.ivydesktop", + "pluginLocation": "zlux-app-manager/virtual-desktop", + "relativeTo": "$ZLUX_ROOT_DIR" +} diff --git a/files/zlux/config/plugins/org.zowe.zlux.ng2desktop.json b/files/zlux/config/plugins/org.zowe.zlux.ng2desktop.json index 2fd18ed29b..44a33568d3 100644 --- a/files/zlux/config/plugins/org.zowe.zlux.ng2desktop.json +++ b/files/zlux/config/plugins/org.zowe.zlux.ng2desktop.json @@ -1,5 +1,5 @@ { "identifier": "org.zowe.zlux.ng2desktop", - "pluginLocation": "zlux-app-manager/virtual-desktop", + "pluginLocation": "zlux-app-manager-v2/virtual-desktop", "relativeTo": "$ZLUX_ROOT_DIR" } diff --git a/files/zlux/config/zluxserver.json b/files/zlux/config/zluxserver.json deleted file mode 100644 index 9283155557..0000000000 --- a/files/zlux/config/zluxserver.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "node": { - "https": { - "ipAddresses": ["0.0.0.0"], - "port": 7556, - //pfx (string), keys, certificates, certificateAuthorities, and certificateRevocationLists are all valid here. - "keys": ["../defaults/serverConfig/zlux.keystore.key"], - "certificates": ["../defaults/serverConfig/zlux.keystore.cer"], - "certificateAuthorities": ["../defaults/serverConfig/apiml-localca.cer"] - }, - "mediationLayer": { - "server": { - "hostname": "localhost", - "port": 7554, - "isHttps": true - }, - //environmentally set to true when apiml available - "enabled": false - }, - "headers": { - "X-frame-Options": { - "override": true, - "value": "sameorigin" - } - } - }, - "agent": { - //host is for zlux to know, not zss - "host": "localhost", - "jwt": { - "fallback": true - }, - "https": { - "ipAddresses": ["127.0.0.1"], - //to be a replacement for zssPort - "port": 7557 - }, - "mediationLayer": { - "serviceName": "zss", - //environmentally set to true when apiml available - "enabled": false - } - }, - //Zowe cross memory server name - "privilegedServerName": "ZWESIS_STD", - -// All paths relative to ZLUX/node or ZLUX/bin -// In real installations, these values will be configured during the install. - "productDir":"../defaults", - "siteDir":"../deploy/site", - "instanceDir":"../deploy/instance", - "groupsDir":"../deploy/instance/groups", - "usersDir":"../deploy/instance/users", - "pluginsDir":"../defaults/plugins", - - "dataserviceAuthentication": { - //this specifies the default authentication type for dataservices that didn't specify which type to use. These dataservices therefore should not expect a particular type of authentication to be used. - "defaultAuthentication": "saf", - //enable this to use role-based access control (RBAC) for Zowe dataservice endpoints - "rbac": false, - - //each authentication type may have more than one implementing plugin, but the specification below just describes the priority of them. Every one that is found in the pluginsDir is loaded. - "implementationDefaults": { - //each type has an object which describes which implementation to use based on some criteria to find which is best for the task. For now, just "plugins" will - //be used to state that you want a particular plugin. - "saf": { - "plugins": ["org.zowe.zlux.auth.safsso"] - } - - } - } -} diff --git a/manifest.json.template b/manifest.json.template index 6194230ca9..ccb0477694 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -12,7 +12,7 @@ }, "binaryDependencies": { "org.zowe.zlux.zlux-core": { - "version": "^3.0.0-V3.X-STAGING-ZLUX-CORE", + "version": "3.0.0-938-v3.x-staging-zlux-build", "artifact": "*.pax" }, "org.zowe.zlux.sample-angular-app": { From b6a064cd85cb717d2616cb59c58d5e9423d19efa Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Mon, 16 Sep 2024 12:05:13 +0200 Subject: [PATCH 002/121] Support for getStatvfs Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 3 +++ bin/libs/zos-fs.ts | 29 +++++++++++++++++++++++++++++ build/zwe/types/@qjstypes/zos.d.ts | 19 +++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79928168c0..ead3d274b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ All notable changes to the Zowe Installer will be documented in this file. +## `3.0.1` +- Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#39xx](https://github.com/zowe/zowe-install-packaging/pull/39xx) + ## `3.0.0` ### Breaking Changes diff --git a/bin/libs/zos-fs.ts b/bin/libs/zos-fs.ts index e0023a449f..cea8896e4e 100644 --- a/bin/libs/zos-fs.ts +++ b/bin/libs/zos-fs.ts @@ -116,3 +116,32 @@ export function ensureFileEncoding(file: string, expectedSample: string, expecte common.printTrace(`- Failed to detect encoding of ${file}.`); } } + +export type fileSystemFlagsReturn = { + rc: number, + exported?: boolean, + rdonly?: boolean, + nosuid?: boolean, + nosecurity?: boolean, +}; + +export function getFileSystemFlags(path: string): fileSystemFlagsReturn { + const ST_OEEXPORTED = 0x40000000 + const ST_RDONLY = 0x00000001 + const ST_NOSUID = 0x00000002 + const ST_NOSECURITY = 0x00000004 + let flags : fileSystemFlagsReturn = { rc: 1 }; + if (path) { + const result = zos.getStattvfs(path); + if (result[1] == 0) { + flags = { + rc: 0, + exported: !!(result[0].flag & ST_OEEXPORTED), + rdonly: !!(result[0].flag & ST_RDONLY), + nosuid: !!(result[0].flag & ST_NOSUID), + nosecurity: !!(result[0].flag & ST_NOSECURITY) + } + } + } + return flags; +} diff --git a/build/zwe/types/@qjstypes/zos.d.ts b/build/zwe/types/@qjstypes/zos.d.ts index a1fb69517a..a47ec8e407 100644 --- a/build/zwe/types/@qjstypes/zos.d.ts +++ b/build/zwe/types/@qjstypes/zos.d.ts @@ -26,10 +26,29 @@ export type ZStat = { ccsid: number; }; +export type Statvfs = { + bsize: number; + blocks: number; + bavail: number; + fsid: number; + flag: number; + frsize: number; + bfree: number; + files: number; + ffree: number; + favail: number; + namemax: number; + OEmaxfilesizehw: number; + OEmaxfilesizelw: number; + OEusedspace: number; + OEinvarsec: number; +} + export function getEsm(): string; export function getZosVersion(): number; export function changeTag(path:string, ccsid:number):number; export function changeExtAttr(path: string, extattr:number, onOff:boolean):number; export function zstat(path:string):[ZStat, number]; +export function getStatvfs(path: string): [Statvfs, number]; export var EXTATTR_SHARELIB:number; export var EXTATTR_PROGCTL:number; From 24939161bbbf46546828fe416760ca33e0c84525 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Mon, 16 Sep 2024 12:11:38 +0200 Subject: [PATCH 003/121] Typo Signed-off-by: Martin Zeithaml --- bin/libs/zos-fs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/zos-fs.ts b/bin/libs/zos-fs.ts index cea8896e4e..9e6e9bf46f 100644 --- a/bin/libs/zos-fs.ts +++ b/bin/libs/zos-fs.ts @@ -132,7 +132,7 @@ export function getFileSystemFlags(path: string): fileSystemFlagsReturn { const ST_NOSECURITY = 0x00000004 let flags : fileSystemFlagsReturn = { rc: 1 }; if (path) { - const result = zos.getStattvfs(path); + const result = zos.getStatvfs(path); if (result[1] == 0) { flags = { rc: 0, From 210a83fd52dba8fae7275172c53c3212b2b364cd Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Mon, 16 Sep 2024 12:35:03 +0200 Subject: [PATCH 004/121] Changelog update Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ead3d274b7..8568e4522f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#39xx](https://github.com/zowe/zowe-install-packaging/pull/39xx) +- Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) ## `3.0.0` From 5b9c6657aa53056b64acb0eca758b435ab896408 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Thu, 26 Sep 2024 16:27:19 +0200 Subject: [PATCH 005/121] need to change USS dir permissions so the target user can successfully run zwe command and change the permissions themselves Signed-off-by: mm667937 --- pswi/03_create.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 724ab7ad61..8c4575eb16 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -161,6 +161,13 @@ echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECONF;" >> JCL echo "sed 's|UTF-8|IBM-1047|g' _ZWECONF > ZWECONF;" >> JCL echo "cp -T ZWECONF \$target;" >> JCL echo "/*" >> JCL +echo "//CHMODZWE EXEC PGM=BPXBATCH" >> JCL +echo "//STDOUT DD SYSOUT=*" >> JCL +echo "//STDERR DD SYSOUT=*" >> JCL +echo "//STDPARM DD *" >> JCL +echo "SH set -x;set -e;" >> JCL +echo "chmod -R 777 ${ZOWE_MOUNT};" >> JCL +echo "/*" >> JCL sh scripts/submit_jcl.sh "`cat JCL`" if [ $? -gt 0 ];then exit -1;fi From c0caf0ce8e4ac31b16a606b02e0d6b9ac6e4736e Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Fri, 27 Sep 2024 21:47:18 +0200 Subject: [PATCH 006/121] Update manifest.json.template Signed-off-by: 1000TurquoisePogs --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index ba87fc868d..b4ba678504 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -12,7 +12,7 @@ }, "binaryDependencies": { "org.zowe.zlux.zlux-core": { - "version": "3.0.0-938-v3.x-staging-zlux-build", + "version": "^3.0.0-V3.X-STAGING-ZLUX-CORE", "artifact": "*.pax" }, "org.zowe.zlux.sample-angular-app": { From 66ce46d42c8758599cb9511a6ffb220a75a8739a Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Mon, 30 Sep 2024 19:51:01 +0200 Subject: [PATCH 007/121] Update defaults.yaml to example-zowe.yaml Signed-off-by: 1000TurquoisePogs --- files/defaults.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/defaults.yaml b/files/defaults.yaml index 94cd675cdf..8e319ea090 100644 --- a/files/defaults.yaml +++ b/files/defaults.yaml @@ -88,7 +88,7 @@ zowe: configmgr: # STRICT=quit on any error, including missing schema # COMPONENT-COMPAT=if component missing schema, skip it with warning instead of quit - validation: "COMPONENT-COMPAT" + validation: "STRICT" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # runtime z/OS job name From 57ed0fa9f636ae2ccd7c240f367de29ecc9a936d Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Tue, 1 Oct 2024 20:38:30 +0200 Subject: [PATCH 008/121] Update CHANGELOG.md for breaking changes Signed-off-by: 1000TurquoisePogs --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2c4502bd5..c4a3636231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,10 @@ All notable changes to the Zowe Installer will be documented in this file. ### Breaking Changes -- `zowe.yaml` changed its default z/OSMF Service ID definition from `zosmf` to `ibmzosmf`, which may impact Zowe Clients. For more information on this change, please see the API Mediation Layer's 3.0.0 Breaking Changes. +- The Zowe YAML now requires the `zaas` component for the API Mediation Layer to work. See example-zowe.yaml for new component values. +- The Zowe YAML attribute `components.gateway.apiml.security.auth.zosmf.serviceId` for the “gateway” component has changed from “zosmf” to “ibmzosmf”. This may impact Zowe Clients. See example-zowe.yaml for new component values. For more information on this change, please see the API Mediation Layer's 3.0.0 Breaking Changes. +- The Zowe YAML parameter `components.gateway.apiml.security.auth.zosmf.jwtAutoconfiguration` for the “gateway” component has changed. The value “auto” is no longer allowed, and you must choose either the default of “jwt” or “ltpa” depending on if your z/OSMF is set up for JWT use as recommended See example-zowe.yaml for new component values. For more information on this change, please see the API Mediation Layer's 3.0.0 Breaking Changes. + ### New features and enhancements - Enhancement: Added explanation to possible error message when checking z/OSMF setting. [#3956](https://github.com/zowe/zowe-install-packaging/pull/3956) From 653bbffebb5ef8f24558666a705e738ce3c2903f Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Thu, 3 Oct 2024 08:54:20 -0400 Subject: [PATCH 009/121] update docker registry for apiml images Signed-off-by: MarkAckert --- manifest.json.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 6a389fd83c..53650d59eb 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -364,7 +364,7 @@ "tag" : "3.0.36-ubuntu" }, "gateway": { - "registry": "zowe-docker-snapshot.jfrog.io", + "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", "tag" : "3.0.36-ubuntu" }, @@ -380,7 +380,7 @@ "tag" : "3.0.36-ubuntu" }, "zaas": { - "registry": "zowe-docker-snapshot.jfrog.io", + "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", "tag" : "3.0.36-ubuntu" }, From e129bf11dfcab0eaca2969720ad4c25384db406f Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 4 Oct 2024 15:15:58 -0400 Subject: [PATCH 010/121] fix sample-node-api version used in v3 pipelines Signed-off-by: MarkAckert --- .../cicd_test/prep7_more_test_prep/05_process_ext_list.sh | 7 ++++--- .github/workflows/cicd-test-readme.md | 2 +- .github/workflows/cicd-test.yml | 4 ++-- playbooks/README.md | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/scripts/cicd_test/prep7_more_test_prep/05_process_ext_list.sh b/.github/scripts/cicd_test/prep7_more_test_prep/05_process_ext_list.sh index 22027e3c93..806af8fee0 100644 --- a/.github/scripts/cicd_test/prep7_more_test_prep/05_process_ext_list.sh +++ b/.github/scripts/cicd_test/prep7_more_test_prep/05_process_ext_list.sh @@ -35,11 +35,12 @@ if [[ "$MATRIX_TEST" == *"install-ext"* ]]; then if [[ "$each_ext" == *"("* ]] && [[ "$each_ext" == *")"* ]] ; then # user provides custom artifactory pattern ext_name=$(echo "$each_ext" | cut -d "(" -f1) - ext_pattern=$(echo "$each_ext" | cut -d "(" -f2 | cut -d ")" -f1) + ext_version=$(echo "$each_ext" | cut -d "(" -f2 | cut -d ")" -f1) + ext_pattern=$(echo "$DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN" | sed "s#{ext-name}#$ext_name#g" | sed "s#{ext-version}#$ext_version#g" ) else # use default ext_name="$each_ext" - ext_pattern=$(echo "$DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN" | sed "s#{ext-name}#$ext_name#g") + ext_pattern=$(echo "$DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN" | sed "s#{ext-name}#$ext_name#g" | sed "s#{ext-version}#*#g" ) fi echo "[Check 4 INFO] extension name is $ext_name" @@ -58,4 +59,4 @@ if [[ "$MATRIX_TEST" == *"install-ext"* ]]; then EXTENSION_LIST=$(echo $EXTENSION_LIST | sed 's/;$//g') assert_env_var EXTENSION_LIST printf "${GREEN}[Check 4/$TOTAL_CHECK] Zowe extension list processing complete!${NC}\n" -fi \ No newline at end of file +fi diff --git a/.github/workflows/cicd-test-readme.md b/.github/workflows/cicd-test-readme.md index 082639da7b..4cdd371dc2 100644 --- a/.github/workflows/cicd-test-readme.md +++ b/.github/workflows/cicd-test-readme.md @@ -91,7 +91,7 @@ Background: CICD testing relies on a `zowe.pax` or `zowe-smpe.zip` (for SMPE ins - This input is pre-filled with `sample-node-api;sample-trial-app` to test [sample-node-api](https://github.com/zowe/sample-node-api) and [sample-trial-app](https://github.com/zowe/sample-trial-app) projects. In normal circumstances, you probably don't need to modify the pre-filled value here. - By default, the extension artifact search pattern is using format `libs-snapshot-local/org/zowe/{ext-name}/*/{ext-name}-*.pax` where `{ext-name}` will be processed and substituted from this input (as an example above, `sample-node-api`). Then the latest uploaded artifact will be used. -- Optionally, you can customized your extension artifact path. Customized jfrog artifactory path should exist, be valid, and enclosed in brackets and put after the extension name, eg. `sample-node-api(my/new/path/sample-node-api-cus.pax)`. A pattern contains `*` is also supported, which the latest artifact will be picked up. If multiple extensions are included, make sure to separate them by semi-colon. In addition to the artifactory path/pattern, you can also put a full http URL to any other remote location that points to an extension pax here. +- Optionally, you can customized your extension artifact version. Customized jfrog artifactory version should exist, be valid, and enclosed in brackets and put after the extension name, eg. `sample-node-api(3.0.0-SNAPSHOT)`. This example will create a search pattern like the following, where the latest artifact in the folder is picked up: `libs-snapshot-local/org/zowe/sample-node-api/3.0.0-SNAPSHOT/sample-node-api-*.pax`. A pattern containing `*` is also supported, which will result in the latest artifact in the latest folder matching the pattern. For example: `sample-node-api(1.0.0-*)` will create this search pattern: `libs-snapshot-local/org/zowe/sample-node-api/1.0.0-*/sample-node-api-*.pax`, which could match folders `1.0.0-SNAPSHOT`, `1.0.0-MAIN`, `1.0.0-user-pr-build`, etc. - The following regular expression will be used to check against your input ``` diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 2df637d7ec..7db7d17e7e 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -52,7 +52,7 @@ on: required: false # FIXME: too slow to test 2, temporarily only test 1 # default: 'sample-node-api;sample-trial-app' - default: 'sample-node-api' + default: 'sample-node-api(3.0.0-SNAPSHOT)' RANDOM_DISPATCH_EVENT_ID: description: 'random dispatch event id' required: false @@ -66,7 +66,7 @@ env: DEFAULT_ZOWE_PAX_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/*zowe*{branch-name}*.pax DEFAULT_ZOWE_SMPE_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/*zowe-smpe*{branch-name}*.zip DEFAULT_ZOWE_CLI_ARTIFACTORY_PATTERN: PLACE_HOLDER/org/zowe/cli/zowe-cli-package/*zowe-cli-package-2*.zip - DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/*/{ext-name}-*.pax + DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/{ext-version}/{ext-name}-*.pax # below block can be overwritten, adjusted by DevOps only # ZOS_NODE_VERSION more to choose from: v16.20.1, v18.16.0 diff --git a/playbooks/README.md b/playbooks/README.md index 4223f0c004..dbb118cf0b 100644 --- a/playbooks/README.md +++ b/playbooks/README.md @@ -176,7 +176,7 @@ ansible-playbook -l install-kubernetes.yml -e kubeconfig= install-ext.yml -v --extra-vars "zowe_ext_url=https://zowe.jfrog.io/artifactory/libs-snapshot-local/org/zowe/sample-node-api/1.0.0-SNAPSHOT/sample-node-api-1.0.0-snapshot-6-20210126212259.pax" +$ ansible-playbook -l install-ext.yml -v --extra-vars "zowe_ext_url=https://zowe.jfrog.io/artifactory/libs-snapshot-local/org/zowe/sample-node-api/3.0.0-SNAPSHOT/sample-node-api-3.0.0-snapshot-66-20241002205335.pax" ``` You can also install an extension that exists in your local directory by using the `zowe_ext_local` variable. This will transfer the file from your local to the remote server and install the extension: From 3132f6d0ce983a3a081f299409b4e997cc38d392 Mon Sep 17 00:00:00 2001 From: pz636264 Date: Wed, 9 Oct 2024 16:16:18 +0200 Subject: [PATCH 011/121] small fix Signed-off-by: pz636264 --- workflows/files/ZWECONF.properties | 14 +++++++------- workflows/files/ZWECONF.xml | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/workflows/files/ZWECONF.properties b/workflows/files/ZWECONF.properties index be0fd50ae0..e2729d21b1 100644 --- a/workflows/files/ZWECONF.properties +++ b/workflows/files/ZWECONF.properties @@ -4,7 +4,7 @@ # Category: zowe # Description: # Where Zowe MVS data sets will be installed -zowe_setup_dataset_prefix=IBMUSER.ZWEV2 +zowe_setup_dataset_prefix=IBMUSER.ZWEV3 # zowe_setup_dataset_proclib # Label: Zowe setup MVS procedure library @@ -20,7 +20,7 @@ zowe_setup_dataset_proclib=USER.PROCLIB # Category: zowe # Description: # Zowe parameter library -zowe_setup_dataset_parmlib=IBMUSER.ZWEV2.CUST.PARMLIB +zowe_setup_dataset_parmlib=IBMUSER.ZWEV3.CUST.PARMLIB # zowe_setup_dataset_libzis # Label: Zowe setup PARMLIB members for ZIS plugins @@ -36,7 +36,7 @@ zowe_setup_dataset_libzis=ZWESIP00 # Category: zowe # Description: # JCL library where Zowe will store temporary JCLs during initialization -zowe_setup_dataset_jcllib=IBMUSER.ZWEV2.CUST.JCLLIB +zowe_setup_dataset_jcllib=IBMUSER.ZWEV3.CUST.JCLLIB # zowe_setup_dataset_loadlibPlugin # Label: Zowe setup Utilities and extensions library @@ -44,7 +44,7 @@ zowe_setup_dataset_jcllib=IBMUSER.ZWEV2.CUST.JCLLIB # Category: zowe # Description: # Load library for Utilities for use by Zowe and extensions -zowe_setup_dataset_loadlibPlugin=IBMUSER.ZWEV2.SZWELOAD +zowe_setup_dataset_loadlibPlugin=IBMUSER.ZWEV3.SZWELOAD # zowe_setup_dataset_authLoadlib # Label: Zowe setup MVS auth load library @@ -52,7 +52,7 @@ zowe_setup_dataset_loadlibPlugin=IBMUSER.ZWEV2.SZWELOAD # Category: zowe # Description: # APF authorized LOADLIB for Zowe core -zowe_setup_dataset_authLoadlib=IBMUSER.ZWEV2.SZWEAUTH +zowe_setup_dataset_authLoadlib=IBMUSER.ZWEV3.SZWEAUTH # zowe_setup_dataset_authPluginLib # Label: Zowe setup MVS auth plugin library @@ -60,7 +60,7 @@ zowe_setup_dataset_authLoadlib=IBMUSER.ZWEV2.SZWEAUTH # Category: zowe # Description: # APF authorized LOADLIB for Zowe ZIS Plugins -zowe_setup_dataset_authPluginLib=IBMUSER.ZWEV2.CUST.ZWESAPL +zowe_setup_dataset_authPluginLib=IBMUSER.ZWEV3.CUST.ZWESAPL # zowe_setup_vsam_mode # Label: Zowe setup VSAM mode @@ -258,7 +258,7 @@ zowe_certificate_truststore_type=PKCS12 # zowe_certificate_truststore_file # Label: Zowe certificate truststore file -# Abstract: File location for cert truststore. For keyring, the format is "safkeyring://OWNER/KEYRING" +# Abstract: File location for certificate truststore. For keyring, the format is "safkeyring://OWNER/KEYRING" # Category: certificates # Description: # File location for the certificate truststore diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index d6fb790207..cbee9b53e0 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -19,7 +19,7 @@ - IBMUSER.ZWEV2 + IBMUSER.ZWEV3 @@ -41,7 +41,7 @@ - IBMUSER.ZWEV2.CUST.PARMLIB + IBMUSER.ZWEV3.CUST.PARMLIB @@ -63,7 +63,7 @@ - IBMUSER.ZWEV2.CUST.JCLLIB + IBMUSER.ZWEV3.CUST.JCLLIB @@ -74,7 +74,7 @@ - IBMUSER.ZWEV2.SZWELOAD + IBMUSER.ZWEV3.SZWELOAD @@ -85,7 +85,7 @@ - IBMUSER.ZWEV2.SZWEAUTH + IBMUSER.ZWEV3.SZWEAUTH @@ -96,7 +96,7 @@ - IBMUSER.ZWEV2.CUST.ZWESAPL + IBMUSER.ZWEV3.CUST.ZWESAPL @@ -371,7 +371,7 @@ some use cases, like containerization, this port could be different. - File location for cert truststore. For keyring, the format is "safkeyring://OWNER/KEYRING" + File location for certificate truststore. For keyring, the format is "safkeyring://OWNER/KEYRING" File location for the certificate truststore certificates From e0cfe730bf10db37cff12d6f09644e3ee797b438 Mon Sep 17 00:00:00 2001 From: James Struga Date: Fri, 11 Oct 2024 11:04:53 -0400 Subject: [PATCH 012/121] Upgrade Zowe version to 3.1 Signed-off-by: James Struga --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index b4ba678504..c5875b440b 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -1,6 +1,6 @@ { "name": "Zowe", - "version": "3.0.0", + "version": "3.1.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", From bd7986773386753e46097f7bea344edb73e60f37 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:47:24 +0200 Subject: [PATCH 013/121] Wrong error check Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> --- bin/libs/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/common.ts b/bin/libs/common.ts index 76f94ae3c0..ad3457926c 100644 --- a/bin/libs/common.ts +++ b/bin/libs/common.ts @@ -345,7 +345,7 @@ export function getZoweRuntimeManifest(): any|undefined { if (!runtimeManifest) { const manifestFileName = `${std.getenv('ZWE_zowe_runtimeDirectory')}/manifest.json`; const result = xplatform.loadFileUTF8(manifestFileName,xplatform.AUTO_DETECT); - if (result){ + if (!result) { printError('Could not read runtime manifest in '+manifestFileName); } else { runtimeManifest=JSON.parse(result); From d116cc62f9997b4f79fd638900fef0d6de595124 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 17 Oct 2024 20:26:58 +0200 Subject: [PATCH 014/121] Allow preconfigure in schema Signed-off-by: 1000TurquoisePogs --- schemas/manifest-schema.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/schemas/manifest-schema.json b/schemas/manifest-schema.json index ce3f234605..c8849c9fb3 100644 --- a/schemas/manifest-schema.json +++ b/schemas/manifest-schema.json @@ -120,6 +120,10 @@ "type": "string", "description": "This defines extra validations that the component requires other than global validations. It is for runtime purpose, and will be automatically executed each time Zowe is started." }, + "configure": { + "type": "string", + "description": "This defines extra configuration steps before zwe startup code performs its own configuration steps. It is for runtime purpose, and will be automatically executed each time Zowe is started." + }, "configure": { "type": "string", "description": "This defines extra configuration steps before starting the component. It is for runtime purpose, and will be automatically executed each time Zowe is started." From 2425fe7ea7385802c6df47cff345336426204c95 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 17 Oct 2024 20:28:32 +0200 Subject: [PATCH 015/121] Update manifest-schema.json Signed-off-by: 1000TurquoisePogs --- schemas/manifest-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/manifest-schema.json b/schemas/manifest-schema.json index c8849c9fb3..49cdc39ebb 100644 --- a/schemas/manifest-schema.json +++ b/schemas/manifest-schema.json @@ -120,7 +120,7 @@ "type": "string", "description": "This defines extra validations that the component requires other than global validations. It is for runtime purpose, and will be automatically executed each time Zowe is started." }, - "configure": { + "preConfigure": { "type": "string", "description": "This defines extra configuration steps before zwe startup code performs its own configuration steps. It is for runtime purpose, and will be automatically executed each time Zowe is started." }, From 37017979b18b2d93b54062335cd4b029836f885c Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 18 Oct 2024 10:17:13 -0400 Subject: [PATCH 016/121] update automation for new zzow systems Signed-off-by: MarkAckert --- .github/scripts/cicd_test/make_matrix.sh | 10 ++++---- .../03_process_test_server.sh | 12 +++++----- .github/workflows/build-packaging.yml | 2 +- .github/workflows/cicd-test-readme.md | 10 ++++---- .github/workflows/cicd-test.yml | 10 ++++---- .github/workflows/pswi-zowe-config-test.yml | 2 +- .../host_vars/{marist-7.yml => marist-10.yml} | 0 .../host_vars/{marist-8.yml => marist-11.yml} | 0 .../host_vars/{marist-6.yml => marist-9.yml} | 0 playbooks/hosts | 6 ++--- pswi/PSWI-marist.sh | 24 +++++++++---------- pswi/ZWECONF_test.sh | 2 +- .../extended/keyring-modes/acf2-keyring.ts | 2 +- .../extended/keyring-modes/racf-keyring.ts | 2 +- .../extended/keyring-modes/tss-keyring.ts | 2 +- .../extended/node-versions/node-v18.ts | 2 +- .../security-systems/convenience/acf2.ts | 6 ++--- .../security-systems/convenience/racf.ts | 4 ++-- .../security-systems/convenience/ts.ts | 6 ++--- .../extended/security-systems/fmid/acf2.ts | 6 ++--- .../extended/security-systems/fmid/racf.ts | 4 ++-- .../extended/security-systems/fmid/ts.ts | 6 ++--- .../extended/security-systems/ptf/acf2.ts | 6 ++--- .../extended/security-systems/ptf/racf.ts | 4 ++-- .../extended/security-systems/ptf/ts.ts | 6 ++--- 25 files changed, 67 insertions(+), 67 deletions(-) rename playbooks/host_vars/{marist-7.yml => marist-10.yml} (100%) rename playbooks/host_vars/{marist-8.yml => marist-11.yml} (100%) rename playbooks/host_vars/{marist-6.yml => marist-9.yml} (100%) diff --git a/.github/scripts/cicd_test/make_matrix.sh b/.github/scripts/cicd_test/make_matrix.sh index cee6b60426..81273471ab 100644 --- a/.github/scripts/cicd_test/make_matrix.sh +++ b/.github/scripts/cicd_test/make_matrix.sh @@ -34,7 +34,7 @@ case $install_test_choice in "z/OS node v18") test_file="$ZOS_NODE_V18_TESTFILE" - test_force_system="zzow08" + test_force_system="zzow11" ;; "z/OS node v20") @@ -87,18 +87,18 @@ if [[ ! -z "$test_force_system" ]]; then else if [[ -z "$dont_parse_test_server" ]]; then if [[ "$test_server" == "Any zzow servers" ]]; then - test_server="zzow0"$(echo $(($RANDOM % 3 + 6))) + test_server="zzow"$(printf %02d $(($RANDOM % 3 + 9))) fi TEST_FILE_SERVER="$test_file($test_server)" else any_occurrence=$(echo $test_file | grep -o "(any)" | wc -l) interim_test_file_server=$test_file for i in $(seq $any_occurrence); do - # Generates zzow06, zzow07, zzow08 - interim_test_file_server=$(echo $interim_test_file_server | sed "s#(any)#(zzow0$(echo $(($RANDOM % 3 + 6))))#") + # Generates zzow09, zzow10, zzow11 + interim_test_file_server=$(echo $interim_test_file_server | sed "s#(any)#(zzow$(printf %02d $(($RANDOM % 3 + 9))))#") done - TEST_FILE_SERVER=$(echo $interim_test_file_server | sed "s#(all)#(zzow06,zzow07,zzow08)#g") + TEST_FILE_SERVER=$(echo $interim_test_file_server | sed "s#(all)#(zzow09,zzow10,zzow11)#g") fi fi diff --git a/.github/scripts/cicd_test/prep7_more_test_prep/03_process_test_server.sh b/.github/scripts/cicd_test/prep7_more_test_prep/03_process_test_server.sh index 7e7b80ad07..508d7d093e 100644 --- a/.github/scripts/cicd_test/prep7_more_test_prep/03_process_test_server.sh +++ b/.github/scripts/cicd_test/prep7_more_test_prep/03_process_test_server.sh @@ -14,16 +14,16 @@ TEST_SERVER=$(echo "$MATRIX_SERVER" | cut -d "-" -f2) case $TEST_SERVER in -"zzow06") - TEST_SERVER_NICKNAME=marist-6 +"zzow09") + TEST_SERVER_NICKNAME=marist-9 ;; -"zzow07") - TEST_SERVER_NICKNAME=marist-7 +"zzow10") + TEST_SERVER_NICKNAME=marist-10 ;; -"zzow08") - TEST_SERVER_NICKNAME=marist-8 +"zzow11") + TEST_SERVER_NICKNAME=marist-11 ;; *) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 267ac7ea05..7bdd717745 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -344,7 +344,7 @@ jobs: with: lock-repository: ${{ github.repository }} github-token: ${{ secrets.GITHUB_TOKEN }} - lock-resource-name: zowe-psi-build-zzow07-lock + lock-resource-name: zowe-psi-build-zzow10-lock lock-avg-retry-interval: 60 - name: '[PSWI 0] PSWI pre-build check for existing smpe' diff --git a/.github/workflows/cicd-test-readme.md b/.github/workflows/cicd-test-readme.md index 4cdd371dc2..923f964805 100644 --- a/.github/workflows/cicd-test-readme.md +++ b/.github/workflows/cicd-test-readme.md @@ -4,9 +4,9 @@ This guide will describe how you should input into Github Actions workflow input Currently we support three testing z/OS servers: -- zzow06 (ACF2) -- zzow07 (Top Secret/TSS) -- zzow08 (RACF) +- zzow09 (ACF2) +- zzow10 (Top Secret/TSS) +- zzow11 (RACF) Testing pipeline is running tests in parallel. The workflow will try to acquire the resource lock if available. If the resource lock is occupied, the workflow will wait until the lock is succesfully acquired. @@ -17,7 +17,7 @@ Workflow trigger is at [cicd-test](https://github.com/zowe/zowe-install-packagin ### Choose Test Server - This input is a choice, and it's mandatory. -- You can choose from one of `zzow06`, `zzow07`, `zzow08`, `zzow06,zzow07,zzow08` (if you want to run the test on all zzow servers), or `Any zzow servers` (pick any zzow servers, potentially help reduce wait time) +- You can choose from one of `zzow09`, `zzow10`, `zzow11`, `zzow09,zzow10,zzow11` (if you want to run the test on all zzow servers), or `Any zzow servers` (pick any zzow servers, potentially help reduce wait time) - Default is `Any zzow servers` ### Choose Install Test @@ -109,7 +109,7 @@ Background: CICD testing relies on a `zowe.pax` or `zowe-smpe.zip` (for SMPE ins When running CICD integration tests during RC stage, the following string will be parsed into the Github Actions matrix. As a result, a total of 21 independent jobs will be spawned. ``` -basic/install.ts(zzow06,zzow07,zzow08);basic/install-ptf.ts(zzow06,zzow07,zzow08);basic/install-ext.ts(zzow07);extended/keyring.ts(zzow06,zzow07,zzow08);extended/node-versions/node-v18.ts(zzow06,zzow07,zzow08);extended/node-versions/node-v20.ts(zzow06,zzow07,zzow08);extended/certificates/nonstrict-verify-external-certificate.ts(zzow06) +basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v18.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09) ``` Total elapsed time when running in parallel is approximately 3.5 hours on paper idealy if all parallel jobs are executing at the same time. In reality, from numerous tests performed, total elapsed time is around 4 hours. diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 7db7d17e7e..7adab9b6c4 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -16,10 +16,10 @@ on: default: 'Any zzow servers' options: - Any zzow servers - - zzow06 - - zzow07 - - zzow08 - - zzow06,zzow07,zzow08 + - zzow09 + - zzow10 + - zzow11 + - zzow09,zzow10,zzow11 install-test: description: 'Choose Install Test' type: choice @@ -90,7 +90,7 @@ env: CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all) - ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v18.ts(zzow08):extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) + ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v18.ts(zzow11):extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) jobs: display-dispatch-event-id: diff --git a/.github/workflows/pswi-zowe-config-test.yml b/.github/workflows/pswi-zowe-config-test.yml index 0d25066436..fa29d9c5e8 100644 --- a/.github/workflows/pswi-zowe-config-test.yml +++ b/.github/workflows/pswi-zowe-config-test.yml @@ -35,7 +35,7 @@ jobs: with: lock-repository: ${{ github.repository }} github-token: ${{ secrets.GITHUB_TOKEN }} - lock-resource-name: zowe-psi-build-zzow07-lock + lock-resource-name: zowe-psi-build-zzow10-lock lock-avg-retry-interval: 30 - name: 'Test ZWECONF workflow' diff --git a/playbooks/host_vars/marist-7.yml b/playbooks/host_vars/marist-10.yml similarity index 100% rename from playbooks/host_vars/marist-7.yml rename to playbooks/host_vars/marist-10.yml diff --git a/playbooks/host_vars/marist-8.yml b/playbooks/host_vars/marist-11.yml similarity index 100% rename from playbooks/host_vars/marist-8.yml rename to playbooks/host_vars/marist-11.yml diff --git a/playbooks/host_vars/marist-6.yml b/playbooks/host_vars/marist-9.yml similarity index 100% rename from playbooks/host_vars/marist-6.yml rename to playbooks/host_vars/marist-9.yml diff --git a/playbooks/hosts b/playbooks/hosts index f53a1884e8..85fcbfebf3 100644 --- a/playbooks/hosts +++ b/playbooks/hosts @@ -1,7 +1,7 @@ [marist] -marist-6 -marist-7 -marist-8 +marist-9 +marist-10 +marist-11 [tvt] tvt4188 diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 5a9e03bfa7..ef3db93e28 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -1,5 +1,5 @@ set -x -export ZOSMF_URL="https://zzow07.zowe.marist.cloud" +export ZOSMF_URL="https://zzow10.zowe.marist.cloud" export ZOSMF_PORT=10443 export ZOSMF_SYSTEM="S0W1" export DIR="/u/zowead2" @@ -42,7 +42,7 @@ if [ -f ../.pax/zowe-smpe.zip ]; then mkdir -p "unzipped" unzip ../.pax/zowe-smpe.zip -d unzipped else - echo "zowe-smpe file not found" >> report.txt + echo "zowe-smpe file not found" >>report.txt exit -1 fi @@ -74,7 +74,7 @@ else if [ -f ../.pax/${FMID}.zip ]; then unzip ../.pax/${FMID}.zip -d unzipped else - echo "File with FMID not found" >> report.txt + echo "File with FMID not found" >>report.txt exit -1 fi fi @@ -134,13 +134,13 @@ if [ $presmpe -eq 0 ]; then # Test PSWI sh 05_test.sh test=$? - + if [ $test -eq 0 ]; then #test the workflows sh 051_test_workflows.sh wf_test=$? fi - + # Cleanup after the test sh 06_test_cleanup.sh fi @@ -165,19 +165,19 @@ echo "" echo "" if [ $smpe -ne 0 ] || [ $ptf -ne 0 ] || [ $create -ne 0 ] || [ $test -ne 0 ] || [ $presmpe -ne 0 ] || [ $wf_test -ne 0 ]; then - echo "Build unsuccessful!" >> report.txt + echo "Build unsuccessful!" >>report.txt if [ $presmpe -ne 0 ]; then - echo "Pre-SMP/E wasn't successful." >> report.txt + echo "Pre-SMP/E wasn't successful." >>report.txt elif [ $smpe -ne 0 ]; then - echo "SMP/E wasn't successful." >> report.txt + echo "SMP/E wasn't successful." >>report.txt elif [ $ptf -ne 0 ]; then - echo "Applying PTFs wasn't successful." >> report.txt + echo "Applying PTFs wasn't successful." >>report.txt elif [ $create -ne 0 ]; then - echo "Creation of PSWI wasn't successful." >> report.txt + echo "Creation of PSWI wasn't successful." >>report.txt elif [ $test -ne 0 ]; then - echo "Testing of PSWI wasn't successful." >> report.txt + echo "Testing of PSWI wasn't successful." >>report.txt elif [ $wf_test -ne 0 ]; then - echo "Workflow testing wasn't successful." >> report.txt + echo "Workflow testing wasn't successful." >>report.txt fi exit -1 else diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index 346c997e45..ce9ef6acbe 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -1,4 +1,4 @@ -export ZOSMF_URL="https://zzow07.zowe.marist.cloud" +export ZOSMF_URL="https://zzow10.zowe.marist.cloud" export ZOSMF_PORT=10443 export ZOSMF_SYSTEM="S0W1" export JOBNAME="ZWECONF1" diff --git a/tests/installation/src/__tests__/extended/keyring-modes/acf2-keyring.ts b/tests/installation/src/__tests__/extended/keyring-modes/acf2-keyring.ts index 8b740588ee..8a8efd8916 100644 --- a/tests/installation/src/__tests__/extended/keyring-modes/acf2-keyring.ts +++ b/tests/installation/src/__tests__/extended/keyring-modes/acf2-keyring.ts @@ -18,7 +18,7 @@ import { KEYSTORE_MODE_KEYRING, } from '../../../constants'; -const testServer = 'marist-6'; +const testServer = 'marist-9'; const testSuiteName = 'Test convenience build installation with keystore pointing to an ACF2 keyring'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/keyring-modes/racf-keyring.ts b/tests/installation/src/__tests__/extended/keyring-modes/racf-keyring.ts index f2399de380..7b91837222 100644 --- a/tests/installation/src/__tests__/extended/keyring-modes/racf-keyring.ts +++ b/tests/installation/src/__tests__/extended/keyring-modes/racf-keyring.ts @@ -18,7 +18,7 @@ import { KEYSTORE_MODE_KEYRING, } from '../../../constants'; -const testServer = 'marist-8'; +const testServer = 'marist-11'; const testSuiteName = 'Test convenience build installation with keystore pointing to a RACF keyring'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/keyring-modes/tss-keyring.ts b/tests/installation/src/__tests__/extended/keyring-modes/tss-keyring.ts index fbd1f1f69d..b47a617dca 100644 --- a/tests/installation/src/__tests__/extended/keyring-modes/tss-keyring.ts +++ b/tests/installation/src/__tests__/extended/keyring-modes/tss-keyring.ts @@ -18,7 +18,7 @@ import { KEYSTORE_MODE_KEYRING, } from '../../../constants'; -const testServer = 'marist-7'; +const testServer = 'marist-10'; const testSuiteName = 'Test convenience build installation with keystore pointing to a TSS keyring'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts b/tests/installation/src/__tests__/extended/node-versions/node-v18.ts index 4758b24904..d6345a1df6 100644 --- a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts +++ b/tests/installation/src/__tests__/extended/node-versions/node-v18.ts @@ -15,7 +15,7 @@ import { } from '../../../utils'; import { TEST_TIMEOUT_CONVENIENCE_BUILD } from '../../../constants'; -// Only runs on zzow08 at time of change (04.2023). See cicd-test.yml and make_matrix.sh. +// Only runs on zzow11 at time of change (04.2023). See cicd-test.yml and make_matrix.sh. const testServer = process.env.TEST_SERVER; const testSuiteName = 'Test convenience build installation with node.js v18'; describe(testSuiteName, () => { diff --git a/tests/installation/src/__tests__/extended/security-systems/convenience/acf2.ts b/tests/installation/src/__tests__/extended/security-systems/convenience/acf2.ts index 7989dd6204..14df79ca42 100644 --- a/tests/installation/src/__tests__/extended/security-systems/convenience/acf2.ts +++ b/tests/installation/src/__tests__/extended/security-systems/convenience/acf2.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_CONVENIENCE_BUILD} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-6 + * @worker marist-9 */ -// hard code to use marist-6 which we started with ACF2 -const testServer = 'marist-6'; +// hard code to use marist-9 which we started with ACF2 +const testServer = 'marist-9'; const testSuiteName = 'Test convenience build installation with ACF2'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/convenience/racf.ts b/tests/installation/src/__tests__/extended/security-systems/convenience/racf.ts index 8f5a5a4c01..58f8ca56c7 100644 --- a/tests/installation/src/__tests__/extended/security-systems/convenience/racf.ts +++ b/tests/installation/src/__tests__/extended/security-systems/convenience/racf.ts @@ -18,9 +18,9 @@ import {TEST_TIMEOUT_CONVENIENCE_BUILD} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-8 + * @worker marist-11 */ -const testServer = 'marist-8'; +const testServer = 'marist-11'; const testSuiteName = 'Test convenience build installation with RACF'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/convenience/ts.ts b/tests/installation/src/__tests__/extended/security-systems/convenience/ts.ts index 22f339ae6b..cd4e7a1fd8 100644 --- a/tests/installation/src/__tests__/extended/security-systems/convenience/ts.ts +++ b/tests/installation/src/__tests__/extended/security-systems/convenience/ts.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_CONVENIENCE_BUILD} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-7 + * @worker marist-10 */ -// hard code to use marist-7 which we started with Top Secret -const testServer = 'marist-7'; +// hard code to use marist-10 which we started with Top Secret +const testServer = 'marist-10'; const testSuiteName = 'Test convenience build installation with Top Secret'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/fmid/acf2.ts b/tests/installation/src/__tests__/extended/security-systems/fmid/acf2.ts index 9a6e32810b..2c04aa470e 100644 --- a/tests/installation/src/__tests__/extended/security-systems/fmid/acf2.ts +++ b/tests/installation/src/__tests__/extended/security-systems/fmid/acf2.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_SMPE_FMID} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-6 + * @worker marist-9 */ -// hard code to use marist-6 which we started with ACF2 -const testServer = 'marist-6'; +// hard code to use marist-9 which we started with ACF2 +const testServer = 'marist-9'; const testSuiteName = 'Test SMPE FMID installation with ACF2'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/fmid/racf.ts b/tests/installation/src/__tests__/extended/security-systems/fmid/racf.ts index a283327624..32205c4ac2 100644 --- a/tests/installation/src/__tests__/extended/security-systems/fmid/racf.ts +++ b/tests/installation/src/__tests__/extended/security-systems/fmid/racf.ts @@ -18,9 +18,9 @@ import {TEST_TIMEOUT_SMPE_FMID} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-8 + * @worker marist-11 */ -const testServer = 'marist-8'; +const testServer = 'marist-11'; const testSuiteName = 'Test SMPE FMID installation with RACF'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/fmid/ts.ts b/tests/installation/src/__tests__/extended/security-systems/fmid/ts.ts index d274358705..d15f77074c 100644 --- a/tests/installation/src/__tests__/extended/security-systems/fmid/ts.ts +++ b/tests/installation/src/__tests__/extended/security-systems/fmid/ts.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_SMPE_FMID} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-7 + * @worker marist-10 */ -// hard code to use marist-7 which we started with Top Secret -const testServer = 'marist-7'; +// hard code to use marist-10 which we started with Top Secret +const testServer = 'marist-10'; const testSuiteName = 'Test SMPE FMID installation with Top Secret'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/ptf/acf2.ts b/tests/installation/src/__tests__/extended/security-systems/ptf/acf2.ts index 3665c08d52..c5aceb2477 100644 --- a/tests/installation/src/__tests__/extended/security-systems/ptf/acf2.ts +++ b/tests/installation/src/__tests__/extended/security-systems/ptf/acf2.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_SMPE_PTF} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-6 + * @worker marist-9 */ -// hard code to use marist-6 which we started with ACF2 -const testServer = 'marist-6'; +// hard code to use marist-9 which we started with ACF2 +const testServer = 'marist-9'; const testSuiteName = 'Test SMPE PTF installation with ACF2'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/ptf/racf.ts b/tests/installation/src/__tests__/extended/security-systems/ptf/racf.ts index a796eed96c..cf9e56bd29 100644 --- a/tests/installation/src/__tests__/extended/security-systems/ptf/racf.ts +++ b/tests/installation/src/__tests__/extended/security-systems/ptf/racf.ts @@ -18,9 +18,9 @@ import {TEST_TIMEOUT_SMPE_PTF} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-8 + * @worker marist-11 */ -const testServer = 'marist-8'; +const testServer = 'marist-11'; const testSuiteName = 'Test SMPE PTF installation with RACF'; describe(testSuiteName, () => { beforeAll(() => { diff --git a/tests/installation/src/__tests__/extended/security-systems/ptf/ts.ts b/tests/installation/src/__tests__/extended/security-systems/ptf/ts.ts index 43d08633ca..65f44cf010 100644 --- a/tests/installation/src/__tests__/extended/security-systems/ptf/ts.ts +++ b/tests/installation/src/__tests__/extended/security-systems/ptf/ts.ts @@ -18,10 +18,10 @@ import {TEST_TIMEOUT_SMPE_PTF} from '../../../../constants'; /** * Define this test should run in a specific worker * - * @worker marist-7 + * @worker marist-10 */ -// hard code to use marist-7 which we started with Top Secret -const testServer = 'marist-7'; +// hard code to use marist-10 which we started with Top Secret +const testServer = 'marist-10'; const testSuiteName = 'Test SMPE PTF installation with Top Secret'; describe(testSuiteName, () => { beforeAll(() => { From f8817b6c2f74f7e87d4fc492e12c0e00968a3e6d Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Wed, 23 Oct 2024 13:28:33 +0200 Subject: [PATCH 017/121] Small schema update Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 1 + schemas/zowe-yaml-schema.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e1601c2b7..bb8747abc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) +- Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) ## `3.0.0` diff --git a/schemas/zowe-yaml-schema.json b/schemas/zowe-yaml-schema.json index deadae3492..73747e3591 100644 --- a/schemas/zowe-yaml-schema.json +++ b/schemas/zowe-yaml-schema.json @@ -465,11 +465,11 @@ "description": "Customize your Zowe z/OS JES job.", "properties": { "name": { - "type": "string", + "$ref": "/schemas/v2/server-common#zoweJobname", "description": "Job name of Zowe primary ZWESLSTC started task." }, "prefix": { - "type": "string", + "$ref": "/schemas/v2/server-common#zoweJobname", "description": "A short prefix to customize address spaces created by Zowe job." } } From ce2a47ab72570f03b9406bafdb90451309700694 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Wed, 23 Oct 2024 13:34:21 +0200 Subject: [PATCH 018/121] Changelog PR number update Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb8747abc7..c41887b177 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) -- Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) ## `3.0.0` From 6282677cab6ad01226791e960eb3360d5dcc415a Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 23 Oct 2024 16:35:51 +0200 Subject: [PATCH 019/121] more detail for failed test about zowe.yaml check Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 15 ++++- pswi/scripts/base_diff.txt | 126 +++++++++++++++++++++++-------------- 2 files changed, 93 insertions(+), 48 deletions(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index 346c997e45..29adf86401 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -55,6 +55,17 @@ pwd cp ../example-zowe.yaml example-zowe.yaml -diff --ed example-zowe.yaml zowe_.yaml > diff.txt || true +diff example-zowe.yaml zowe_.yaml > diff.txt || true -diff --ed diff.txt scripts/base_diff.txt > final_diff.txt +diff diff.txt scripts/base_diff.txt > final_diff.txt || true + +concat=`cat final_diff.txt` + +if [ -n "$concat" ] +then + echo "There are some discrepancies between the example-zowe.yaml and the zowe.yaml created by ZWECONF.xml workflow." + echo "Please add or delete the workflow so everything is there." + echo "First line is from the example and the line bellow is from the workflow." + echo $concat + exit -1 +fi diff --git a/pswi/scripts/base_diff.txt b/pswi/scripts/base_diff.txt index ad4425a61f..6dd8a5668f 100644 --- a/pswi/scripts/base_diff.txt +++ b/pswi/scripts/base_diff.txt @@ -1,46 +1,80 @@ -471c - home: "#delete_me#" -. -456c - home: "#delete_me#" -. -281c - runtimeDirectory: "/tmp" -. -106c - # directory: -. -100,103c - # certificate: - # Type of certificate storage. Valid values are: PKCS12, JCEKS, JCECCAKS, JCERACFKS, JCECCARACFKS, or JCEHYBRIDRACFKS - # type: - # pkcs12: -. -66,91c - # Security related configurations. This setup is optional. - security: - # security product name. Can be RACF, ACF2 or TSS - product: RACF - # security group name - groups: - # Zowe admin user group - admin: ZWEADMIN - # Zowe STC group - stc: ZWEADMIN - # Zowe SysProg group - sysProg: ZWEADMIN - # security user name - users: - # Zowe runtime user name of main service - zowe: ZWESVUSR - # Zowe runtime user name of ZIS - zis: ZWESIUSR - # STC names - stcs: - # STC name of Zowe main service - zowe: ZWESLSTC - # STC name of Zowe ZIS - zis: ZWESISTC - # STC name of Zowe ZIS Auxiliary Server - aux: ZWESASTC -. +66,91c66,91 +< # # Security related configurations. This setup is optional. +< # security: +< # # security product name. Can be RACF, ACF2 or TSS +< # product: RACF +< # # security group name +< # groups: +< # # Zowe admin user group +< # admin: ZWEADMIN +< # # Zowe STC group +< # stc: ZWEADMIN +< # # Zowe SysProg group +< # sysProg: ZWEADMIN +< # # security user name +< # users: +< # # Zowe runtime user name of main service +< # zowe: ZWESVUSR +< # # Zowe runtime user name of ZIS +< # zis: ZWESIUSR +< # # STC names +< # stcs: +< # # STC name of Zowe main service +< # zowe: ZWESLSTC +< # # STC name of Zowe ZIS +< # zis: ZWESISTC +< # # STC name of Zowe ZIS Auxiliary Server +< # aux: ZWESASTC +--- +> # Security related configurations. This setup is optional. +> security: +> # security product name. Can be RACF, ACF2 or TSS +> product: RACF +> # security group name +> groups: +> # Zowe admin user group +> admin: ZWEADMIN +> # Zowe STC group +> stc: ZWEADMIN +> # Zowe SysProg group +> sysProg: ZWEADMIN +> # security user name +> users: +> # Zowe runtime user name of main service +> zowe: ZWESVUSR +> # Zowe runtime user name of ZIS +> zis: ZWESIUSR +> # STC names +> stcs: +> # STC name of Zowe main service +> zowe: ZWESLSTC +> # STC name of Zowe ZIS +> zis: ZWESISTC +> # STC name of Zowe ZIS Auxiliary Server +> aux: ZWESASTC +100,103c100,103 +< certificate: +< # Type of certificate storage. Valid values are: PKCS12, JCERACFKS. APIML additionally supports: JCEKS, JCECCAKS, JCECCARACFKS, or JCEHYBRIDRACFKS +< type: PKCS12 +< pkcs12: +--- +> # certificate: +> # Type of certificate storage. Valid values are: PKCS12, JCEKS, JCECCAKS, JCERACFKS, JCECCARACFKS, or JCEHYBRIDRACFKS +> # type: +> # pkcs12: +106c106 +< directory: /var/zowe/keystore +--- +> # directory: +281c281 +< runtimeDirectory: "" +--- +> runtimeDirectory: "/tmp" +456c456 +< home: "" +--- +> home: "#delete_me#" +471c471 +< home: "" +--- +> home: "#delete_me#" From 67d3ed6eb115554c8c97c12c6dcb7a39014a5e74 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 23 Oct 2024 23:05:40 -0400 Subject: [PATCH 020/121] only run tests automatically from PRs Signed-off-by: MarkAckert --- .github/workflows/build-packaging.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 7bdd717745..9925fa0dc9 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -99,8 +99,9 @@ jobs: echo "run_build=${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.ORIGIN_ISSUE_TRIGGER == 'false') || !contains(fromJson(steps.get-labels.outputs.result), 'Build: None') }}" >> $GITHUB_OUTPUT - id: check-test name: 'export conditional used to determine if we should run a test suite' + # run_test explanation: if we set "run_build" from the prior step and this is a PR, run unless "Test: None" label is present. If not initiated from a PR, only build. run: | - echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && !contains(fromJson(steps.get-labels.outputs.result), 'Test: None')) }}" >> $GITHUB_OUTPUT + echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && ( github.event_name != 'workflow_dispatch' && !contains(fromJson(steps.get-labels.outputs.result)), 'Test: None')) }}" >> $GITHUB_OUTPUT display-dispatch-event-id: if: github.event.inputs.RANDOM_DISPATCH_EVENT_ID != '' From 9955cd253e3487da3b1b1a33b26e3b93a3f53500 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 23 Oct 2024 23:13:44 -0400 Subject: [PATCH 021/121] fix paren Signed-off-by: MarkAckert --- .github/workflows/build-packaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 9925fa0dc9..b157bee2bb 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -101,7 +101,7 @@ jobs: name: 'export conditional used to determine if we should run a test suite' # run_test explanation: if we set "run_build" from the prior step and this is a PR, run unless "Test: None" label is present. If not initiated from a PR, only build. run: | - echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && ( github.event_name != 'workflow_dispatch' && !contains(fromJson(steps.get-labels.outputs.result)), 'Test: None')) }}" >> $GITHUB_OUTPUT + echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && ( github.event_name != 'workflow_dispatch' && !contains(fromJson(steps.get-labels.outputs.result), 'Test: None')) }}" >> $GITHUB_OUTPUT display-dispatch-event-id: if: github.event.inputs.RANDOM_DISPATCH_EVENT_ID != '' From 14713e595312ddfb7eb98d08d46388948b399f0d Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 23 Oct 2024 23:18:55 -0400 Subject: [PATCH 022/121] remove imbalanced paren Signed-off-by: MarkAckert --- .github/workflows/build-packaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index b157bee2bb..4ed87e1d07 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -101,7 +101,7 @@ jobs: name: 'export conditional used to determine if we should run a test suite' # run_test explanation: if we set "run_build" from the prior step and this is a PR, run unless "Test: None" label is present. If not initiated from a PR, only build. run: | - echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && ( github.event_name != 'workflow_dispatch' && !contains(fromJson(steps.get-labels.outputs.result), 'Test: None')) }}" >> $GITHUB_OUTPUT + echo "run_test=${{ (steps.check-build.outputs.run_build == 'true' && github.event_name != 'workflow_dispatch' && !contains(fromJson(steps.get-labels.outputs.result), 'Test: None')) }}" >> $GITHUB_OUTPUT display-dispatch-event-id: if: github.event.inputs.RANDOM_DISPATCH_EVENT_ID != '' From e349cb7ad29e69951e6f3ee33c19853d08fa7aac Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 24 Oct 2024 16:38:13 +0200 Subject: [PATCH 023/121] Diagnose in JS only Signed-off-by: Martin Zeithaml --- bin/commands/diagnose/index.sh | 57 +-------------------- bin/commands/diagnose/index.ts | 91 +++++++++++++++++----------------- 2 files changed, 46 insertions(+), 102 deletions(-) diff --git a/bin/commands/diagnose/index.sh b/bin/commands/diagnose/index.sh index e45a33a2bb..bf1d922052 100644 --- a/bin/commands/diagnose/index.sh +++ b/bin/commands/diagnose/index.sh @@ -11,59 +11,4 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -USE_CONFIGMGR=$(check_configmgr_enabled) -if [ "${USE_CONFIGMGR}" = "true" ]; then - _CEE_RUNOPTS="XPLINK(ON),HEAPPOOLS(OFF),HEAPPOOLS64(OFF)" ${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr -script "${ZWE_zowe_runtimeDirectory}/bin/commands/diagnose/cli.js" -else - - error_code="${ZWE_CLI_PARAMETER_ERROR_CODE}" - - print_message "" - - 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 "" - -fi +${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr -script "${ZWE_zowe_runtimeDirectory}/bin/commands/diagnose/cli.js" diff --git a/bin/commands/diagnose/index.ts b/bin/commands/diagnose/index.ts index 8fb6518277..4535f7e2fa 100644 --- a/bin/commands/diagnose/index.ts +++ b/bin/commands/diagnose/index.ts @@ -3,65 +3,64 @@ under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html - + SPDX-License-Identifier: EPL-2.0 - + Copyright Contributors to the Zowe Project. */ + import * as std from 'cm_std'; import * as common from '../../libs/common'; -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 COMPONENTS = { + a: { + title: 'Zowe API Mediation Layer (APIML)', + urls: [ + { text: 'API Mediation Layer', link: 'https://docs.zowe.org/stable/troubleshoot/troubleshoot-apiml-error-codes' } + ] + }, + d: { + title: 'Zowe Desktop and the App Server', + urls: [ + { text: 'Application framework', link: 'https://docs.zowe.org/stable/troubleshoot/app-framework/appserver-error-codes' } + ] + }, + l: { + title: 'Zowe Launcher and zwe', + urls: [ + { text: 'Launcher', link: 'https://docs.zowe.org/stable/troubleshoot/launcher/launcher-error-codes' }, + { text: 'Launcher error codes', link: `https://github.com/zowe/launcher/blob/v${common.getZoweVersion().substring(0,1)}.x/master/src/msg.h`, git: true }, + { text: 'zwe', link: 'https://docs.zowe.org/stable/appendix/zwe_server_command_reference/zwe/' }, + ] + }, + s: { + title: 'Zowe Subsystem Services (ZSS) and Zowe Installation Services (ZIS)', + urls: [ + { text: 'ZSS', link: 'https://docs.zowe.org/stable/troubleshoot/app-framework/zss-error-codes' }, + { text: 'ZIS', link: 'https://docs.zowe.org/stable/troubleshoot/app-framework/zis-error-codes' } + ] + } } -function printLinks(description: string, link: string){ - if (link.indexOf('github') > 0) - common.printMessage(` ${description}`) - else - common.printMessage(` Zowe documentation for ${description}`) - common.printMessage(` ${link}`); +function printComponent(component: any): void { + common.printMessage(`\nThis code corresponds to the errors related to the ${component.title}.\n`); + common.printMessage(`To find the description of this error code, refer to the:\n`); + for (let url in component.urls) { + let zoweDocFor = component.urls[url].git ? '' : 'Zowe documentation for '; + common.printMessage(` ${zoweDocFor}${component.urls[url].text}`); + common.printMessage(` ${component.urls[url].link}`); + } } -export function execute() { +export function execute(): void { 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}`); + const serverCode = errorCode.charAt(3).toLowerCase(); + if ('adls'.includes(serverCode)) { + printComponent(COMPONENTS[serverCode]); + 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 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 { + } else { common.printErrorAndExit(`ZWEL0102E: Invalid parameter --error-code='${errorCode}'`, undefined, 102); } } From bc0b2d6bec9ce094a468527063f338205aecde8b Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 24 Oct 2024 16:43:36 +0200 Subject: [PATCH 024/121] Changelog and _CEE_RUNOPTS Signed-off-by: Martin Zeithaml --- bin/commands/diagnose/index.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/commands/diagnose/index.sh b/bin/commands/diagnose/index.sh index bf1d922052..db76d7c37a 100644 --- a/bin/commands/diagnose/index.sh +++ b/bin/commands/diagnose/index.sh @@ -11,4 +11,4 @@ # Copyright Contributors to the Zowe Project. ####################################################################### -${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr -script "${ZWE_zowe_runtimeDirectory}/bin/commands/diagnose/cli.js" +_CEE_RUNOPTS="XPLINK(ON)" ${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr -script "${ZWE_zowe_runtimeDirectory}/bin/commands/diagnose/cli.js" From b5601ed6a21c629cfaa5444754f30fda9c6e9a81 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 24 Oct 2024 16:46:21 +0200 Subject: [PATCH 025/121] Changelog Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e1601c2b7..545b5cbc56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) +- Enhancement: command `zwe diagnose` in javascript only [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) ## `3.0.0` From 37f022d7498784269e148b81404375239e88df75 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Thu, 24 Oct 2024 16:46:44 +0200 Subject: [PATCH 026/121] I need to not delet the pswi so we can check where the issue happened - like if the PSWI wouuld be fine then there is a problem with testing Signed-off-by: mm667937 --- pswi/PSWI-marist.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 5a9e03bfa7..c86e4e7365 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -140,15 +140,15 @@ if [ $presmpe -eq 0 ]; then sh 051_test_workflows.sh wf_test=$? fi - + # # Cleanup after the test - sh 06_test_cleanup.sh + #sh 06_test_cleanup.sh fi - else + #else # Cleanup of SMP/E if PTF weren't successful - because the earlier cleanup runs only it it was success - sh 07_smpe_cleanup.sh + # sh 07_smpe_cleanup.sh # Clean RELFILEs and PTFs - sh 08_presmpe_cleanup.sh + # sh 08_presmpe_cleanup.sh fi else # Cleanup of SMP/E if SMPE weren't successful - because the earlier cleanup runs only it it was success From bdaa3b821534311d5fbed70169b40ff69f3a8e8c Mon Sep 17 00:00:00 2001 From: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:47:05 +0200 Subject: [PATCH 027/121] Update CHANGELOG.md Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 545b5cbc56..582bb5cdbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) -- Enhancement: command `zwe diagnose` in javascript only [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Enhancement: command `zwe diagnose` in javascript only [#4061](https://github.com/zowe/zowe-install-packaging/pull/4061) ## `3.0.0` From d0545d8795671e21bf63c527075f3ef74e425c11 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Fri, 25 Oct 2024 13:42:26 +0200 Subject: [PATCH 028/121] there was some deletion Signed-off-by: mm667937 --- pswi/PSWI-marist.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index c86e4e7365..69246ffcaf 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -122,7 +122,7 @@ if [ $presmpe -eq 0 ]; then # Create PSWI sh 03_create.sh create=$? - +exit -1 # Cleanup after the creation of PSWI sh 04_create_cleanup.sh # Cleanup of SMP/E @@ -144,11 +144,11 @@ if [ $presmpe -eq 0 ]; then # Cleanup after the test #sh 06_test_cleanup.sh fi - #else + else # Cleanup of SMP/E if PTF weren't successful - because the earlier cleanup runs only it it was success - # sh 07_smpe_cleanup.sh + sh 07_smpe_cleanup.sh # Clean RELFILEs and PTFs - # sh 08_presmpe_cleanup.sh + sh 08_presmpe_cleanup.sh fi else # Cleanup of SMP/E if SMPE weren't successful - because the earlier cleanup runs only it it was success From f40ea2b169e4a5c3403ce8190fdea67493eb5584 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Fri, 25 Oct 2024 14:29:28 +0200 Subject: [PATCH 029/121] I can download the pswi to my folder which I am uploading as part of the github workflow so everything can be cleaned Signed-off-by: mm667937 --- pswi/03_create.sh | 6 ++++-- pswi/PSWI-marist.sh | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 6feb2d56a7..d0c6e5ec5c 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -331,12 +331,14 @@ sh scripts/submit_jcl.sh "`cat JCL`" if [ $? -gt 0 ];then exit -1;fi rm JCL -cd ../.pax +#cd ../.pax +set -x +pwd sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} << EOF cd ${TMP_MOUNT} get ${SWI_NAME}.pax.Z EOF -cd ../pswi +#cd ../pswi #TODO: redirect everything to $log/x ? #TODO: Check why there is name in mountpoints responses and it still doesn't show (although the mount points are different so it's good it is not doing anything) diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 69246ffcaf..ab528ab8d1 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -91,6 +91,13 @@ export WORKFLOW_DSN=${CSIHLQ}.WORKFLOW export ZOWE_ZFS="${CSIHLQ}.ZFS" export VERSION=$(cat ../manifest.json.template | grep -o '"version": ".*"' | head -1 | cut -f4 -d\") +# Cleanup after the creation of PSWI +sh 04_create_cleanup.sh +# Cleanup of SMP/E +sh 07_smpe_cleanup.sh +# Clean RELFILEs and PTFs +sh 08_presmpe_cleanup.sh + # Initialize variables presmpe=0 smpe=0 @@ -122,7 +129,7 @@ if [ $presmpe -eq 0 ]; then # Create PSWI sh 03_create.sh create=$? -exit -1 + # Cleanup after the creation of PSWI sh 04_create_cleanup.sh # Cleanup of SMP/E From 41ede539aae73be49d060dd1384d60195199d3bc Mon Sep 17 00:00:00 2001 From: mm667937 Date: Fri, 25 Oct 2024 17:11:54 +0200 Subject: [PATCH 030/121] 2.3 won't be probable needed. Don't know if there still isn't anything left from that time when we had only 2.3 Signed-off-by: mm667937 --- pswi/03_create.sh | 49 ++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index d0c6e5ec5c..d270d9bf3f 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -282,30 +282,31 @@ fi echo "Downloading export JCL" curl -s ${BASE_URL}/zosmf/restfiles/ds/${DSN} -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS > EXPORT -if [ "$ZOSMF_V" = "2.3" ] -then -echo "Changing jobcard and adding SYSAFF" -sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT > EXPJCL0 - -echo "Changing working directory from /tmp/ to ${WORK_MOUNT} directory where is zFS mounted" -sed "s|//SMPWKDIR DD PATH='/tmp/.*'|//SMPWKDIR DD PATH='$WORK_MOUNT'|g" EXPJCL0 > EXPJCL1 - -echo "Switching WORKFLOW and CSI datasets because of internal GIMZIP setting" # It is not working when CSI is in the beginning (1st or 2nd) -sed "s|\.CSI|\.1WORKFLOW|g" EXPJCL1 > EXPJCL2 -sed "s|\.WORKFLOW|\.CSI|g" EXPJCL2 > EXPJCL3 -sed "s|\.1WORKFLOW|\.WORKFLOW|g" EXPJCL3 > EXPJCL4 -sed "s|DSNTYPE=LARGE|DSNTYPE=LARGE,VOL=SER=$VOLUME|g" EXPJCL4 > EXPJCL - -rm ./EXPJCL0 -rm ./EXPJCL1 -rm ./EXPJCL2 -rm ./EXPJCL3 -rm ./EXPJCL4 - -else +echo "Showing EXPORT JCL how it looks before the change" +#if [ "$ZOSMF_V" = "2.3" ] +#then +#echo "Changing jobcard and adding SYSAFF" +#sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT > EXPJCL0 +# +#echo "Changing working directory from /tmp/ to ${WORK_MOUNT} directory where is zFS mounted" +#sed "s|//SMPWKDIR DD PATH='/tmp/.*'|//SMPWKDIR DD PATH='$WORK_MOUNT'|g" EXPJCL0 > EXPJCL1 +# +#echo "Switching WORKFLOW and CSI datasets because of internal GIMZIP setting" # It is not working when CSI is in the beginning (1st or 2nd) +#sed "s|\.CSI|\.1WORKFLOW|g" EXPJCL1 > EXPJCL2 +#sed "s|\.WORKFLOW|\.CSI|g" EXPJCL2 > EXPJCL3 +#sed "s|\.1WORKFLOW|\.WORKFLOW|g" EXPJCL3 > EXPJCL4 +#sed "s|DSNTYPE=LARGE|DSNTYPE=LARGE,VOL=SER=$VOLUME|g" EXPJCL4 > EXPJCL +# +#rm ./EXPJCL0 +#rm ./EXPJCL1 +#rm ./EXPJCL2 +#rm ./EXPJCL3 +#rm ./EXPJCL4 +# +#else echo "Changing jobcard and adding SYSAFF" sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT > EXPJCL -fi +#fi sh scripts/submit_jcl.sh "`cat EXPJCL`" if [ $? -gt 0 ];then exit -1;fi @@ -331,14 +332,14 @@ sh scripts/submit_jcl.sh "`cat JCL`" if [ $? -gt 0 ];then exit -1;fi rm JCL -#cd ../.pax +cd ../.pax set -x pwd sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} << EOF cd ${TMP_MOUNT} get ${SWI_NAME}.pax.Z EOF -#cd ../pswi +cd ../pswi #TODO: redirect everything to $log/x ? #TODO: Check why there is name in mountpoints responses and it still doesn't show (although the mount points are different so it's good it is not doing anything) From 6c93f78c7360473c8a02d81d45ca4812dd1b46eb Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 31 Oct 2024 10:44:17 +0100 Subject: [PATCH 031/121] Check log directory Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 1 + bin/libs/logging.sh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e1601c2b7..352a7f174e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` +- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) ## `3.0.0` diff --git a/bin/libs/logging.sh b/bin/libs/logging.sh index 6e41778aca..787c4fe7a4 100755 --- a/bin/libs/logging.sh +++ b/bin/libs/logging.sh @@ -14,6 +14,9 @@ export ZWE_PRIVATE_LOG_FILE= prepare_log_file() { + if [ -f "${1}" ]; then + print_error_and_exit "Error ZWEL0102E: Invalid parameter --log-dir=${1} (not a directory)" "" 102 + fi # use absolute path to make sure we can always write to correct location even # if other scripts changed current working directory log_dir=$(convert_to_absolute_path "${1}" | remove_trailing_slash) From 2b322e13bb5d20f519e17ca24a991c136ae44ce7 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Thu, 31 Oct 2024 12:31:07 -0400 Subject: [PATCH 032/121] update pswi logs, fix pswi creation Signed-off-by: MarkAckert --- .github/workflows/build-packaging.yml | 2 +- .github/workflows/pswi-zowe-config-test.yml | 1 + pswi/.gitignore | 4 + pswi/03_create.sh | 301 ++++++++++---------- pswi/04_create_cleanup.sh | 134 +++++---- pswi/06_test_cleanup.sh | 222 +++++++-------- pswi/07_smpe_cleanup.sh | 66 ++--- pswi/08_presmpe_cleanup.sh | 62 ++-- pswi/PSWI-marist.sh | 39 +-- pswi/scripts/spool_files.sh | 23 +- pswi/scripts/submit_jcl.sh | 43 +-- 11 files changed, 427 insertions(+), 470 deletions(-) create mode 100644 pswi/.gitignore diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 4ed87e1d07..73e526a4f3 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -374,7 +374,7 @@ jobs: with: name: pswi-folder path: | - pswi/** + pswi/logs/** - name: '[K8S] Build Kubernetes' timeout-minutes: 10 diff --git a/.github/workflows/pswi-zowe-config-test.yml b/.github/workflows/pswi-zowe-config-test.yml index fa29d9c5e8..5fcf430e54 100644 --- a/.github/workflows/pswi-zowe-config-test.yml +++ b/.github/workflows/pswi-zowe-config-test.yml @@ -58,3 +58,4 @@ jobs: pswi/**.txt pswi/zowe_.yaml pswi/ZWECONF1/** + pswi/logs/** diff --git a/pswi/.gitignore b/pswi/.gitignore new file mode 100644 index 0000000000..a5e2c10550 --- /dev/null +++ b/pswi/.gitignore @@ -0,0 +1,4 @@ +logs/ +EXP* +report.txt +unzipped/ diff --git a/pswi/03_create.sh b/pswi/03_create.sh index d270d9bf3f..23d19d57bd 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -16,7 +16,7 @@ echo "SWI name :" $SWI_NAME echo "Existing DSN :" $EXPORT_DSN echo "Temporary zFS :" $TMP_ZFS echo "Temporary directory:" $TMP_MOUNT -echo "Work zFS :" $WORK_ZFS # For z/OSMF v2.3 +echo "Work zFS :" $WORK_ZFS # For z/OSMF v2.3 echo "Work mount point :" $WORK_MOUNT # For z/OSMF v2.3 echo "ZOWE zFS :" $ZOWE_ZFS echo "ZOWE mount point :" $ZOWE_MOUNT @@ -25,7 +25,7 @@ echo "ACCOUNT :" $ACCOUNT echo "SYSAFF :" $SYSAFF echo "z/OSMF version :" $ZOSMF_V -# JSONs +# JSONs ADD_SWI_JSON='{"name":"'${SWI_NAME}'","system":"'${ZOSMF_SYSTEM}'","description":"ZOWE v'${VERSION}' Portable Software Instance", "globalzone":"'${GLOBAL_ZONE}'","targetzones":["'${TZONE}'"],"workflows":[{"name":"ZOWE Mount Workflow","description":"This workflow performs mount action of ZOWE zFS.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWEWRF02)"}},{"name":"ZOWE Configuration of Zowe 3.0","description":"This workflow configures Zowe v3.0.", @@ -39,7 +39,7 @@ ADD_EXPORT_DSN_JSON='{"dsorg":"PO","alcunit":"TRK","primary":10,"secondary":5,"d EXPORT_JCL_JSON='{"packagedir":"'${EXPORT}'","jcldataset":"'${EXPORT_DSN}'","workvolume":"'${VOLUME}'"}' MOUNT_ZOWE_ZFS_JSON='{"action":"mount","mount-point":"'${ZOWE_MOUNT}'","fs-type":"zFS","mode":"rdwr"}' -# URLs +# URLs ADD_SWI_URL="${BASE_URL}/zosmf/swmgmt/swi" LOAD_PRODUCTS_URL="${BASE_URL}/zosmf/swmgmt/swi/${ZOSMF_SYSTEM}/${SWI_NAME}/products" WORKFLOW_DSN_URL="${BASE_URL}/zosmf/restfiles/ds/${WORKFLOW_DSN}" @@ -55,132 +55,121 @@ CHECK_EXPORT_DSN_URL="${BASE_URL}/zosmf/restfiles/ds?dslevel=${EXPORT_DSN}" # Check if temp zFS for PSWI is mounted echo "Checking/mounting ${TMP_ZFS}" sh scripts/tmp_mounts.sh "${TMP_ZFS}" "${TMP_MOUNT}" -if [ $? -gt 0 ];then exit -1;fi - -if [ "$ZOSMF_V" = "2.3" ] -then -# z/OSMF 2.3 +if [ $? -gt 0 ]; then exit -1; fi # Check if work zFS for PSWI is mounted echo "Checking/mounting ${WORK_ZFS}" sh scripts/tmp_mounts.sh "${WORK_ZFS}" "${WORK_MOUNT}" -if [ $? -gt 0 ];then exit -1;fi -fi - +if [ $? -gt 0 ]; then exit -1; fi + # Check if ZOWE zFS is mounted echo "Checking if file system ${ZOWE_ZFS} is mounted." -RESP=`curl -s $GET_ZOWE_ZFS_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -MOUNTZ=`echo $RESP | grep -o '"mountpoint":".*"' | cut -f4 -d\"` +RESP=$(curl -s $GET_ZOWE_ZFS_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) +MOUNTZ=$(echo $RESP | grep -o '"mountpoint":".*"' | cut -f4 -d\") -if [ -n "$MOUNTZ" ] -then +if [ -n "$MOUNTZ" ]; then # Check if ZOWE zFS is mounted to given ZOWE mountpoint - if [ "$MOUNTZ/" = "$ZOWE_MOUNT" ] - then + if [ "$MOUNTZ/" = "$ZOWE_MOUNT" ]; then echo "${ZOWE_MOUNT} with zFS ${ZOWE_ZFS} mounted will be used." else - echo "The file system ${ZOWE_ZFS} exists but is mounted to different mount point ${MOUNTZ}." >> report.txt - echo "It is required to have the file system ${ZOWE_ZFS} mounted to the exact mount point (${ZOWE_MOUNT}) to successfully export Zowe PSWI." >> report.txt + echo "The file system ${ZOWE_ZFS} exists but is mounted to different mount point ${MOUNTZ}." >>report.txt + echo "It is required to have the file system ${ZOWE_ZFS} mounted to the exact mount point (${ZOWE_MOUNT}) to successfully export Zowe PSWI." >>report.txt exit -1 fi else echo "${ZOWE_ZFS} is not mounted anywhere. Checking if ${ZOWE_MOUNT} has any zFS mounted." - RESP=`curl -s $GET_ZOWE_PATH_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` - MOUNTZFS=`echo $RESP | grep -o "name":".*" | cut -f4 -d\"` - if [ -n "$MOUNTZFS" ] - then + RESP=$(curl -s $GET_ZOWE_PATH_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + MOUNTZFS=$(echo $RESP | grep -o "name":".*" | cut -f4 -d\") + if [ -n "$MOUNTZFS" ]; then # If ZFS is not mounted to the mountpoint then this ZOWE mountpoint has different zFS - echo "The mountpoint ${ZOWE_MOUNT} has different zFS ${MOUNTZFS}." >> report.txt + echo "The mountpoint ${ZOWE_MOUNT} has different zFS ${MOUNTZFS}." >>report.txt exit -1 else - # Mount zFS to Zowe mountpoint - echo "Mounting zFS ${ZOWE_ZFS} to ${ZOWE_MOUNT} mount point." - RESP=`curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$MOUNT_ZOWE_ZFS_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 + # Mount zFS to Zowe mountpoint + echo "Mounting zFS ${ZOWE_ZFS} to ${ZOWE_MOUNT} mount point." + RESP=$(curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$MOUNT_ZOWE_ZFS_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 fi fi # Add workflow to ZOWE data sets echo "Checking if WORKFLOW data set already exists." -RESP=`curl -s $CHECK_WORKFLOW_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -DS_COUNT=`echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:` -if [ $DS_COUNT -ne 0 ] -then - echo "The ${WORKFLOW_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >> report.txt - exit -1 +RESP=$(curl -s $CHECK_WORKFLOW_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) +DS_COUNT=$(echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:) +if [ $DS_COUNT -ne 0 ]; then + echo "The ${WORKFLOW_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>report.txt + exit -1 else echo "Creating a data set where the post-Deployment workflow will be stored." - RESP=`curl -s $WORKFLOW_DSN_URL -k -X "POST" -d "$ADD_WORKFLOW_DSN_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` - if [ -n "$RESP" ] - then - echo "The creation of the ${WORKFLOW_DSN} was not successful. Error message: ${RESP}" >> report.txt + RESP=$(curl -s $WORKFLOW_DSN_URL -k -X "POST" -d "$ADD_WORKFLOW_DSN_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + if [ -n "$RESP" ]; then + echo "The creation of the ${WORKFLOW_DSN} was not successful. Error message: ${RESP}" >>report.txt exit -1 - fi + fi fi echo "Copying workflows to ${WORKFLOW_DSN} data set." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//COPYWRFS EXEC PGM=BPXBATCH" >> JCL -echo "//STDOUT DD SYSOUT=*" >> JCL -echo "//STDERR DD SYSOUT=*" >> JCL -echo "//STDPARM DD *" >> JCL -echo "SH set -x;set -e;" >> JCL -echo "cd ${WORK_MOUNT};" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWEWRF02.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWEWRF02)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWEWRF02;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWEWRF02 > ZWEWRF02;" >> JCL -echo "cp -T ZWEWRF02 \$target;" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWECRECR.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWECRECR)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECRECR;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWECRECR > ZWECRECR;" >> JCL -echo "cp -T ZWECRECR \$target;" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWEKRING.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWEKRING)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWEKRING;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWEKRING > ZWEKRING;" >> JCL -echo "cp -T ZWEKRING \$target;" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWELOADC.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWELOADC)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWELOADC;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWELOADC > ZWELOADC;" >> JCL -echo "cp -T ZWELOADC \$target;" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWESIGNC.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWESIGNC)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWESIGNC;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWESIGNC > ZWESIGNC;" >> JCL -echo "cp -T ZWESIGNC \$target;" >> JCL -echo "source=\"${ZOWE_MOUNT}files/workflows/ZWECONF.xml\";" >> JCL -echo "target=\"//'${WORKFLOW_DSN}(ZWECONF)'\";" >> JCL -echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECONF;" >> JCL -echo "sed 's|UTF-8|IBM-1047|g' _ZWECONF > ZWECONF;" >> JCL -echo "cp -T ZWECONF \$target;" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" -if [ $? -gt 0 ];then exit -1;fi +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//COPYWRFS EXEC PGM=BPXBATCH" >>JCL +echo "//STDOUT DD SYSOUT=*" >>JCL +echo "//STDERR DD SYSOUT=*" >>JCL +echo "//STDPARM DD *" >>JCL +echo "SH set -x;set -e;" >>JCL +echo "cd ${WORK_MOUNT};" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWEWRF02.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWEWRF02)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWEWRF02;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWEWRF02 > ZWEWRF02;" >>JCL +echo "cp -T ZWEWRF02 \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWECRECR.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWECRECR)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECRECR;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWECRECR > ZWECRECR;" >>JCL +echo "cp -T ZWECRECR \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWEKRING.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWEKRING)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWEKRING;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWEKRING > ZWEKRING;" >>JCL +echo "cp -T ZWEKRING \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWELOADC.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWELOADC)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWELOADC;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWELOADC > ZWELOADC;" >>JCL +echo "cp -T ZWELOADC \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWESIGNC.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWESIGNC)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWESIGNC;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWESIGNC > ZWESIGNC;" >>JCL +echo "cp -T ZWESIGNC \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWECONF.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWECONF)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECONF;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWECONF > ZWECONF;" >>JCL +echo "cp -T ZWECONF \$target;" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +if [ $? -gt 0 ]; then exit -1; fi rm JCL # Add data set for export jobs echo "Checking if the data set for export jobs already exists." -RESP=`curl -s $CHECK_EXPORT_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -DSN_COUNT=`echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:` -if [ $DSN_COUNT -ne 0 ] -then - echo "The ${EXPORT_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >> report.txt +RESP=$(curl -s $CHECK_EXPORT_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) +DSN_COUNT=$(echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:) +if [ $DSN_COUNT -ne 0 ]; then + echo "The ${EXPORT_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>report.txt exit -1 else echo "Creating a data set where the export jobs will be stored." - RESP=`curl -s $EXPORT_DSN_URL -k -X "POST" -d "$ADD_EXPORT_DSN_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` - if [ -n "$RESP" ] - then echo "The creation of the ${EXPORT_DSN} was not successful. Error message: ${RESP}" - fi + RESP=$(curl -s $EXPORT_DSN_URL -k -X "POST" -d "$ADD_EXPORT_DSN_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + if [ -n "$RESP" ]; then + echo "The creation of the ${EXPORT_DSN} was not successful. Error message: ${RESP}" + fi fi # Delete Software instance if it already exists @@ -192,24 +181,22 @@ curl -s $DELETE_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X # Add Software Instance echo 'Invoking REST API to add a Software Instance.' -RESP=`curl -s $ADD_SWI_URL -k -X "POST" -d "$ADD_SWI_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $ADD_SWI_URL -k -X "POST" -d "$ADD_SWI_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 +if [ $? -gt 0 ]; then exit -1; fi # Load the products, features, and FMIDs for a software instance # The response is in format "statusurl":"https:\/\/:ZOSMF_URL:post\/restofurl" # On statusurl can be checked actual status of loading the products, features, and FMIDs echo 'Invoking REST API to load SMP/E managed products from the SMP/E CSI.' - -RESP=`curl -s $LOAD_PRODUCTS_URL -k -X "PUT" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $LOAD_PRODUCTS_URL -k -X "PUT" -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 +if [ $? -gt 0 ]; then exit -1; fi -LOAD_STATUS_URL=`echo $RESP | grep -o '"statusurl":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null` -if [ -z "$LOAD_STATUS_URL" ] -then - echo "No response from the load product REST API call." >> report.txt +LOAD_STATUS_URL=$(echo $RESP | grep -o '"statusurl":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null) +if [ -z "$LOAD_STATUS_URL" ]; then + echo "No response from the load product REST API call." >>report.txt exit -1 fi @@ -217,29 +204,26 @@ fi echo 'Invoking REST API to check if load products has finished.' STATUS="" -until [ "$STATUS" = "complete" ] -do -RESP=`curl -s $LOAD_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\"` -sleep 3 +until [ "$STATUS" = "complete" ]; do + RESP=$(curl -s $LOAD_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\") + sleep 3 done echo "Load Products finished successfully." - # Create JCL that will export Portable Software Instance # The response is in format "statusurl":"https:\/\/:ZOSMF_URL:post\/restofurl" echo 'Invoking REST API to export the software instance.' -RESP=`curl -s $EXPORT_JCL_URL -k -X "POST" -d "$EXPORT_JCL_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS ` +RESP=$(curl -s $EXPORT_JCL_URL -k -X "POST" -d "$EXPORT_JCL_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 [ -z "$EXPORT_STATUS_URL" ] -then - echo "No response from the export REST API call." >> report.txt +if [ $? -gt 0 ]; then exit -1; fi +EXPORT_STATUS_URL=$(echo $RESP | grep -o '"statusurl":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null) +if [ -z "$EXPORT_STATUS_URL" ]; then + echo "No response from the export REST API call." >>report.txt exit -1 fi @@ -247,40 +231,36 @@ fi echo 'Invoking REST API to check if export has finished.' STATUS="" -until [ "$STATUS" = "complete" ] -do -# Status is not shown until the recentage is not 100 -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 -PERCENTAGE=`echo ${RESP} | grep -o '"percentcomplete":".*"' | cut -f4 -d\"` +until [ "$STATUS" = "complete" ]; do + # Status is not shown until the recentage is not 100 + 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 + PERCENTAGE=$(echo ${RESP} | grep -o '"percentcomplete":".*"' | cut -f4 -d\") -echo ${PERCENTAGE} "% of the Export JCL created." + echo ${PERCENTAGE} "% of the Export JCL created." -if [ "$PERCENTAGE" = "100" ] -then - STATUS=`echo $RESP | grep -o '"status":".*"' | cut -f4 -d\"` - DSN=`echo $RESP | grep -o '"jcl":.*\]' | cut -f4 -d\"` + if [ "$PERCENTAGE" = "100" ]; then + STATUS=$(echo $RESP | grep -o '"status":".*"' | cut -f4 -d\") + DSN=$(echo $RESP | grep -o '"jcl":.*\]' | cut -f4 -d\") - echo "The status is: "$STATUS - # Can be 100% but still running - if [ "$STATUS" != "complete" ] && [ "$STATUS" != "running" ] - then - echo "Status of generation of Export JCL failed." >> report.txt - exit -1 + echo "The status is: "$STATUS + # Can be 100% but still running + if [ "$STATUS" != "complete" ] && [ "$STATUS" != "running" ]; then + echo "Status of generation of Export JCL failed." >>report.txt + exit -1 + fi fi -fi -sleep 3 + sleep 3 done -if [ -z "$DSN" ] -then - echo "The creation of export JCL failed" >> report.txt +if [ -z "$DSN" ]; then + echo "The creation of export JCL failed" >>report.txt exit -1 fi echo "Downloading export JCL" -curl -s ${BASE_URL}/zosmf/restfiles/ds/${DSN} -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS > EXPORT +curl -s ${BASE_URL}/zosmf/restfiles/ds/${DSN} -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS >EXPORT echo "Showing EXPORT JCL how it looks before the change" #if [ "$ZOSMF_V" = "2.3" ] @@ -305,41 +285,46 @@ echo "Showing EXPORT JCL how it looks before the change" # #else echo "Changing jobcard and adding SYSAFF" -sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT > EXPJCL +sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT >EXPJCL0 +sed "s|//.*gimzipInputFile.*,|EXPJCL1 +sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 +sed "s|// DD \*||g" EXPJCL2 >EXPJCL +# sed "s|ZOS003.ZWE.PSWI.|ZWE.PSWI.|g" EXPJCL3 >EXPJCL + #fi -sh scripts/submit_jcl.sh "`cat EXPJCL`" -if [ $? -gt 0 ];then exit -1;fi +sh scripts/submit_jcl.sh "$(cat EXPJCL)" +if [ $? -gt 0 ]; then exit -1; fi rm ./EXPJCL rm ./EXPORT -# Pax the directory +# Pax the directory echo "PAXing the final PSWI." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//PAXDIREC EXEC PGM=BPXBATCH" >> JCL -echo "//STDOUT DD SYSOUT=*" >> JCL -echo "//STDERR DD SYSOUT=*" >> JCL -echo "//STDPARM DD *" >> JCL -echo "SH set -x;set -e;" >> JCL -echo "cd ${EXPORT};" >> JCL -echo "pax -wv -f ${TMP_MOUNT}/${SWI_NAME}.pax.Z ." >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" -if [ $? -gt 0 ];then exit -1;fi +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//PAXDIREC EXEC PGM=BPXBATCH" >>JCL +echo "//STDOUT DD SYSOUT=*" >>JCL +echo "//STDERR DD SYSOUT=*" >>JCL +echo "//STDPARM DD *" >>JCL +echo "SH set -x;set -e;" >>JCL +echo "cd ${EXPORT};" >>JCL +echo "pax -wv -f ${TMP_MOUNT}/${SWI_NAME}.pax.Z ." >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +if [ $? -gt 0 ]; then exit -1; fi rm JCL cd ../.pax set -x pwd -sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} << EOF +sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} <> $LOG_FILE + + REASON=$(echo $RESP | grep -o '"reason":') + EMPTY=$(echo $RESP | grep -o '\[\]') + MSG=$(echo $RESP | grep -o '"messageText":') + if [ -n "$REASON" ] || [ -n "$MSG" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ -n "$EMPTY" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + if [ -n "$EMPTY" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ $RESPCODE -ne 0 ] - then - echo "Info: Logging to file ${LOG_FILE}." - if [ "$RESP" != "" ] - then - echo "$RESP" >> $LOG_FILE + if [ $RESPCODE -ne 0 ]; then + echo "Info: Logging to file ${LOG_FILE}." + if [ "$RESP" != "" ]; then + echo "$RESP" >>$LOG_FILE else - echo "REST API call wasn't successful." >> $LOG_FILE - fi + echo "REST API call wasn't successful." >>$LOG_FILE + fi else echo "REST API call was successful." fi - - return - } + + return +} # Create a log file touch $LOG_FILE @@ -68,69 +63,68 @@ touch $LOG_FILE # Delete the Software instance echo 'Invoking REST API to delete the first Software Instance.' -RESP=`curl -s $DELETE_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $DELETE_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? # Delete data set with export jobs echo "Invoking REST API to delete ${EXPORT_DSN} data set with export jobs." -RESP=`curl -s $EXPORT_DSN_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $EXPORT_DSN_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? # Delete echo "Invoking REST API to delete ${WORKFLOW_DSN} data set." -RESP=`curl -s $WORKFLOW_DSN_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $WORKFLOW_DSN_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? # Unmount and delete echo "Unmounting and deleting zFS ${TMP_ZFS}." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "UNMOUNT FILESYSTEM('${TMP_ZFS}') + " >> JCL -echo "IMMEDIATE" >> JCL -echo "/*" >> JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${TMP_ZFS}" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${TMP_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${TMP_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL -if [ "$ZOSMF_V" = "2.3" ] -then -# Unmount and delete -echo "Unmounting and deleting zFS ${WORK_ZFS}." - -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >> JCL -echo "IMMEDIATE" >> JCL -echo "/*" >> JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${WORK_ZFS}" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" -# Not checking results so the script doesn't fail -rm JCL -fi +if [ "$ZOSMF_V" = "2.3" ]; then + # Unmount and delete + echo "Unmounting and deleting zFS ${WORK_ZFS}." + + echo ${JOBST1} >JCL + echo ${JOBST2} >>JCL + echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL + echo "//SYSTSPRT DD SYSOUT=*" >>JCL + echo "//SYSTSOUT DD SYSOUT=*" >>JCL + echo "//SYSTSIN DD * " >>JCL + echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL + echo "IMMEDIATE" >>JCL + echo "/*" >>JCL + echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL + echo "//SYSPRINT DD SYSOUT=*" >>JCL + echo "//SYSIN DD *" >>JCL + echo " DELETE ${WORK_ZFS}" >>JCL + echo "/*" >>JCL + + sh scripts/submit_jcl.sh "$(cat JCL)" + # Not checking results so the script doesn't fail + rm JCL +fi echo "Invoking REST API to unmount Zowe zFS ${ZOWE_ZFS} from its mountpoint." -RESP=`curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$UNMOUNT_ZFS_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$UNMOUNT_ZFS_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? diff --git a/pswi/06_test_cleanup.sh b/pswi/06_test_cleanup.sh index f426f11ed5..efecd53df5 100644 --- a/pswi/06_test_cleanup.sh +++ b/pswi/06_test_cleanup.sh @@ -2,7 +2,7 @@ #version=1.0 export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" -LOG_FILE=${LOGDIR}log_pswi_"`date +%y-%j-%H-%M-%S`" +LOG_FILE=$$LOG_DIR/log_test_cleanup.txt echo "" echo "" @@ -20,166 +20,156 @@ echo "ACCOUNT :" $ACCOUNT echo "SYSAFF :" $SYSAFF echo "z/OSMF version :" $ZOSMF_V - # URLs DELETE_PSWI_URL="${BASE_URL}/zosmf/swmgmt/pswi/${ZOSMF_SYSTEM}/${PSWI}" WORKFLOW_LIST_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows?owner=${ZOSMF_USER}&workflowName=${WORKFLOW_NAME}.*" DELETE_DEPL_SWI_URL="${BASE_URL}/zosmf/swmgmt/swi/${ZOSMF_SYSTEM}/${DEPLOY_NAME}" - check_response() { RESP=$1 RESPCODE=$2 - - REASON=`echo $RESP | grep -o '"reason":'` - EMPTY=`echo $RESP | grep -o '\[\]'` - MSG=`echo $RESP | grep -o '"messageText":'` - if [ -n "$REASON" ] || [ -n "$MSG" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE - fi - if [ -n "$EMPTY" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + + REASON=$(echo $RESP | grep -o '"reason":') + EMPTY=$(echo $RESP | grep -o '\[\]') + MSG=$(echo $RESP | grep -o '"messageText":') + if [ -n "$REASON" ] || [ -n "$MSG" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE + fi + if [ -n "$EMPTY" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ $RESPCODE -ne 0 ] - then - echo "Info: Logging to file ${LOG_FILE}." - if [ -n "$RESP" ] - then - echo "$RESP" >> $LOG_FILE + if [ $RESPCODE -ne 0 ]; then + echo "Info: Logging to file ${LOG_FILE}." + if [ -n "$RESP" ]; then + echo "$RESP" >>$LOG_FILE else - echo "REST API call wasn't successful." >> $LOG_FILE - fi + echo "REST API call wasn't successful." >>$LOG_FILE + fi else echo "REST API call was successful." fi - - return - } + + return +} # Create a log file touch $LOG_FILE - + # Delete the Software instance echo "Invoking REST API to delete the Software Instance created by deployment." -RESP=`curl -s $DELETE_DEPL_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $DELETE_DEPL_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? -if [ "$ZOSMF_V" = "2.4" ] -then +if [ "$ZOSMF_V" = "2.4" ]; then -# Delete the Portable Software Instance -echo "Invoking REST API to delete the portable software instance." + # Delete the Portable Software Instance + echo "Invoking REST API to delete the portable software instance." -RESP=`curl -s $DELETE_PSWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -check_response "${RESP}" $? + RESP=$(curl -s $DELETE_PSWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + check_response "${RESP}" $? fi # Unmount and delete echo "Unmounting and deleting zFS ${TMP_ZFS}." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "UNMOUNT FILESYSTEM('${TMP_ZFS}') + " >> JCL -echo "IMMEDIATE" >> JCL -echo "/*" >> JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${TMP_ZFS}" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${TMP_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${TMP_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL -if [ "$ZOSMF_V" = "2.3" ] -then -# Unmount and delete -echo "Unmounting and deleting zFS ${WORK_ZFS}." - -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >> JCL -echo "IMMEDIATE" >> JCL -echo "/*" >> JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${WORK_ZFS}" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" -# Not checking results so the script doesn't fail -rm JCL -fi +if [ "$ZOSMF_V" = "2.3" ]; then + # Unmount and delete + echo "Unmounting and deleting zFS ${WORK_ZFS}." + + echo ${JOBST1} >JCL + echo ${JOBST2} >>JCL + echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL + echo "//SYSTSPRT DD SYSOUT=*" >>JCL + echo "//SYSTSOUT DD SYSOUT=*" >>JCL + echo "//SYSTSIN DD * " >>JCL + echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL + echo "IMMEDIATE" >>JCL + echo "/*" >>JCL + echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL + echo "//SYSPRINT DD SYSOUT=*" >>JCL + echo "//SYSIN DD *" >>JCL + echo " DELETE ${WORK_ZFS}" >>JCL + echo "/*" >>JCL + + sh scripts/submit_jcl.sh "$(cat JCL)" + # Not checking results so the script doesn't fail + rm JCL +fi # Unmount and delete echo "Unmounting and deleting zFS ${TEST_HLQ}.ZFS." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS') + " >> JCL -echo "IMMEDIATE" >> JCL -echo "/*" >> JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${TEST_HLQ}.ZFS" >> JCL -echo "/*" >> JCL - -sh scripts/submit_jcl.sh "`cat JCL`" +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${TEST_HLQ}.ZFS" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL # Delete deployed datasets echo "Deleting deployed datasets." -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//DELTZOWE EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${TEST_HLQ}.** MASK" >> JCL -echo " SET MAXCC=0" >> JCL -echo "/*" >> JCL +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//DELTZOWE EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${TEST_HLQ}.** MASK" >>JCL +echo " SET MAXCC=0" >>JCL +echo "/*" >>JCL -sh scripts/submit_jcl.sh "`cat JCL`" +sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL -if [ "$ZOSMF_V" = "2.4" ] -then -# Delete Post-deployment workflow in z/OSMF -echo "Invoking REST API to delete Post-deployment workflows." +if [ "$ZOSMF_V" = "2.4" ]; then + # Delete Post-deployment workflow in z/OSMF + echo "Invoking REST API to delete Post-deployment workflows." -# Get workflowKey for Post-deployment workflow owned by user -RESP=`curl -s $WORKFLOW_LIST_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -check_response "${RESP}" $? -WFKEYS=`echo $RESP | sed 's/},/},\n/g' | grep -oP '"workflowKey":".*"' | cut -f4 -d\"` + # Get workflowKey for Post-deployment workflow owned by user + RESP=$(curl -s $WORKFLOW_LIST_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + check_response "${RESP}" $? + WFKEYS=$(echo $RESP | sed 's/},/},\n/g' | grep -oP '"workflowKey":".*"' | cut -f4 -d\") -IFS=$'\n' -for KEY in $WFKEYS -do + IFS=$'\n' + for KEY in $WFKEYS; do -echo "Deleting a workflow." -RESP=`curl -s ${BASE_URL}/zosmf/workflow/rest/1.0/workflows/${KEY} -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -check_response "${RESP}" $? - -done + echo "Deleting a workflow." + RESP=$(curl -s ${BASE_URL}/zosmf/workflow/rest/1.0/workflows/${KEY} -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) + check_response "${RESP}" $? + + done fi diff --git a/pswi/07_smpe_cleanup.sh b/pswi/07_smpe_cleanup.sh index 53106174b3..97e7830b9f 100644 --- a/pswi/07_smpe_cleanup.sh +++ b/pswi/07_smpe_cleanup.sh @@ -2,7 +2,7 @@ #version=1.0 export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" -LOG_FILE=${LOGDIR}log_pswi_"`date +%y-%j-%H-%M-%S`" +LOG_FILE=$LOG_DIR/log_pswi_smpe_cleanup.txt echo "" echo "" @@ -17,60 +17,56 @@ echo "Directory for logs :" $LOGDIR # URLs ACTION_ZOWE_ZFS_URL="${BASE_URL}/zosmf/restfiles/mfs/${ZOWE_ZFS}" -# JSONs +# JSONs UNMOUNT_ZFS_JSON='{"action":"unmount"}' check_response() { RESP=$1 RESPCODE=$2 - - REASON=`echo $RESP | grep -o '"reason":'` - EMPTY=`echo $RESP | grep -o '\[\]'` - MSG=`echo $RESP | grep -o '"messageText":'` - if [ -n "$REASON" ] || [ -n "$MSG" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + + REASON=$(echo $RESP | grep -o '"reason":') + EMPTY=$(echo $RESP | grep -o '\[\]') + MSG=$(echo $RESP | grep -o '"messageText":') + if [ -n "$REASON" ] || [ -n "$MSG" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ -n "$EMPTY" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + if [ -n "$EMPTY" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ $RESPCODE -ne 0 ] - then - echo "Info: Logging to file ${LOG_FILE}." - if [ -n "$RESP" ] - then - echo "$RESP" >> $LOG_FILE + if [ $RESPCODE -ne 0 ]; then + echo "Info: Logging to file ${LOG_FILE}." + if [ -n "$RESP" ]; then + echo "$RESP" >>$LOG_FILE else - echo "REST API call wasn't successful." >> $LOG_FILE - fi + echo "REST API call wasn't successful." >>$LOG_FILE + fi else echo "REST API call was successful." fi - - return - } + + return +} # Create a log file touch $LOG_FILE echo "Invoking REST API to unmount SMPE zFS ${ZOWE_ZFS} from its mountpoint." -RESP=`curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$UNMOUNT_ZFS_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s $ACTION_ZOWE_ZFS_URL -k -X "PUT" -d "$UNMOUNT_ZFS_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) check_response "${RESP}" $? # Delete SMPE datasets -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//DELTZOWE EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${CSIHLQ}.** MASK" >> JCL -echo " SET MAXCC=0" >> JCL -echo "/*" >> JCL +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//DELTZOWE EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${CSIHLQ}.** MASK" >>JCL +echo " SET MAXCC=0" >>JCL +echo "/*" >>JCL -sh scripts/submit_jcl.sh "`cat JCL`" +sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL diff --git a/pswi/08_presmpe_cleanup.sh b/pswi/08_presmpe_cleanup.sh index df0a83805c..df7521e12a 100644 --- a/pswi/08_presmpe_cleanup.sh +++ b/pswi/08_presmpe_cleanup.sh @@ -2,7 +2,7 @@ #version=1.0 export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" -LOG_FILE=${LOGDIR}log_pswi_"`date +%y-%j-%H-%M-%S`" +LOG_FILE=$LOG_DIR/log_pswi_presmpe_cleanup echo "" echo "" @@ -17,49 +17,45 @@ echo "Directory for logs :" $LOGDIR check_response() { RESP=$1 RESPCODE=$2 - - REASON=`echo $RESP | grep -o '"reason":'` - EMPTY=`echo $RESP | grep -o '\[\]'` - MSG=`echo $RESP | grep -o '"messageText":'` - if [ -n "$REASON" ] || [ -n "$MSG" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + + REASON=$(echo $RESP | grep -o '"reason":') + EMPTY=$(echo $RESP | grep -o '\[\]') + MSG=$(echo $RESP | grep -o '"messageText":') + if [ -n "$REASON" ] || [ -n "$MSG" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ -n "$EMPTY" ] - then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >> $LOG_FILE + if [ -n "$EMPTY" ]; then + echo "Info: Logging to file ${LOG_FILE}." + echo "$RESP" >>$LOG_FILE fi - if [ $RESPCODE -ne 0 ] - then - echo "Info: Logging to file ${LOG_FILE}." - if [ -n "$RESP" ] - then - echo "$RESP" >> $LOG_FILE + if [ $RESPCODE -ne 0 ]; then + echo "Info: Logging to file ${LOG_FILE}." + if [ -n "$RESP" ]; then + echo "$RESP" >>$LOG_FILE else - echo "REST API call wasn't successful." >> $LOG_FILE - fi + echo "REST API call wasn't successful." >>$LOG_FILE + fi else echo "REST API call was successful." fi - - return - } + + return +} # Create a log file touch $LOG_FILE # Delete pre-SMPE datasets -echo ${JOBST1} > JCL -echo ${JOBST2} >> JCL -echo "//DELTZOWE EXEC PGM=IDCAMS" >> JCL -echo "//SYSPRINT DD SYSOUT=*" >> JCL -echo "//SYSIN DD *" >> JCL -echo " DELETE ${SMPE}.** MASK" >> JCL -echo " SET MAXCC=0" >> JCL -echo "/*" >> JCL +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//DELTZOWE EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${SMPE}.** MASK" >>JCL +echo " SET MAXCC=0" >>JCL +echo "/*" >>JCL -sh scripts/submit_jcl.sh "`cat JCL`" +sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 9e9e77ed53..50c719367d 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -1,4 +1,3 @@ -set -x export ZOSMF_URL="https://zzow10.zowe.marist.cloud" export ZOSMF_PORT=10443 export ZOSMF_SYSTEM="S0W1" @@ -10,7 +9,9 @@ export VOLUME="ZOS003" export TEST_HLQ="ZOWEAD2.PSWIT" export SYSAFF="(S0W1)" export ACCOUNT=1 - +CURR_TIME=$(date +%s) +export LOG_DIR="logs/$CURR_TIME" +mkdir -p $LOG_DIR # Variables for workflows # SMPE export TZONE="TZONE" @@ -31,7 +32,7 @@ export TEST_MOUNT="${DIR}/test_mount" export EXPORT="${TMP_MOUNT}/export/" export WORK_MOUNT="${DIR}/work" export WORK_ZFS="ZOWEAD2.WORK.ZFS" -export ZOSMF_V="2.3" +export ZOSMF_V="3.1" export SMPE_WF_NAME="ZOWE_SMPE_WF" export PTF_WF_NAME="ZOWE_PTF_WF" export HOST=${ZOSMF_URL#https:\/\/} @@ -42,7 +43,7 @@ if [ -f ../.pax/zowe-smpe.zip ]; then mkdir -p "unzipped" unzip ../.pax/zowe-smpe.zip -d unzipped else - echo "zowe-smpe file not found" >>report.txt + echo "zowe-smpe file not found" >>"$LOG_DIR/report.txt" exit -1 fi @@ -74,7 +75,7 @@ else if [ -f ../.pax/${FMID}.zip ]; then unzip ../.pax/${FMID}.zip -d unzipped else - echo "File with FMID not found" >>report.txt + echo "File with FMID not found" >>"$LOG_DIR/report.txt" exit -1 fi fi @@ -91,13 +92,6 @@ export WORKFLOW_DSN=${CSIHLQ}.WORKFLOW export ZOWE_ZFS="${CSIHLQ}.ZFS" export VERSION=$(cat ../manifest.json.template | grep -o '"version": ".*"' | head -1 | cut -f4 -d\") -# Cleanup after the creation of PSWI -sh 04_create_cleanup.sh -# Cleanup of SMP/E -sh 07_smpe_cleanup.sh -# Clean RELFILEs and PTFs -sh 08_presmpe_cleanup.sh - # Initialize variables presmpe=0 smpe=0 @@ -147,13 +141,8 @@ if [ $presmpe -eq 0 ]; then sh 051_test_workflows.sh wf_test=$? fi -<<<<<<< HEAD - # -======= - ->>>>>>> v3.x/staging # Cleanup after the test - #sh 06_test_cleanup.sh + sh 06_test_cleanup.sh fi else # Cleanup of SMP/E if PTF weren't successful - because the earlier cleanup runs only it it was success @@ -176,19 +165,19 @@ echo "" echo "" if [ $smpe -ne 0 ] || [ $ptf -ne 0 ] || [ $create -ne 0 ] || [ $test -ne 0 ] || [ $presmpe -ne 0 ] || [ $wf_test -ne 0 ]; then - echo "Build unsuccessful!" >>report.txt + echo "Build unsuccessful!" >>"$LOG_DIR/report.txt" if [ $presmpe -ne 0 ]; then - echo "Pre-SMP/E wasn't successful." >>report.txt + echo "Pre-SMP/E wasn't successful." >>"$LOG_DIR/report.txt" elif [ $smpe -ne 0 ]; then - echo "SMP/E wasn't successful." >>report.txt + echo "SMP/E wasn't successful." >>"$LOG_DIR/report.txt" elif [ $ptf -ne 0 ]; then - echo "Applying PTFs wasn't successful." >>report.txt + echo "Applying PTFs wasn't successful." >>"$LOG_DIR/report.txt" elif [ $create -ne 0 ]; then - echo "Creation of PSWI wasn't successful." >>report.txt + echo "Creation of PSWI wasn't successful." >>"$LOG_DIR/report.txt" elif [ $test -ne 0 ]; then - echo "Testing of PSWI wasn't successful." >>report.txt + echo "Testing of PSWI wasn't successful." >>"$LOG_DIR/report.txt" elif [ $wf_test -ne 0 ]; then - echo "Workflow testing wasn't successful." >>report.txt + echo "Workflow testing wasn't successful." >>"$LOG_DIR/report.txt" fi exit -1 else diff --git a/pswi/scripts/spool_files.sh b/pswi/scripts/spool_files.sh index ff8fd0df4f..289fe3ce8c 100644 --- a/pswi/scripts/spool_files.sh +++ b/pswi/scripts/spool_files.sh @@ -1,22 +1,23 @@ # $1 = JOBNAME # $2 = JOBID - + IDENTIFIER="${1}/${2}" JOBNAME=${1} +JOB_OUTPUT_DIR=$LOG_DIR/jobs/output +JOB_OUTPUT_FILE=$JOB_OUTPUT_DIR/$JOBNAME_$2 -RESP=`curl -s ${BASE_URL}/zosmf/restjobs/jobs/${IDENTIFIER}/files -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +RESP=$(curl -s ${BASE_URL}/zosmf/restjobs/jobs/${IDENTIFIER}/files -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 $?;fi +if [ $? -gt 0 ]; then exit $?; fi echo $RESP | sed 's/},/},\n/g' | grep -o '"records-url":".*records"' | cut -f4 -d\" | tr -d '\' 2>/dev/null 1>urls - -mkdir -p $JOBNAME -while read -r line -do - curl -s $line?mode=text -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS >> $IDENTIFIER -done < urls - +mkdir -p $JOB_OUTPUT_DIR + +while read -r line; do + curl -s $line?mode=text -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS >>$JOB_OUTPUT_FILE +done /dev/null` -if [ -z "$JOB_STATUS_URL" ] -then - echo "No response from the REST API call." >> report.txt +JOB_STATUS_URL=$(echo $RESP | grep -o '"url":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null) +if [ -z "$JOB_STATUS_URL" ]; then + echo "No response from the REST API call." >>$LOG_DIR/report.txt exit -1 fi -JOBID=`echo $RESP | grep -o '"jobid":".*"' | cut -f4 -d\"` -JOBNAME=`echo $RESP | grep -o '"jobname":".*"' | cut -f4 -d\"` +JOBID=$(echo $RESP | grep -o '"jobid":".*"' | cut -f4 -d\") +JOBNAME=$(echo $RESP | grep -o '"jobname":".*"' | cut -f4 -d\") echo "Job ${JOBNAME} ${JOBID} submitted." @@ -23,14 +25,12 @@ echo "Job ${JOBNAME} ${JOBID} submitted." echo "Invoking REST API to check if the job ${JOBNAME} ${JOBID} has finished." STATUS="" -until [ "$STATUS" = "OUTPUT" ] -do - RESP=`curl -s $JOB_STATUS_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` +until [ "$STATUS" = "OUTPUT" ]; do + RESP=$(curl -s $JOB_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}" $? - STATUS=`echo $RESP | grep -o '"status":".*"' | cut -f4 -d\"` + STATUS=$(echo $RESP | grep -o '"status":".*"' | cut -f4 -d\") echo "The status of the job is ${STATUS}" - if [ -f EXPJCL ] # If file with export JCL exists that mean that export JCL was submitted and it needs to wait longer - then + if [ -f EXPJCL ]; then # If file with export JCL exists that mean that export JCL was submitted and it needs to wait longer sleep 30 else sleep 5 @@ -38,18 +38,19 @@ do done # Check return code -RC=`echo $RESP | grep -o '"retcode":".*"' | cut -f4 -d\"` +RC=$(echo $RESP | grep -o '"retcode":".*"' | cut -f4 -d\") echo "Return code of the job ${JOBNAME} ${JOBID} is ${RC}." - + # Download spool files echo "Downloading spool files." sh scripts/spool_files.sh $JOBNAME $JOBID - -if [ "$RC" = "CC 0000" ] -then + +echo "$JCL" >>$JCL_LOG_DIR/JCL_$JOBNAME_$JOBID + +if [ "$RC" = "CC 0000" ]; then echo "${JOBNAME} ${JOBID} was completed." else - echo "${JOBNAME} ${JOBID} failed." >> report.txt - cat $JOBNAME/$JOBID >> report.txt + echo "${JOBNAME} ${JOBID} failed." >>$LOG_DIR/report.txt + cat $JOBNAME/$JOBID >>$LOG_DIR/report.txt exit -1 -fi +fi From a278f0b0e3b50caf83cd091b3ea246542b4a490c Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Thu, 31 Oct 2024 15:28:20 -0400 Subject: [PATCH 033/121] correct more logs Signed-off-by: MarkAckert --- pswi/01_smpe.sh | 66 +++++++++---------- pswi/02_ptf.sh | 66 +++++++++---------- pswi/03_create.sh | 20 +++--- pswi/06_test_cleanup.sh | 2 +- pswi/scripts/check_response.sh | 20 +++--- pswi/scripts/tmp_mounts.sh | 87 ++++++++++++------------- pswi/scripts/wf_run_test.sh | 113 +++++++++++++++------------------ 7 files changed, 173 insertions(+), 201 deletions(-) diff --git a/pswi/01_smpe.sh b/pswi/01_smpe.sh index 42d9f89aff..38a40b11c3 100644 --- a/pswi/01_smpe.sh +++ b/pswi/01_smpe.sh @@ -18,7 +18,7 @@ echo "SMPE workflow name :" $SMPE_WF_NAME CREATE_SMPE_WF_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows" SMPE_WF_LIST_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows?owner=${ZOSMF_USER}&workflowName=${SMPE_WF_NAME}" -# JSONs +# JSONs ADD_WORKFLOW_JSON='{"workflowName":"'$SMPE_WF_NAME'", "workflowDefinitionFile":"'${DIR}'/SMPE20", @@ -43,7 +43,7 @@ echo "Uploading workflow SMPE into ${DIR} directory thru SSH" cd workflows -sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} << EOF +sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} <> report.txt - echo $RESP >> report.txt - exit -1 -elif [ "$STATUS_NAME" = "complete" ] -then - echo "Workflow finished successfully." - STATUS="FINISHED" -fi +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 with SMP/E ended with an error." >>$LOG_DIR/report.txt + echo $RESP >>$LOG_DIR/report.txt + exit -1 + elif [ "$STATUS_NAME" = "complete" ]; then + echo "Workflow finished successfully." + STATUS="FINISHED" + fi done - diff --git a/pswi/02_ptf.sh b/pswi/02_ptf.sh index e5174333d7..c6f189e43a 100644 --- a/pswi/02_ptf.sh +++ b/pswi/02_ptf.sh @@ -22,7 +22,7 @@ echo "PTF workflow name :" $PTF_WF_NAME CREATE_PTF_WF_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows" PTF_WF_LIST_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows?owner=${ZOSMF_USER}&workflowName=${PTF_WF_NAME}" -# JSONs +# JSONs ADD_WORKFLOW_JSON='{"workflowName":"'$PTF_WF_NAME'", "workflowDefinitionFile":"'${DIR}'/WFPTF", "system":"'$ZOSMF_SYSTEM'", @@ -38,7 +38,7 @@ ADD_WORKFLOW_JSON='{"workflowName":"'$PTF_WF_NAME'", cd workflows -sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} << EOF +sshpass -p${ZOSMF_PASS} sftp -o HostKeyAlgorithms=+ssh-rsa -o BatchMode=no -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -b - -P ${ZZOW_SSH_PORT} ${ZOSMF_USER}@${HOST} <> report.txt - echo $RESP >> report.txt - exit -1 -elif [ "$STATUS_NAME" = "complete" ] -then - echo "Workflow finished successfully." - STATUS="FINISHED" -fi +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 with PTFs ended with an error." >>$LOG_DIR/report.txt + echo $RESP >>$LOG_DIR/report.txt + exit -1 + elif [ "$STATUS_NAME" = "complete" ]; then + echo "Workflow finished successfully." + STATUS="FINISHED" + fi done diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 23d19d57bd..3f0727843c 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -72,8 +72,8 @@ if [ -n "$MOUNTZ" ]; then if [ "$MOUNTZ/" = "$ZOWE_MOUNT" ]; then echo "${ZOWE_MOUNT} with zFS ${ZOWE_ZFS} mounted will be used." else - echo "The file system ${ZOWE_ZFS} exists but is mounted to different mount point ${MOUNTZ}." >>report.txt - echo "It is required to have the file system ${ZOWE_ZFS} mounted to the exact mount point (${ZOWE_MOUNT}) to successfully export Zowe PSWI." >>report.txt + echo "The file system ${ZOWE_ZFS} exists but is mounted to different mount point ${MOUNTZ}." >>$LOG_DIR/report.txt + echo "It is required to have the file system ${ZOWE_ZFS} mounted to the exact mount point (${ZOWE_MOUNT}) to successfully export Zowe PSWI." >>$LOG_DIR/report.txt exit -1 fi else @@ -82,7 +82,7 @@ else MOUNTZFS=$(echo $RESP | grep -o "name":".*" | cut -f4 -d\") if [ -n "$MOUNTZFS" ]; then # If ZFS is not mounted to the mountpoint then this ZOWE mountpoint has different zFS - echo "The mountpoint ${ZOWE_MOUNT} has different zFS ${MOUNTZFS}." >>report.txt + echo "The mountpoint ${ZOWE_MOUNT} has different zFS ${MOUNTZFS}." >>$LOG_DIR/report.txt exit -1 else # Mount zFS to Zowe mountpoint @@ -99,13 +99,13 @@ echo "Checking if WORKFLOW data set already exists." RESP=$(curl -s $CHECK_WORKFLOW_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) DS_COUNT=$(echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:) if [ $DS_COUNT -ne 0 ]; then - echo "The ${WORKFLOW_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>report.txt + echo "The ${WORKFLOW_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>$LOG_DIR/report.txt exit -1 else echo "Creating a data set where the post-Deployment workflow will be stored." RESP=$(curl -s $WORKFLOW_DSN_URL -k -X "POST" -d "$ADD_WORKFLOW_DSN_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) if [ -n "$RESP" ]; then - echo "The creation of the ${WORKFLOW_DSN} was not successful. Error message: ${RESP}" >>report.txt + echo "The creation of the ${WORKFLOW_DSN} was not successful. Error message: ${RESP}" >>$LOG_DIR/report.txt exit -1 fi fi @@ -162,7 +162,7 @@ echo "Checking if the data set for export jobs already exists." RESP=$(curl -s $CHECK_EXPORT_DSN_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) DSN_COUNT=$(echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:) if [ $DSN_COUNT -ne 0 ]; then - echo "The ${EXPORT_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>report.txt + echo "The ${EXPORT_DSN} already exist. Because there is a possibility that it contains something unwanted the script does not continue." >>$LOG_DIR/report.txt exit -1 else echo "Creating a data set where the export jobs will be stored." @@ -196,7 +196,7 @@ if [ $? -gt 0 ]; then exit -1; fi LOAD_STATUS_URL=$(echo $RESP | grep -o '"statusurl":".*"' | cut -f4 -d\" | tr -d '\' 2>/dev/null) if [ -z "$LOAD_STATUS_URL" ]; then - echo "No response from the load product REST API call." >>report.txt + echo "No response from the load product REST API call." >>$LOG_DIR/report.txt exit -1 fi @@ -223,7 +223,7 @@ 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 [ -z "$EXPORT_STATUS_URL" ]; then - echo "No response from the export REST API call." >>report.txt + echo "No response from the export REST API call." >>$LOG_DIR/report.txt exit -1 fi @@ -247,7 +247,7 @@ until [ "$STATUS" = "complete" ]; do echo "The status is: "$STATUS # Can be 100% but still running if [ "$STATUS" != "complete" ] && [ "$STATUS" != "running" ]; then - echo "Status of generation of Export JCL failed." >>report.txt + echo "Status of generation of Export JCL failed." >>$LOG_DIR/report.txt exit -1 fi fi @@ -255,7 +255,7 @@ until [ "$STATUS" = "complete" ]; do done if [ -z "$DSN" ]; then - echo "The creation of export JCL failed" >>report.txt + echo "The creation of export JCL failed" >>$LOG_DIR/report.txt exit -1 fi diff --git a/pswi/06_test_cleanup.sh b/pswi/06_test_cleanup.sh index efecd53df5..a45144a454 100644 --- a/pswi/06_test_cleanup.sh +++ b/pswi/06_test_cleanup.sh @@ -2,7 +2,7 @@ #version=1.0 export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" -LOG_FILE=$$LOG_DIR/log_test_cleanup.txt +LOG_FILE=$LOG_DIR/log_test_cleanup.txt echo "" echo "" diff --git a/pswi/scripts/check_response.sh b/pswi/scripts/check_response.sh index b589cf88d2..2a2deb11cd 100644 --- a/pswi/scripts/check_response.sh +++ b/pswi/scripts/check_response.sh @@ -1,17 +1,15 @@ RESP=$1 RESPCODE=$2 - -REASON=`echo $RESP | grep -o '"reason":'` -MSG=`echo $RESP | grep -o '"messageText":'` -if [ -n "$REASON" ] || [ -n "$MSG" ] -then - echo $RESP >> report.txt + +REASON=$(echo $RESP | grep -o '"reason":') +MSG=$(echo $RESP | grep -o '"messageText":') +if [ -n "$REASON" ] || [ -n "$MSG" ]; then + echo $RESP >>$LOG_DIR/report.txt exit -1 -fi -if [ $RESPCODE -ne 0 ] -then - echo "REST API call failed." >> report.txt - echo $RESP >> report.txt +fi +if [ $RESPCODE -ne 0 ]; then + echo "REST API call failed." >>$LOG_DIR/report.txt + echo $RESP >>$LOG_DIR/report.txt exit -1 else echo "REST API call was successful." diff --git a/pswi/scripts/tmp_mounts.sh b/pswi/scripts/tmp_mounts.sh index eb44340d58..9f8d55e724 100644 --- a/pswi/scripts/tmp_mounts.sh +++ b/pswi/scripts/tmp_mounts.sh @@ -6,57 +6,50 @@ MOUNT=${2} MOUNTED=false echo "Checking if file system ${ZFS} is mounted." -RESP=`curl -s "${BASE_URL}/zosmf/restfiles/mfs?fsname=${ZFS}" -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` -MOUNTP=`echo $RESP | grep -o '"mountpoint":".*"' | cut -f4 -d\"` +RESP=$(curl -s "${BASE_URL}/zosmf/restfiles/mfs?fsname=${ZFS}" -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) +MOUNTP=$(echo $RESP | grep -o '"mountpoint":".*"' | cut -f4 -d\") NEW_ZFS_JSON='{"cylsPri":2000,"cylsSec": 140,"volumes":[ "'${VOLUME}'" ]}' - - -if [ -n "$MOUNTP" ] -then + +if [ -n "$MOUNTP" ]; then # Check if temp zFS is mounted to given mount point - if [ "$MOUNTP" = "$MOUNT" ] - then + if [ "$MOUNTP" = "$MOUNT" ]; then echo "${MOUNT} with zFS ${ZFS} mounted will be used as is." MOUNTED=true else - echo "The file system ${ZFS} exists but is mounted to different mount point(${MOUNTP})." >> report.txt - echo "Use different name of zFS or ${MOUNTP} for mount point." >> report.txt + echo "The file system ${ZFS} exists but is mounted to different mount point(${MOUNTP})." >>$LOG_DIR/report.txt + echo "Use different name of zFS or ${MOUNTP} for mount point." >>$LOG_DIR/report.txt exit -1 fi else echo "Temporary zFS isn't mounted. Now checking if mount point has any other zFS mounted." - RESP=`curl -s "${BASE_URL}/zosmf/restfiles/mfs?path=${MOUNT}" -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` + RESP=$(curl -s "${BASE_URL}/zosmf/restfiles/mfs?path=${MOUNT}" -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 - MOUNTZFS=`echo $RESP | grep -o "name":".*" | cut -f4 -d\"` - if [ -n "$MOUNTZFS" ] - then + if [ $? -gt 0 ]; then exit -1; fi + MOUNTZFS=$(echo $RESP | grep -o "name":".*" | cut -f4 -d\") + if [ -n "$MOUNTZFS" ]; then # If zFS is not mounted to the mount point then this mount point has different zFS - echo "The mount point ${MOUNT} has different zFS (${MOUNTZFS}) mounted." >> report.txt - echo "Use different mount point (not ${MOUNT})." >> report.txt - echo "Or use ${MOUNTZFS} for zFS." >> report.txt + echo "The mount point ${MOUNT} has different zFS (${MOUNTZFS}) mounted." >>$LOG_DIR/report.txt + echo "Use different mount point (not ${MOUNT})." >>$LOG_DIR/report.txt + echo "Or use ${MOUNTZFS} for zFS." >>$LOG_DIR/report.txt exit -1 fi fi - -if [ "$MOUNTED" = false ] -then +if [ "$MOUNTED" = false ]; then # Check if data set 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` + 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 - ZFS_COUNT=`echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:` - if [ "$ZFS_COUNT" = "0" ] - then + if [ $? -gt 0 ]; then exit -1; fi + ZFS_COUNT=$(echo $RESP | grep -o '"returnedRows":[0-9]*' | cut -f2 -d:) + if [ "$ZFS_COUNT" = "0" ]; then # Create new zFS if not echo "${ZFS} does not exists." echo "Creating new zFS ${ZFS}." - RESP=`curl -s "${BASE_URL}/zosmf/restfiles/mfs/zfs/${ZFS}" -k -X "POST" -d "$NEW_ZFS_JSON" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS` + RESP=$(curl -s "${BASE_URL}/zosmf/restfiles/mfs/zfs/${ZFS}" -k -X "POST" -d "$NEW_ZFS_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 + if [ $? -gt 0 ]; then exit -1; fi else #TODO: also check the first dsname because it can be something that just has tmp_zfs as HLQ echo @@ -64,25 +57,25 @@ then # 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 -echo ${JOBST2} >> JCL -echo "//MKDIR EXEC PGM=BPXBATCH" >> JCL -echo "//STDOUT DD SYSOUT=*" >> JCL -echo "//STDERR DD SYSOUT=*" >> JCL -echo "//STDPARM DD *" >> JCL -echo "SH mkdir -p ${MOUNT}" >> JCL -echo "/*" >> JCL -echo "//MNT1ZFS1 EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >> JCL -echo "//SYSTSPRT DD SYSOUT=*" >> JCL -echo "//SYSTSOUT DD SYSOUT=*" >> JCL -echo "//SYSTSIN DD * " >> JCL -echo "MOUNT FILESYSTEM('${ZFS}') + " >> JCL -echo "TYPE(ZFS) MODE(RDWR) + " >> JCL -echo "PARM('AGGRGROW') + " >> JCL -echo "MOUNTPOINT('${MOUNT}') " >> JCL -echo "/*" >> JCL + echo ${JOBST1} >JCL + echo ${JOBST2} >>JCL + echo "//MKDIR EXEC PGM=BPXBATCH" >>JCL + echo "//STDOUT DD SYSOUT=*" >>JCL + echo "//STDERR DD SYSOUT=*" >>JCL + echo "//STDPARM DD *" >>JCL + echo "SH mkdir -p ${MOUNT}" >>JCL + echo "/*" >>JCL + echo "//MNT1ZFS1 EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL + echo "//SYSTSPRT DD SYSOUT=*" >>JCL + echo "//SYSTSOUT DD SYSOUT=*" >>JCL + echo "//SYSTSIN DD * " >>JCL + echo "MOUNT FILESYSTEM('${ZFS}') + " >>JCL + echo "TYPE(ZFS) MODE(RDWR) + " >>JCL + echo "PARM('AGGRGROW') + " >>JCL + echo "MOUNTPOINT('${MOUNT}') " >>JCL + echo "/*" >>JCL - sh scripts/submit_jcl.sh "`cat JCL`" - if [ $? -gt 0 ];then exit -1;fi + sh scripts/submit_jcl.sh "$(cat JCL)" + if [ $? -gt 0 ]; then exit -1; fi rm JCL fi diff --git a/pswi/scripts/wf_run_test.sh b/pswi/scripts/wf_run_test.sh index e31a8e3c19..7429c91a9a 100755 --- a/pswi/scripts/wf_run_test.sh +++ b/pswi/scripts/wf_run_test.sh @@ -21,17 +21,16 @@ WF_NAME="Testing_workflows" 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 -if [ -n "$INPUT_FILE" ] -then -ADD_WORKFLOW_JSON='{"workflowName":"'$WF_NAME'", +# JSONs +if [ -n "$INPUT_FILE" ]; then + ADD_WORKFLOW_JSON='{"workflowName":"'$WF_NAME'", "workflowDefinitionFile":"'${WF_DEF_FILE}'", "variableInputFile":"'${INPUT_FILE}'", "system":"'$ZOSMF_SYSTEM'", "owner":"'$ZOSMF_USER'", "assignToOwner" :true}' else -ADD_WORKFLOW_JSON='{"workflowName":"'$WF_NAME'", + ADD_WORKFLOW_JSON='{"workflowName":"'$WF_NAME'", "workflowDefinitionFile":"'${WF_DEF_FILE}'", "system":"'$ZOSMF_SYSTEM'", "owner":"'$ZOSMF_USER'", @@ -42,75 +41,67 @@ set -x # 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\"` +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}" +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}" $? + 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 # 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` +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\"` +if [ $? -gt 0 ]; then exit -1; fi +WFKEY=$(echo $RESP | grep -o '"workflowKey":".*"' | cut -f4 -d\") WORKFLOW_URL="${CREATE_WF_URL}/${WFKEY}" -if [ "$run" = "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." >> report.txt - echo $RESP >> report.txt - echo "Checking if the workflow is ZWECONF" >> report.txt - if [ "$ZWECONF" = "ZWECONF" ] - then - STEP_NAME=`echo $RESP | grep -o '"currentStepName":".*"' | cut -f4 -d\"` - if [ "$STEP_NAME" = "init_zowe" ] - then - echo "The workflow is ZWECONF and should end in step 'init_zowe'" +if [ "$run" = "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." >>$LOG_DIR/report.txt + echo $RESP >>$LOG_DIR/report.txt + echo "Checking if the workflow is ZWECONF" >>$LOG_DIR/report.txt + if [ "$ZWECONF" = "ZWECONF" ]; then + STEP_NAME=$(echo $RESP | grep -o '"currentStepName":".*"' | cut -f4 -d\") + if [ "$STEP_NAME" = "init_zowe" ]; then + echo "The workflow is ZWECONF and should end in step 'init_zowe'" + STATUS="FINISHED" + else + echo "The workflow is ZWECONF but ended in different step: '$STEP_NAME'" >>$LOG_DIR/report.txt + exit -1 + fi + else + echo "Workflow ended with an error and it is not ZWECONF." >>$LOG_DIR/report.txt + echo $RESP >>$LOG_DIR/report.txt + exit -1 + fi + elif [ "$STATUS_NAME" = "complete" ]; then + echo "Workflow finished successfully." STATUS="FINISHED" - else - echo "The workflow is ZWECONF but ended in different step: '$STEP_NAME'" >> report.txt - exit -1 fi - else - echo "Workflow ended with an error and it is not ZWECONF." >> report.txt - echo $RESP >> report.txt - exit -1 - fi -elif [ "$STATUS_NAME" = "complete" ] -then - echo "Workflow finished successfully." - STATUS="FINISHED" -fi -done + 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` +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}" $? From a55de535a5c2d9b1f04dd3bfa53f2369de7d03c9 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Thu, 31 Oct 2024 15:58:01 -0400 Subject: [PATCH 034/121] fix zosmf_system parameter Signed-off-by: MarkAckert --- pswi/ZWECONF_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index d12ff959d0..a8ba9fbf7a 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -1,6 +1,6 @@ export ZOSMF_URL="https://zzow10.zowe.marist.cloud" export ZOSMF_PORT=10443 -export ZOSMF_SYSTEM="S0W1_" +export ZOSMF_SYSTEM="S0W1" export JOBNAME="ZWECONF1" export HOST=${ZOSMF_URL#https:\/\/} export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" From 363228a2292f10164537d42e76f75e525877abad Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 4 Nov 2024 15:57:14 +0100 Subject: [PATCH 035/121] smol changes Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index a7a65263c4..df936b3f56 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -55,11 +55,11 @@ pwd cp ../example-zowe.yaml example-zowe.yaml -diff example-zowe.yaml zowe_.yaml > diff.txt || true +diff example-zowe.yaml zowe_.yaml >diff.txt || true -diff diff.txt scripts/base_diff.txt > final_diff.txt || true +diff diff.txt scripts/base_diff.txt >final_diff.txt || true -concat=`cat final_diff.txt` +concat=$(cat final_diff.txt) if [ -n "$concat" ] then From 1253903a0a4cc731dabe64dfda5debfb22a9d69c Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 4 Nov 2024 16:47:08 +0100 Subject: [PATCH 036/121] probably fixed the log problem Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index df936b3f56..f3a927f036 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -4,6 +4,9 @@ export ZOSMF_SYSTEM="S0W1" export JOBNAME="ZWECONF1" export HOST=${ZOSMF_URL#https:\/\/} export BASE_URL="${ZOSMF_URL}:${ZOSMF_PORT}" +CURR_TIME=$(date +%s) +export LOG_DIR="logs/$CURR_TIME" +mkdir -p $LOG_DIR WORK_MOUNT="/tmp" echo "Changing runtime path in ZWECONF.properties." @@ -66,6 +69,7 @@ then echo "There are some discrepancies between the example-zowe.yaml and the zowe.yaml created by ZWECONF.xml workflow." echo "Please add or delete the workflow so everything is there." echo "First line is from the example and the line bellow is from the workflow." + #TODO: while loop final_diff.txt and delete every line that doesn't start with '<' and redirect into final_final_diff.txt and do cat final_final_diff.txt echo $concat exit -1 fi From 0bb131cab460697d934e2d25316b9eca9d9d4cc3 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 4 Nov 2024 17:16:23 +0100 Subject: [PATCH 037/121] while Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index f3a927f036..41901ba08a 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -69,7 +69,11 @@ then echo "There are some discrepancies between the example-zowe.yaml and the zowe.yaml created by ZWECONF.xml workflow." echo "Please add or delete the workflow so everything is there." echo "First line is from the example and the line bellow is from the workflow." - #TODO: while loop final_diff.txt and delete every line that doesn't start with '<' and redirect into final_final_diff.txt and do cat final_final_diff.txt - echo $concat + while read -r line; do + if [[ "$line" =~ ^\< ]]; then + echo $line >> final_final_diff.txt + fi + done Date: Mon, 4 Nov 2024 16:09:23 -0500 Subject: [PATCH 038/121] all zlux ui plugin tests through apiml Signed-off-by: MarkAckert --- tests/sanity/test/e2e/test-07-iframe.js | 2 +- tests/sanity/test/e2e/test-08-subsys.js | 2 +- tests/sanity/test/e2e/test-10-api-catalog.js | 4 +++- tests/sanity/test/e2e/test-11-workflows.js | 2 +- tests/sanity/test/e2e/test-12-angular-sample.js | 2 +- tests/sanity/test/e2e/test-13-react-sample.js | 2 +- tests/sanity/test/e2e/test-14-ip-explorer.js | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/sanity/test/e2e/test-07-iframe.js b/tests/sanity/test/e2e/test-07-iframe.js index 2962918ba4..13c7b668b1 100644 --- a/tests/sanity/test/e2e/test-07-iframe.js +++ b/tests/sanity/test/e2e/test-07-iframe.js @@ -47,7 +47,7 @@ describe.skip(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); diff --git a/tests/sanity/test/e2e/test-08-subsys.js b/tests/sanity/test/e2e/test-08-subsys.js index d10735e604..f4cfcff868 100644 --- a/tests/sanity/test/e2e/test-08-subsys.js +++ b/tests/sanity/test/e2e/test-08-subsys.js @@ -40,7 +40,7 @@ describe.skip(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); diff --git a/tests/sanity/test/e2e/test-10-api-catalog.js b/tests/sanity/test/e2e/test-10-api-catalog.js index ab42adab69..9723150c16 100644 --- a/tests/sanity/test/e2e/test-10-api-catalog.js +++ b/tests/sanity/test/e2e/test-10-api-catalog.js @@ -45,7 +45,7 @@ describe(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); @@ -79,6 +79,8 @@ describe(`test ${APP_TO_TEST}`, function() { try { const searchBox = await waitUntilElement(driver, '.search-bar'); expect(searchBox).to.be.an('object'); + await saveScreenshotWithIframeAppContext(this, driver, testName, 'login-pre-success', APP_TO_TEST, MVD_IFRAME_APP_CONTENT); + } catch (e) { // try to save screenshot for debug purpose await saveScreenshotWithIframeAppContext(this, driver, testName, 'login-failed', APP_TO_TEST, MVD_IFRAME_APP_CONTENT); diff --git a/tests/sanity/test/e2e/test-11-workflows.js b/tests/sanity/test/e2e/test-11-workflows.js index 2bfde0962d..df0b21dc77 100644 --- a/tests/sanity/test/e2e/test-11-workflows.js +++ b/tests/sanity/test/e2e/test-11-workflows.js @@ -40,7 +40,7 @@ describe.skip(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); diff --git a/tests/sanity/test/e2e/test-12-angular-sample.js b/tests/sanity/test/e2e/test-12-angular-sample.js index addeb9fc4c..57248ca41d 100644 --- a/tests/sanity/test/e2e/test-12-angular-sample.js +++ b/tests/sanity/test/e2e/test-12-angular-sample.js @@ -44,7 +44,7 @@ describe.skip(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); diff --git a/tests/sanity/test/e2e/test-13-react-sample.js b/tests/sanity/test/e2e/test-13-react-sample.js index d2fee77eca..ac01c05d0f 100644 --- a/tests/sanity/test/e2e/test-13-react-sample.js +++ b/tests/sanity/test/e2e/test-13-react-sample.js @@ -44,7 +44,7 @@ describe.skip(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); diff --git a/tests/sanity/test/e2e/test-14-ip-explorer.js b/tests/sanity/test/e2e/test-14-ip-explorer.js index 99f9eb3326..0b274fd66d 100644 --- a/tests/sanity/test/e2e/test-14-ip-explorer.js +++ b/tests/sanity/test/e2e/test-14-ip-explorer.js @@ -40,7 +40,7 @@ describe(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); From 1ee3ed920e8cbd196a8430daaa25da0e5d10791b Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Mon, 4 Nov 2024 16:23:27 -0500 Subject: [PATCH 039/121] missed one port Signed-off-by: MarkAckert --- tests/sanity/test/e2e/test-10-api-catalog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sanity/test/e2e/test-10-api-catalog.js b/tests/sanity/test/e2e/test-10-api-catalog.js index 9723150c16..ba53108906 100644 --- a/tests/sanity/test/e2e/test-10-api-catalog.js +++ b/tests/sanity/test/e2e/test-10-api-catalog.js @@ -45,7 +45,7 @@ describe(`test ${APP_TO_TEST}`, function() { // load MVD login page await loginMVD( driver, - `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_ZLUX_HTTPS_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, + `https://${process.env.ZOWE_EXTERNAL_HOST}:${process.env.ZOWE_API_MEDIATION_GATEWAY_HTTP_PORT}/zlux/ui/v1/ZLUX/plugins/org.zowe.zlux.bootstrap/web/`, process.env.SSH_USER, process.env.SSH_PASSWD ); From 39077107083847687d413cb9ab2b47979d2df027 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Tue, 5 Nov 2024 16:09:14 +0100 Subject: [PATCH 040/121] some more info added Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index 41901ba08a..186897ccb8 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -67,13 +67,20 @@ concat=$(cat final_diff.txt) if [ -n "$concat" ] then echo "There are some discrepancies between the example-zowe.yaml and the zowe.yaml created by ZWECONF.xml workflow." - echo "Please add or delete the workflow so everything is there." - echo "First line is from the example and the line bellow is from the workflow." + echo "Please add to or delete from the ZWECONF.xml workflow what needs or doesn't need to be there." + echo "Eg. if there is a new variable you need to add it first to the workflow variables, then add the variable to the" + echo "'main_variables' step and then also to the step where the zowe.yaml is created." + echo "If there was added/deleted just a comment in the example-zowe.yaml please add it also to the workflow so" + echo "this step is not failing." + echo "Here is the output from the diff command:" # They will surely know what is diff cmd, right while read -r line; do if [[ "$line" =~ ^\< ]]; then echo $line >> final_final_diff.txt fi done Date: Wed, 6 Nov 2024 09:30:17 +0100 Subject: [PATCH 041/121] Use xplatform for logging Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 3 ++- bin/libs/common.ts | 33 +++++++++------------------------ 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47b1fe90de..4d0ce09f1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Bugfix: When logging `zwe` command, sometimes the log has wrong file tag and the log is unreadable. [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#4064](https://github.com/zowe/zowe-install-packaging/pull/4064) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) diff --git a/bin/libs/common.ts b/bin/libs/common.ts index ad3457926c..47bdd94dcc 100644 --- a/bin/libs/common.ts +++ b/bin/libs/common.ts @@ -128,36 +128,21 @@ export function date(...args: string[]): string|undefined { let logExists = false; -let logFile:std.File|null = null; function writeLog(message: string): boolean { + const filename = std.getenv('ZWE_PRIVATE_LOG_FILE'); + if (!filename) { + return false; + } + logExists = fs.fileExists(filename); if (!logExists) { - const filename = std.getenv('ZWE_PRIVATE_LOG_FILE'); - if (filename) { + fs.createFile(filename, 0o640, message); logExists = fs.fileExists(filename); - if (!logExists) { - fs.createFile(filename, 0o640, message); - logExists = fs.fileExists(filename); - } - if (logExists) { - let errObj = {errno:undefined}; - logFile = std.open(filename, 'w', errObj); - if (errObj.errno) { - printError(`Error opening file ${filename}, errno=${errObj.errno}`); - logFile=null; - logExists=false; - return false; - } - } - } - } - if (logFile===undefined || logFile===null) { - return false; } else { - //TODO this does utf8. should we flip it to 1047 on zos? - logFile.puts(message); - return true; + xplatform.appendFileUTF8(filename, xplatform.AUTO_DETECT, message); + return true; } + return logExists; } From d8f566b05c7c8fd4552a117c560d85c5362d240a Mon Sep 17 00:00:00 2001 From: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:31:50 +0100 Subject: [PATCH 042/121] Update CHANGELOG.md Signed-off-by: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d0ce09f1e..a1867a095a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Bugfix: When logging `zwe` command, sometimes the log has wrong file tag and the log is unreadable. [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Bugfix: When logging `zwe` command, sometimes the log has wrong file tag and the log is unreadable. [#4071](https://github.com/zowe/zowe-install-packaging/pull/4071) - Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#4064](https://github.com/zowe/zowe-install-packaging/pull/4064) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) From 91b1e6b5d0912e80f2719988f75f20385ec70f43 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 6 Nov 2024 12:59:04 +0100 Subject: [PATCH 043/121] line needed splitting Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index 186897ccb8..c58e53f922 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -80,7 +80,8 @@ then done Date: Wed, 6 Nov 2024 13:06:13 +0100 Subject: [PATCH 044/121] formatting Signed-off-by: mm667937 --- pswi/03_create.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 16203c2ac4..9915adfd2b 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -151,13 +151,13 @@ echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECONF;" >>JCL echo "sed 's|UTF-8|IBM-1047|g' _ZWECONF > ZWECONF;" >>JCL echo "cp -T ZWECONF \$target;" >>JCL echo "/*" >>JCL -echo "//CHMODZWE EXEC PGM=BPXBATCH" >> JCL -echo "//STDOUT DD SYSOUT=*" >> JCL -echo "//STDERR DD SYSOUT=*" >> JCL -echo "//STDPARM DD *" >> JCL -echo "SH set -x;set -e;" >> JCL -echo "chmod -R 777 ${ZOWE_MOUNT};" >> JCL -echo "/*" >> JCL +echo "//CHMODZWE EXEC PGM=BPXBATCH" >>JCL +echo "//STDOUT DD SYSOUT=*" >>JCL +echo "//STDERR DD SYSOUT=*" >>JCL +echo "//STDPARM DD *" >>JCL +echo "SH set -x;set -e;" >>JCL +echo "chmod -R 777 ${ZOWE_MOUNT};" >>JCL +echo "/*" >>JCL sh scripts/submit_jcl.sh "$(cat JCL)" if [ $? -gt 0 ]; then exit -1; fi From 2710f40cbe9df2a73b49655b2f512eb50476c95d Mon Sep 17 00:00:00 2001 From: mm667937 Date: Thu, 7 Nov 2024 14:37:13 +0100 Subject: [PATCH 045/121] Fix of the workflow so the test can finally pass Signed-off-by: mm667937 --- pswi/ZWECONF_test.sh | 2 +- workflows/files/ZWECONF.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pswi/ZWECONF_test.sh b/pswi/ZWECONF_test.sh index c58e53f922..2fb2696dc3 100755 --- a/pswi/ZWECONF_test.sh +++ b/pswi/ZWECONF_test.sh @@ -68,7 +68,7 @@ if [ -n "$concat" ] then echo "There are some discrepancies between the example-zowe.yaml and the zowe.yaml created by ZWECONF.xml workflow." echo "Please add to or delete from the ZWECONF.xml workflow what needs or doesn't need to be there." - echo "Eg. if there is a new variable you need to add it first to the workflow variables, then add the variable to the" + echo "E.g. if there is a new variable you need to add it first to the workflow variables, then add the variable to the" echo "'main_variables' step and then also to the step where the zowe.yaml is created." echo "If there was added/deleted just a comment in the example-zowe.yaml please add it also to the workflow so" echo "this step is not failing." diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index cbee9b53e0..9b8032d02c 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -1809,7 +1809,7 @@ echo ' # ZWED_TN3270_PORT: 23' >> "${instance-zowe_runtimeDirectory}/zowe.yam echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # You can define any Zowe message portions to be checked for and the message added to the' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # system log upon its logging, truncated to 126 characters.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # system log upon its logging, truncated to 126 characters (wildcards are not supported).' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' sysMessages:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # # Zowe starting' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' - "ZWEL0021I"' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From 4874b4dd3db9bc9c84befedaba996e441ef89aee Mon Sep 17 00:00:00 2001 From: mm667937 Date: Tue, 12 Nov 2024 17:29:41 +0100 Subject: [PATCH 046/121] paxing uss instead of zfs Signed-off-by: mm667937 --- pswi/03_create.sh | 6 +++--- pswi/05_test.sh | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 3f0727843c..5d40284fb8 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -286,9 +286,9 @@ echo "Showing EXPORT JCL how it looks before the change" #else echo "Changing jobcard and adding SYSAFF" sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT >EXPJCL0 -sed "s|//.*gimzipInputFile.*,|EXPJCL1 -sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 -sed "s|// DD \*||g" EXPJCL2 >EXPJCL +#sed "s|//.*gimzipInputFile.*,|EXPJCL1 +#sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 +#sed "s|// DD \*||g" EXPJCL2 >EXPJCL # sed "s|ZOS003.ZWE.PSWI.|ZWE.PSWI.|g" EXPJCL3 >EXPJCL #fi diff --git a/pswi/05_test.sh b/pswi/05_test.sh index 94afd818a2..1c51c0312e 100644 --- a/pswi/05_test.sh +++ b/pswi/05_test.sh @@ -71,4 +71,5 @@ if [ $? -gt 0 ]; then exit -1; fi echo " Running the deployment test for z/OSMF version 2.3" pip install requests -python scripts/deploy_test_2_3.py +#TODO: add creation of "Install zFS Data Sets" JCL for 3.1 zosmf +#python scripts/deploy_test_2_3.py From 055653d87cc0af64f34ef8c64aa7c9fad88c183d Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 13 Nov 2024 11:08:45 +0100 Subject: [PATCH 047/121] disable test for workflows because they run on top of testing dataset that are skipped for now Signed-off-by: mm667937 --- pswi/03_create.sh | 4 ++-- pswi/PSWI-marist.sh | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 5d40284fb8..b82011a09d 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -293,10 +293,10 @@ sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT >EXPJCL0 #fi -sh scripts/submit_jcl.sh "$(cat EXPJCL)" +sh scripts/submit_jcl.sh "$(cat EXPJCL0)" if [ $? -gt 0 ]; then exit -1; fi -rm ./EXPJCL +rm ./EXPJCL0 rm ./EXPORT # Pax the directory diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 50c719367d..c95034c8bd 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -136,11 +136,11 @@ if [ $presmpe -eq 0 ]; then sh 05_test.sh test=$? - if [ $test -eq 0 ]; then + #if [ $test -eq 0 ]; then #test the workflows - sh 051_test_workflows.sh - wf_test=$? - fi + #sh 051_test_workflows.sh + #wf_test=$? + #fi # Cleanup after the test sh 06_test_cleanup.sh fi From 7de81aef969bc869285687979b81e13b7f73904b Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 14 Nov 2024 12:51:03 +0100 Subject: [PATCH 048/121] Use configmgr to read yaml in shell Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 3 +- bin/commands/init/apfauth/index.sh | 6 ++-- bin/commands/init/certificate/index.sh | 44 +++++++++++++------------- bin/commands/init/index.sh | 4 +-- bin/commands/init/mvs/index.sh | 10 +++--- bin/commands/init/security/index.sh | 24 +++++++------- bin/commands/init/stc/index.sh | 20 ++++++------ bin/commands/init/vsam/index.sh | 16 +++++----- bin/libs/common.sh | 6 ++-- bin/libs/json.sh | 27 ++++++++++++++++ 10 files changed, 94 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b909772b9f..a57296ab00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Enhancement: command `zwe init` does not require NodeJS [#40??](https://github.com/zowe/zowe-install-packaging/pull/40??) +- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#4071](https://github.com/zowe/zowe-install-packaging/pull/4071) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: command `zwe diagnose` in javascript only [#4061](https://github.com/zowe/zowe-install-packaging/pull/4061) - Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) diff --git a/bin/commands/init/apfauth/index.sh b/bin/commands/init/apfauth/index.sh index d248cbb904..06398f846d 100644 --- a/bin/commands/init/apfauth/index.sh +++ b/bin/commands/init/apfauth/index.sh @@ -19,10 +19,10 @@ auth_libs="authLoadlib authPluginLib" ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi @@ -32,7 +32,7 @@ fi job_has_failures= for key in ${auth_libs}; do # read def and validate - ds=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.${key}") + ds=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.${key}") if [ -z "${ds}" ]; then # authLoadlib can be empty if [ "${key}" = "authLoadlib" ]; then diff --git a/bin/commands/init/certificate/index.sh b/bin/commands/init/certificate/index.sh index a1d2f5c8dd..f226009c5b 100644 --- a/bin/commands/init/certificate/index.sh +++ b/bin/commands/init/certificate/index.sh @@ -13,24 +13,24 @@ ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" ############################### # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi # read JCL library and validate -jcllib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") +jcllib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") if [ -z "${jcllib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom JCL library (zowe.setup.dataset.jcllib) is not defined in Zowe YAML configuration file." "" 157 fi -security_product=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.product") -security_users_zowe=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zowe") -security_groups_admin=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.admin") +security_product=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.product") +security_users_zowe=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zowe") +security_groups_admin=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.admin") # read cert type and validate -cert_type=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.type") +cert_type=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.type") if [ -z "${cert_type}" ]; then print_error_and_exit "Error ZWEL0157E: Certificate type (zowe.setup.certificate.type) is not defined in Zowe YAML configuration file." "" 157 fi @@ -41,16 +41,16 @@ fi # read cert dname for item in caCommonName commonName orgUnit org locality state country; do var_name="dname_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.dname.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.dname.${item}") eval "${var_name}=\"${var_val}\"" done # read cert validity -cert_validity=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.validity") +cert_validity=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.validity") if [ "${cert_type}" = "PKCS12" ]; then # read keystore info for item in directory lock name password caAlias caPassword; do var_name="pkcs12_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.pkcs12.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.pkcs12.${item}") eval "${var_name}=\"${var_val}\"" done if [ -z "${pkcs12_directory}" ]; then @@ -59,7 +59,7 @@ if [ "${cert_type}" = "PKCS12" ]; then # read keystore import info for item in keystore password alias; do var_name="pkcs12_import_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.pkcs12.import.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.pkcs12.import.${item}") eval "${var_name}=\"${var_val}\"" done if [ -n "${pkcs12_import_keystore}" ]; then @@ -75,47 +75,47 @@ elif [[ "${cert_type}" == JCE*KS ]]; then # read keyring info for item in owner name label caLabel; do var_name="keyring_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.${item}") eval "${var_name}=\"${var_val}\"" done if [ -z "${keyring_name}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe keyring name (zowe.setup.certificate.keyring.name) is not defined in Zowe YAML configuration file." "" 157 fi - keyring_import_dsName=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.import.dsName") - keyring_import_password=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.import.password") + keyring_import_dsName=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.import.dsName") + keyring_import_password=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.import.password") if [ -n "${keyring_import_dsName}" ]; then keyring_option=3 if [ -z "${keyring_import_password}" ]; then print_error_and_exit "Error ZWEL0157E: The password for data set storing importing certificate (zowe.setup.certificate.keyring.import.password) is not defined in Zowe YAML configuration file." "" 157 fi fi - keyring_connect_user=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.connect.user") - keyring_connect_label=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.connect.label") + keyring_connect_user=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.connect.user") + keyring_connect_label=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.connect.label") if [ -n "${keyring_connect_label}" ]; then keyring_option=2 fi fi # read keystore domains -cert_import_CAs=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',') +cert_import_CAs=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',') # read keystore domains -cert_domains=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.san" | tr '\n' ',') +cert_domains=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.san" | tr '\n' ',') if [ -z "${cert_domains}" ]; then - cert_domains=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.externalDomains" | tr '\n' ',') + cert_domains=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.externalDomains" | tr '\n' ',') fi # read z/OSMF info for item in user ca; do var_name="zosmf_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.zOSMF.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.keyring.zOSMF.${item}") eval "${var_name}=\"${var_val}\"" done for item in host port; do var_name="zosmf_${item}" - var_val=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zOSMF.${item}") + var_val=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zOSMF.${item}") eval "${var_name}=\"${var_val}\"" done keyring_trust_zosmf= -verify_certificates=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.verifyCertificates" | upper_case) +verify_certificates=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.verifyCertificates" | upper_case) if [ "${verify_certificates}" = "STRICT" -o "${verify_certificates}" = "NONSTRICT" ]; then keyring_trust_zosmf="--trust-zosmf" else diff --git a/bin/commands/init/index.sh b/bin/commands/init/index.sh index a2815f2b49..ba87c5ee57 100755 --- a/bin/commands/init/index.sh +++ b/bin/commands/init/index.sh @@ -36,10 +36,10 @@ if [ -z "${yaml_java_home}" ]; then fi fi # zowe.runtimeDirectory -require_zowe_yaml +require_zowe_yaml "skipnode" update_zowe_runtime_dir= # do we have zowe.runtimeDirectory defined in zowe.yaml? -yaml_runtime_dir=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.runtimeDirectory") +yaml_runtime_dir=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.runtimeDirectory") if [ -n "${yaml_runtime_dir}" ]; then result=$(are_directories_same "${yaml_runtime_dir}" "${ZWE_zowe_runtimeDirectory}") code=$? diff --git a/bin/commands/init/mvs/index.sh b/bin/commands/init/mvs/index.sh index 7f1102c95d..ab724fa206 100644 --- a/bin/commands/init/mvs/index.sh +++ b/bin/commands/init/mvs/index.sh @@ -22,10 +22,10 @@ authPluginLib|Zowe authorized plugin library|dsntype(library) dsorg(po) recfm(u) ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi @@ -39,7 +39,7 @@ while read -r line; do spec=$(echo "${line}" | awk -F"|" '{print $3}') # read def and validate - ds=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.${key}") + ds=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.${key}") if [ -z "${ds}" ]; then # authLoadlib can be empty if [ "${key}" = "authLoadlib" ]; then @@ -76,7 +76,7 @@ if [ "${ds_existence}" = "true" ] && [ "${ZWE_CLI_PARAMETER_ALLOW_OVERWRITE}" ! else ############################### # copy sample lib members - parmlib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.parmlib") + parmlib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.parmlib") for ds in ZWESIP00; do print_message "Copy ${prefix}.${ZWE_PRIVATE_DS_SZWESAMP}(${ds}) to ${parmlib}(${ds})" data_set_copy_to_data_set "${prefix}" "${prefix}.${ZWE_PRIVATE_DS_SZWESAMP}(${ds})" "${parmlib}(${ds})" "${ZWE_CLI_PARAMETER_ALLOW_OVERWRITE}" @@ -88,7 +88,7 @@ else ############################### # copy auth lib members # FIXME: data_set_copy_to_data_set cannot be used to copy program? - authLoadlib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authLoadlib") + authLoadlib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authLoadlib") if [ -n "${authLoadlib}" ]; then for ds in ZWESIS01 ZWESAUX ZWESISDL; do print_message "Copy components/zss/LOADLIB/${ds} to ${authLoadlib}(${ds})" diff --git a/bin/commands/init/security/index.sh b/bin/commands/init/security/index.sh index b0d2c48551..a07c135ef8 100644 --- a/bin/commands/init/security/index.sh +++ b/bin/commands/init/security/index.sh @@ -18,51 +18,51 @@ print_level1_message "Run Zowe security configurations" ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi # read JCL library and validate -jcllib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") +jcllib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") if [ -z "${jcllib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom JCL library (zowe.setup.dataset.jcllib) is not defined in Zowe YAML configuration file." "" 157 fi -security_product=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.product") +security_product=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.product") if [ -z "${security_product}" ]; then security_product=RACF fi -security_groups_admin=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.admin") +security_groups_admin=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.admin") if [ -z "${security_groups_admin}" ]; then security_groups_admin=${ZWE_PRIVATE_DEFAULT_ADMIN_GROUP} fi -security_groups_stc=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.stc") +security_groups_stc=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.stc") if [ -z "${security_groups_stc}" ]; then security_groups_stc=${ZWE_PRIVATE_DEFAULT_ADMIN_GROUP} fi -security_groups_sysProg=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.sysProg") +security_groups_sysProg=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.groups.sysProg") if [ -z "${security_groups_sysProg}" ]; then security_groups_sysProg=${ZWE_PRIVATE_DEFAULT_ADMIN_GROUP} fi -security_users_zowe=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zowe") +security_users_zowe=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zowe") if [ -z "${security_users_zowe}" ]; then security_users_zowe=${ZWE_PRIVATE_DEFAULT_ZOWE_USER} fi -security_users_zis=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zis") +security_users_zis=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.users.zis") if [ -z "${security_users_zis}" ]; then security_users_zis=${ZWE_PRIVATE_DEFAULT_ZIS_USER} fi -security_stcs_zowe=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zowe") +security_stcs_zowe=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zowe") if [ -z "${security_stcs_zowe}" ]; then security_stcs_zowe=${ZWE_PRIVATE_DEFAULT_ZOWE_STC} fi -security_stcs_zis=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zis") +security_stcs_zis=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zis") if [ -z "${security_stcs_zis}" ]; then security_stcs_zis=${ZWE_PRIVATE_DEFAULT_ZIS_STC} fi -security_stcs_aux=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.aux") +security_stcs_aux=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.aux") if [ -z "${security_stcs_aux}" ]; then security_stcs_aux=${ZWE_PRIVATE_DEFAULT_AUX_STC} fi diff --git a/bin/commands/init/stc/index.sh b/bin/commands/init/stc/index.sh index c26cf6e7e8..f3de7377e9 100644 --- a/bin/commands/init/stc/index.sh +++ b/bin/commands/init/stc/index.sh @@ -19,47 +19,47 @@ proclibs="ZWESLSTC ZWESISTC ZWESASTC" ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi # read PROCLIB and validate -proclib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.proclib") +proclib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.proclib") if [ -z "${proclib}" ]; then print_error_and_exit "Error ZWEL0157E: PROCLIB (zowe.setup.dataset.proclib) is not defined in Zowe YAML configuration file." "" 157 fi # read JCL library and validate -jcllib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") +jcllib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") if [ -z "${jcllib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom JCL library (zowe.setup.dataset.jcllib) is not defined in Zowe YAML configuration file." "" 157 fi # read PARMLIB and validate -parmlib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.parmlib") +parmlib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.parmlib") if [ -z "${parmlib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom parameter library (zowe.setup.dataset.parmlib) is not defined in Zowe YAML configuration file." "" 157 fi # read LOADLIB and validate -authLoadlib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authLoadlib") +authLoadlib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authLoadlib") if [ -z "${authLoadlib}" ]; then # authLoadlib can be empty authLoadlib="${prefix}.${ZWE_PRIVATE_DS_SZWEAUTH}" fi -authPluginLib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authPluginLib") +authPluginLib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.authPluginLib") if [ -z "${authPluginLib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom load library (zowe.setup.dataset.authPluginLib) is not defined in Zowe YAML configuration file." "" 157 fi -security_stcs_zowe=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zowe") +security_stcs_zowe=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zowe") if [ -z "${security_stcs_zowe}" ]; then security_stcs_zowe=${ZWE_PRIVATE_DEFAULT_ZOWE_STC} fi -security_stcs_zis=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zis") +security_stcs_zis=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.zis") if [ -z "${security_stcs_zis}" ]; then security_stcs_zis=${ZWE_PRIVATE_DEFAULT_ZIS_STC} fi -security_stcs_aux=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.aux") +security_stcs_aux=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.security.stcs.aux") if [ -z "${security_stcs_aux}" ]; then security_stcs_aux=${ZWE_PRIVATE_DEFAULT_AUX_STC} fi diff --git a/bin/commands/init/vsam/index.sh b/bin/commands/init/vsam/index.sh index f40e606b6a..e279ff07b7 100644 --- a/bin/commands/init/vsam/index.sh +++ b/bin/commands/init/vsam/index.sh @@ -18,43 +18,43 @@ print_level1_message "Create VSAM storage for Zowe Caching Service" ############################### # validation -require_zowe_yaml +require_zowe_yaml "skipnode" -caching_storage=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".components.caching-service.storage.mode" | upper_case) +caching_storage=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".components.caching-service.storage.mode" | upper_case) if [ "${caching_storage}" != "VSAM" ]; then print_error "Warning ZWEL0301W: Zowe Caching Service is not configured to use VSAM. Command skipped." return 0 fi # read prefix and validate -prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") +prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi # read JCL library and validate -jcllib=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") +jcllib=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.jcllib") if [ -z "${jcllib}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe custom JCL library (zowe.setup.dataset.jcllib) is not defined in Zowe YAML configuration file." "" 157 fi -vsam_mode=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.mode") +vsam_mode=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.mode") if [ -z "${vsam_mode}" ]; then vsam_mode=NONRLS fi vsam_volume= if [ "${vsam_mode}" = "NONRLS" ]; then - vsam_volume=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.volume") + vsam_volume=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.volume") if [ -z "${vsam_volume}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe Caching Service VSAM data set volume (zowe.setup.vsam.volume) is not defined in Zowe YAML configuration file." "" 157 fi fi vsam_storageClass= if [ "${vsam_mode}" = "RLS" ]; then - vsam_storageClass=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.storageClass") + vsam_storageClass=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.vsam.storageClass") if [ -z "${vsam_storageClass}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe Caching Service VSAM data set RLS storage class (zowe.setup.vsam.storageClass) is not defined in Zowe YAML configuration file." "" 157 fi fi -vsam_name=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".components.caching-service.storage.vsam.name") +vsam_name=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".components.caching-service.storage.vsam.name") if [ -z "${vsam_name}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe Caching Service VSAM data set name (components.caching-service.storage.vsam.name) is not defined in Zowe YAML configuration file." "" 157 fi diff --git a/bin/libs/common.sh b/bin/libs/common.sh index 5db74cc256..52815dfe6a 100644 --- a/bin/libs/common.sh +++ b/bin/libs/common.sh @@ -46,9 +46,9 @@ check_configmgr_enabled() { } require_zowe_yaml() { - # node is required to read yaml file - require_node - + if [ -z "${1}" ]; then + require_node + fi if [ -z "${ZWE_CLI_PARAMETER_CONFIG}" ]; then print_error_and_exit "Error ZWEL0108E: Zowe YAML config file is required." "" 108 elif [ ! -f "${ZWE_CLI_PARAMETER_CONFIG}" ]; then diff --git a/bin/libs/json.sh b/bin/libs/json.sh index 5b5342a4a3..b85c93951e 100644 --- a/bin/libs/json.sh +++ b/bin/libs/json.sh @@ -109,6 +109,33 @@ read_yaml() { return ${code} } +read_yaml_configmgr() { + file="${1}" + key=$(echo "${2}" | tr '.' '/') + ignore_null="${3:-true}" + + print_trace "- read_yaml_configmgr process ${file} and extract '${2} -> ${key}'" + + configmgr="${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr" + schema="${ZWE_zowe_runtimeDirectory}/schemas/server-common.json:${ZWE_zowe_runtimeDirectory}/schemas/zowe-yaml-schema.json" + + result=$(_CEE_RUNOPTS="XPLINK(ON)" "${configmgr}" -s "$schema" -p "FILE(${file})" extract "${key}" 2>&1); + code=$? + + print_trace " * Exit code: ${code}" + print_trace " * Output:" + print_trace "$(padding_left "${result}" " ")" + + if [ ${code} -eq 0 ]; then + if [ "${ignore_null}" = "true" ]; then + if [ "${result}" = "null" -o "${result}" = "undefined" ]; then + result= + fi + fi + printf "${result}" + fi +} + read_json() { file="${1}" key="${2}" From 47296d2a6604d14e44079123cdcf320bd4a111f0 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 14 Nov 2024 12:54:58 +0100 Subject: [PATCH 049/121] Changelog update Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a57296ab00..67f8b4a3a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Enhancement: command `zwe init` does not require NodeJS [#40??](https://github.com/zowe/zowe-install-packaging/pull/40??) +- Enhancement: command `zwe init` does not require NodeJS [#4088](https://github.com/zowe/zowe-install-packaging/pull/4088) - Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#4071](https://github.com/zowe/zowe-install-packaging/pull/4071) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: command `zwe diagnose` in javascript only [#4061](https://github.com/zowe/zowe-install-packaging/pull/4061) From 5dea7ff73439ae8a4dec786fc368a6b089d23ee9 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Fri, 15 Nov 2024 14:27:01 +0100 Subject: [PATCH 050/121] Return empty string Signed-off-by: Martin Zeithaml --- CHANGELOG.md | 1 - bin/libs/json.sh | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67f8b4a3a7..5895368628 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,6 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` - Enhancement: command `zwe init` does not require NodeJS [#4088](https://github.com/zowe/zowe-install-packaging/pull/4088) -- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#4071](https://github.com/zowe/zowe-install-packaging/pull/4071) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: command `zwe diagnose` in javascript only [#4061](https://github.com/zowe/zowe-install-packaging/pull/4061) - Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) diff --git a/bin/libs/json.sh b/bin/libs/json.sh index b85c93951e..322361c3dc 100644 --- a/bin/libs/json.sh +++ b/bin/libs/json.sh @@ -122,6 +122,13 @@ read_yaml_configmgr() { result=$(_CEE_RUNOPTS="XPLINK(ON)" "${configmgr}" -s "$schema" -p "FILE(${file})" extract "${key}" 2>&1); code=$? + # When the item is not defined in config, configmgr returns + # code 0 and + # stdout = "error not found, reason=nnn" + if [[ "${result}" == "error not found, reason="* ]]; then + result="" + fi + print_trace " * Exit code: ${code}" print_trace " * Output:" print_trace "$(padding_left "${result}" " ")" From 30d2e0db22f50ec8f554cbb5e744420ef86c97f1 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml <66114686+Martin-Zeithaml@users.noreply.github.com> Date: Mon, 18 Nov 2024 14:40:42 +0100 Subject: [PATCH 051/121] Read yaml by configmgr (#4069) * Read yaml by configmgr Signed-off-by: Martin Zeithaml * Changelog update Signed-off-by: Martin Zeithaml * When not found, return empty string Signed-off-by: Martin Zeithaml * Changelog update Signed-off-by: Martin Zeithaml --------- Signed-off-by: Martin Zeithaml Co-authored-by: 1000TurquoisePogs --- CHANGELOG.md | 2 +- bin/commands/install/index.sh | 4 ++-- bin/libs/common.sh | 6 +++--- bin/libs/json.sh | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b909772b9f..3f8be7b246 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to the Zowe Installer will be documented in this file. ## `3.0.1` -- Bugfix: When `--log-dir` parameter for `zwe` command is a file, there might be an error "InternalError: stack overflow". [#40nn](https://github.com/zowe/zowe-install-packaging/pull/40nn) +- Enhancement: command `zwe install` does not require NodeJS [#4069](https://github.com/zowe/zowe-install-packaging/pull/4069) - Enhancement: new javascript funtion `getStatvfs()` to obtain information about the file sysytem [#3994](https://github.com/zowe/zowe-install-packaging/pull/3994) - Enhancement: command `zwe diagnose` in javascript only [#4061](https://github.com/zowe/zowe-install-packaging/pull/4061) - Enhancement: schema validation update for `zowe.job.name` and `zowe.job.prefix` [#4060](https://github.com/zowe/zowe-install-packaging/pull/4060) diff --git a/bin/commands/install/index.sh b/bin/commands/install/index.sh index 0fc9e7fad6..05a0455e6d 100644 --- a/bin/commands/install/index.sh +++ b/bin/commands/install/index.sh @@ -26,10 +26,10 @@ ${ZWE_PRIVATE_DS_SZWEEXEC}|Zowe executable utilities library|dsntype(library) ds if [ -n "${ZWE_CLI_PARAMETER_DATASET_PREFIX}" ]; then prefix="${ZWE_CLI_PARAMETER_DATASET_PREFIX}" else - require_zowe_yaml + require_zowe_yaml "skipnode" # read prefix and validate - prefix=$(read_yaml "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") + prefix=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.dataset.prefix") if [ -z "${prefix}" ]; then print_error_and_exit "Error ZWEL0157E: Zowe dataset prefix (zowe.setup.dataset.prefix) is not defined in Zowe YAML configuration file." "" 157 fi diff --git a/bin/libs/common.sh b/bin/libs/common.sh index 5db74cc256..52815dfe6a 100644 --- a/bin/libs/common.sh +++ b/bin/libs/common.sh @@ -46,9 +46,9 @@ check_configmgr_enabled() { } require_zowe_yaml() { - # node is required to read yaml file - require_node - + if [ -z "${1}" ]; then + require_node + fi if [ -z "${ZWE_CLI_PARAMETER_CONFIG}" ]; then print_error_and_exit "Error ZWEL0108E: Zowe YAML config file is required." "" 108 elif [ ! -f "${ZWE_CLI_PARAMETER_CONFIG}" ]; then diff --git a/bin/libs/json.sh b/bin/libs/json.sh index 5b5342a4a3..322361c3dc 100644 --- a/bin/libs/json.sh +++ b/bin/libs/json.sh @@ -109,6 +109,40 @@ read_yaml() { return ${code} } +read_yaml_configmgr() { + file="${1}" + key=$(echo "${2}" | tr '.' '/') + ignore_null="${3:-true}" + + print_trace "- read_yaml_configmgr process ${file} and extract '${2} -> ${key}'" + + configmgr="${ZWE_zowe_runtimeDirectory}/bin/utils/configmgr" + schema="${ZWE_zowe_runtimeDirectory}/schemas/server-common.json:${ZWE_zowe_runtimeDirectory}/schemas/zowe-yaml-schema.json" + + result=$(_CEE_RUNOPTS="XPLINK(ON)" "${configmgr}" -s "$schema" -p "FILE(${file})" extract "${key}" 2>&1); + code=$? + + # When the item is not defined in config, configmgr returns + # code 0 and + # stdout = "error not found, reason=nnn" + if [[ "${result}" == "error not found, reason="* ]]; then + result="" + fi + + print_trace " * Exit code: ${code}" + print_trace " * Output:" + print_trace "$(padding_left "${result}" " ")" + + if [ ${code} -eq 0 ]; then + if [ "${ignore_null}" = "true" ]; then + if [ "${result}" = "null" -o "${result}" = "undefined" ]; then + result= + fi + fi + printf "${result}" + fi +} + read_json() { file="${1}" key="${2}" From 3d47e50f2d1b039c87591cb7df6861693d826e44 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Tue, 19 Nov 2024 14:25:33 +0100 Subject: [PATCH 052/121] creation of "Install zFS Data Sets" JCL for 3.1 zosmf Signed-off-by: mm667937 --- pswi/05_test.sh | 6 +- pswi/PSWI-marist.sh | 8 +- pswi/scripts/deploy_test_2_3.py | 127 +++++++++++++++++++++++++------- 3 files changed, 109 insertions(+), 32 deletions(-) diff --git a/pswi/05_test.sh b/pswi/05_test.sh index 1c51c0312e..46a67a57a4 100644 --- a/pswi/05_test.sh +++ b/pswi/05_test.sh @@ -68,8 +68,8 @@ sh scripts/tmp_mounts.sh "${WORK_ZFS}" "${WORK_MOUNT}" if [ $? -gt 0 ]; then exit -1; fi # Run the deployment test -echo " Running the deployment test for z/OSMF version 2.3" +echo " Running the deployment test for z/OSMF version ${ZOSMF_V}" pip install requests -#TODO: add creation of "Install zFS Data Sets" JCL for 3.1 zosmf -#python scripts/deploy_test_2_3.py + +python scripts/deploy_test_2_3.py diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index c95034c8bd..50c719367d 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -136,11 +136,11 @@ if [ $presmpe -eq 0 ]; then sh 05_test.sh test=$? - #if [ $test -eq 0 ]; then + if [ $test -eq 0 ]; then #test the workflows - #sh 051_test_workflows.sh - #wf_test=$? - #fi + sh 051_test_workflows.sh + wf_test=$? + fi # Cleanup after the test sh 06_test_cleanup.sh fi diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 7163577ce5..347083af7d 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -29,8 +29,9 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo self.definition = izud["izud.pswi.descriptor"] self.datasets = self.definition["datasets"] + self.work_mount = work_mount self.swi_name = swi_name - + self.version = int(self.definition["version"]) for dataset in self.datasets: if dataset["zonedddefs"] is not None: for zonedddef in dataset["zonedddefs"]: @@ -38,6 +39,10 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo if dddef["path"] is not None: self.no_dddef = dddef["dddef"] self.old_mountp = dataset["mountpoint"] + self.tracks = int(dataset["tracks"]) + self.secondary = int(dataset["secondary"]) + self.new_zfs = self.new_name(dataset["dsname"]) + self.zfs_archid = dataset["archid"] for zone in self.definition["zones"]: if zone["type"] == "TARGET": @@ -56,7 +61,7 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo //SYSIN DD * -""".format(work_mount,self.pswi_path,self.volume) +""".format(self.work_mount,self.pswi_path,self.volume) self.job1_end = """ /* """ @@ -88,7 +93,14 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo REP TZONE({0}) RELATED({1}). """.format(self.tzone, self.dzone) - self.job3_path = """ ZONEEDIT DDDEF. + self.job3_path="" + if self.version >= 9: + self.job3_path = """ REP DDDEF({0}) PATH( + '{1}' + ). +""".format(self.no_dddef, self.new_mountp) + else: + self.job3_path = """ ZONEEDIT DDDEF. CHANGE PATH( '{0}'*, '{1}'*). @@ -99,10 +111,66 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo UCLIN. REP DZONE({0}) RELATED({1}). """.format(self.dzone, self.tzone) + + self.job4 = """//UNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO',COND=(0,LT) +//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) +//SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) +//SMPWKDIR DD PATH='{0}' +//SMPOUT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SMPDIR DD PATHDISP=KEEP, +// PATH='{1}' +//SYSIN DD * + + + + """.format(self.work_mount + "/workdir", self.pswi_path, self.zfs_archid, self.work_mount + "/" + self.new_zfs + ".#") + + def create_zfs(self): + new_zfs = {"cylsPri": int(self.tracks/15),"cylsSec": int(self.secondary/15),"volumes":[ self.volume ]} + new_zfs_url = "{0}/zosmf/restfiles/mfs/zfs/{1}".format(self.url, self.new_zfs + ".%23") + new_zfs_resp = requests.post(new_zfs_url, headers=self.headers, auth=(user, password), data=json.dumps(new_zfs), + verify=False) + print(new_zfs_resp) + if new_zfs_resp.status_code != 201: + print("Status code: {0}".format(new_zfs_resp.status_code)) + raise requests.exceptions.RequestException(new_zfs_resp.text) + + def create_directory(self): + dir_name = self.work_mount + "/" + self.new_zfs + ".%23" + dir_parms = {"type":"directory","mode":"rwxr-xrwx"} + dir_url = "{0}/zosmf/restfiles/fs{1}".format(self.url, dir_name) + dir_resp = requests.post(dir_url, headers=self.headers, auth=(user, password), data=json.dumps(dir_parms), + verify=False) + + if dir_resp.status_code != 201: + print("Status code: {0}".format(dir_resp.status_code)) + raise requests.exceptions.RequestException(dir_resp.text) + + def mount(self, dir=None, zfs=None, action="mount"): + if dir is None and zfs is None: + dir = self.work_mount + "/" + self.new_zfs + ".#" + zfs = self.new_zfs + ".%23" + action = "unmount" + elif dir is None or zfs is None: + raise TypeError("Wrong arguments") + + mount_parms = {"action": action, "mount-point": dir, "fs-type": "zFS", "mode": "rdwr"} + mount_url = "{0}/zosmf/restfiles/mfs/{1}".format(self.url, zfs) + mount_resp = requests.put(mount_url, headers=self.headers, auth=(user, password), data=json.dumps(mount_parms), + verify=False) + + if mount_resp.status_code != 204: + print("Status code: {0}".format(mount_resp.status_code)) + raise requests.exceptions.RequestException(mount_resp.text) def archdef(self, dataset): if dataset["dsname"].endswith(".CSI"): new_name = self.new_name(dataset["dsname"]) + elif dataset["dsname"].endswith(".ZFS") and self.version >= 9: + return "" else: new_name = self.new_name(dataset["dsname"]) + ".#" return """= 9: + jcl = jcl + self.job3_path + self.job3_endzone + self.job3_distribution + else: + jcl = jcl + self.job3_endzone + self.job3_path + self.job3_distribution for dataset in self.datasets: jcl = jcl + self.zone_template(dataset, self.dlib) return jcl + self.job3_endzone + "/*" def create_swi(self): - mount_parms = {"action": "mount", "mount-point": self.new_mountp, "fs-type": "zFS", "mode": "rdwr"} - mount_url = "{0}/zosmf/restfiles/mfs/{1}".format(self.url, self.zfs) - mount_resp = requests.put(mount_url, headers=self.headers, auth=(user, password), data=json.dumps(mount_parms), - verify=False) - if mount_resp.status_code != 204: - print("Status code: {0}".format(mount_resp.status_code)) - raise requests.exceptions.RequestException(mount_resp.text) + self.mount(self.new_mountp, self.zfs, "mount") parms = { "name": self.swi_name, @@ -249,25 +321,30 @@ def create_swi(self): deploy = Deploy_test(url, user, password, system, hlq, jobst1, jobst2, volume, tzone, dzone, mount, pswi_path, work_path, swi_name) - first = deploy.first_job() - second = deploy.second_job() - third = deploy.third_job() + unzip_job = deploy.first_job() + install_zfs = deploy.zfsInstall_job() + rename_datasets = deploy.second_job() + update_csi = deploy.third_job() try: submit_jcl = glob.glob('./*/submit_jcl.sh')[0] except IndexError: raise FileNotFoundError("\"submit_jcl.sh\" for submitting JCLs wasn't found. Make sure that it is in a subfolder of {0}".format(os.getcwd())) - - ec1 = subprocess.call(["sh", submit_jcl , first]) - if ec1 != 0: - raise OSError("The first job failed.") - ec2 = subprocess.call(["sh", submit_jcl, second]) - if ec2 != 0: - raise OSError("The second job failed.") - ec3 = subprocess.call(["sh", submit_jcl, third]) - if ec3 != 0: - raise OSError("The third job failed.") - + + unzip_rc = subprocess.call(["sh", submit_jcl , unzip_job]) + if unzip_rc != 0: + raise OSError("The unzip datasets job failed.") + install_rc = subprocess.call(["sh", submit_jcl , install_zfs]) + if install_rc != 0: + raise OSError("The install zFS datasets job failed.") + deploy.mount() # unmount + rename_rc = subprocess.call(["sh", submit_jcl, rename_datasets]) + if rename_rc != 0: + raise OSError("The rename datasets job failed.") + update_rc = subprocess.call(["sh", submit_jcl, update_csi]) + if update_rc != 0: + raise OSError("The update CSI job failed.") + deploy.create_swi() print("Portable software instance deployed successfully!") From bacb712b3af203f29ee8efbfab90bdf1bb9bad8a Mon Sep 17 00:00:00 2001 From: mm667937 Date: Tue, 19 Nov 2024 15:26:51 +0100 Subject: [PATCH 053/121] I need to unmount .# zFS because the script failed before it could be unmounted Signed-off-by: mm667937 --- pswi/06_test_cleanup.sh | 10 ++++++++++ pswi/scripts/deploy_test_2_3.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pswi/06_test_cleanup.sh b/pswi/06_test_cleanup.sh index a45144a454..28561b015e 100644 --- a/pswi/06_test_cleanup.sh +++ b/pswi/06_test_cleanup.sh @@ -130,10 +130,18 @@ echo "//SYSTSIN DD * " >>JCL echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS') + " >>JCL echo "IMMEDIATE" >>JCL echo "/*" >>JCL +echo "//UNMNTZF2 EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS.#') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL echo "//SYSPRINT DD SYSOUT=*" >>JCL echo "//SYSIN DD *" >>JCL echo " DELETE ${TEST_HLQ}.ZFS" >>JCL +echo " DELETE ${TEST_HLQ}.ZFS.#" >>JCL echo "/*" >>JCL sh scripts/submit_jcl.sh "$(cat JCL)" @@ -173,3 +181,5 @@ if [ "$ZOSMF_V" = "2.4" ]; then done fi + + diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 347083af7d..025325ae9d 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -133,7 +133,7 @@ def create_zfs(self): new_zfs_url = "{0}/zosmf/restfiles/mfs/zfs/{1}".format(self.url, self.new_zfs + ".%23") new_zfs_resp = requests.post(new_zfs_url, headers=self.headers, auth=(user, password), data=json.dumps(new_zfs), verify=False) - print(new_zfs_resp) + print("When this script fail this zFS {0} might not be unmounted!%23 is #".format(self.new_zfs + ".%23")) if new_zfs_resp.status_code != 201: print("Status code: {0}".format(new_zfs_resp.status_code)) raise requests.exceptions.RequestException(new_zfs_resp.text) From 879dedf751f95abfb9cedcc88e87d2051b21e2c1 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 09:45:21 +0100 Subject: [PATCH 054/121] issue4076Nodejs Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 9b8032d02c..730267f050 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -459,10 +459,10 @@ How we want to verify SSL certificates of services. Valid values are: - - Path to the NodeJS home - Path to the NodeJS home - node + + Path to the Node.js home + Path to the Node.js home + Node.js @@ -1899,17 +1899,17 @@ echo ' home: "$!{instance-java_home}"' >> "${instance-zowe_runtimeDirectory}/zo echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '#-------------------------------------------------------------------------------' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo '# node.js configuration' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo '# Node.js configuration' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '#' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo '# Some Zowe components requires node.js. Define the path where you have your' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo '# node.js is installed.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo '# Some Zowe components requires Node.js. Define the path where you have your' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo '# Node.js is installed.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '#' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# **NOTE**: this field can be updated automatically if you pass `--update-config`' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# to `zwe init` command.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '#-------------------------------------------------------------------------------' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo 'node:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # Path to your node.js home directory' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # Path to your Node.js home directory' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' home: "$!{instance-node_home}"' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From b69ffe3bc54be0f53496d6b06648dd181ba09121 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 20 Nov 2024 11:19:44 +0100 Subject: [PATCH 055/121] work zfs wasnt being deleted Signed-off-by: mm667937 --- pswi/06_test_cleanup.sh | 111 +++++++++--------------------------- pswi/scripts/spool_files.sh | 4 +- pswi/scripts/submit_jcl.sh | 2 +- 3 files changed, 30 insertions(+), 87 deletions(-) diff --git a/pswi/06_test_cleanup.sh b/pswi/06_test_cleanup.sh index 28561b015e..6896e16862 100644 --- a/pswi/06_test_cleanup.sh +++ b/pswi/06_test_cleanup.sh @@ -15,7 +15,7 @@ echo "Portable Software Instance :" $PSWI echo "Software instance name :" $DEPLOY_NAME echo "Temporary zFS :" $TMP_ZFS echo "Work zFS :" $WORK_ZFS # For z/OSMF v2.3 -echo "Directory for logs :" $LOGDIR +echo "Directory for logs :" $LOG_DIR echo "ACCOUNT :" $ACCOUNT echo "SYSAFF :" $SYSAFF echo "z/OSMF version :" $ZOSMF_V @@ -25,35 +25,6 @@ DELETE_PSWI_URL="${BASE_URL}/zosmf/swmgmt/pswi/${ZOSMF_SYSTEM}/${PSWI}" WORKFLOW_LIST_URL="${BASE_URL}/zosmf/workflow/rest/1.0/workflows?owner=${ZOSMF_USER}&workflowName=${WORKFLOW_NAME}.*" DELETE_DEPL_SWI_URL="${BASE_URL}/zosmf/swmgmt/swi/${ZOSMF_SYSTEM}/${DEPLOY_NAME}" -check_response() { - RESP=$1 - RESPCODE=$2 - - REASON=$(echo $RESP | grep -o '"reason":') - EMPTY=$(echo $RESP | grep -o '\[\]') - MSG=$(echo $RESP | grep -o '"messageText":') - if [ -n "$REASON" ] || [ -n "$MSG" ]; then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >>$LOG_FILE - fi - if [ -n "$EMPTY" ]; then - echo "Info: Logging to file ${LOG_FILE}." - echo "$RESP" >>$LOG_FILE - fi - if [ $RESPCODE -ne 0 ]; then - echo "Info: Logging to file ${LOG_FILE}." - if [ -n "$RESP" ]; then - echo "$RESP" >>$LOG_FILE - else - echo "REST API call wasn't successful." >>$LOG_FILE - fi - else - echo "REST API call was successful." - fi - - return -} - # Create a log file touch $LOG_FILE @@ -61,16 +32,7 @@ touch $LOG_FILE echo "Invoking REST API to delete the Software Instance created by deployment." RESP=$(curl -s $DELETE_DEPL_SWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) -check_response "${RESP}" $? - -if [ "$ZOSMF_V" = "2.4" ]; then - - # Delete the Portable Software Instance - echo "Invoking REST API to delete the portable software instance." - - RESP=$(curl -s $DELETE_PSWI_URL -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) - check_response "${RESP}" $? -fi +sh scripts/check_response.sh "${RESP}" $? # Unmount and delete echo "Unmounting and deleting zFS ${TMP_ZFS}." @@ -94,29 +56,29 @@ sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL -if [ "$ZOSMF_V" = "2.3" ]; then - # Unmount and delete - echo "Unmounting and deleting zFS ${WORK_ZFS}." - - echo ${JOBST1} >JCL - echo ${JOBST2} >>JCL - echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL - echo "//SYSTSPRT DD SYSOUT=*" >>JCL - echo "//SYSTSOUT DD SYSOUT=*" >>JCL - echo "//SYSTSIN DD * " >>JCL - echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL - echo "IMMEDIATE" >>JCL - echo "/*" >>JCL - echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL - echo "//SYSPRINT DD SYSOUT=*" >>JCL - echo "//SYSIN DD *" >>JCL - echo " DELETE ${WORK_ZFS}" >>JCL - echo "/*" >>JCL - - sh scripts/submit_jcl.sh "$(cat JCL)" - # Not checking results so the script doesn't fail - rm JCL -fi + +# Unmount and delete +echo "Unmounting and deleting zFS ${WORK_ZFS}." + +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${WORK_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +# Not checking results so the script doesn't fail +rm JCL + # Unmount and delete echo "Unmounting and deleting zFS ${TEST_HLQ}.ZFS." @@ -127,14 +89,14 @@ echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL echo "//SYSTSPRT DD SYSOUT=*" >>JCL echo "//SYSTSOUT DD SYSOUT=*" >>JCL echo "//SYSTSIN DD * " >>JCL -echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS') + " >>JCL +echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS.#') + " >>JCL echo "IMMEDIATE" >>JCL echo "/*" >>JCL echo "//UNMNTZF2 EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL echo "//SYSTSPRT DD SYSOUT=*" >>JCL echo "//SYSTSOUT DD SYSOUT=*" >>JCL echo "//SYSTSIN DD * " >>JCL -echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS.#') + " >>JCL +echo "UNMOUNT FILESYSTEM('${TEST_HLQ}.ZFS') + " >>JCL echo "IMMEDIATE" >>JCL echo "/*" >>JCL echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL @@ -163,23 +125,4 @@ echo "/*" >>JCL sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL -if [ "$ZOSMF_V" = "2.4" ]; then - # Delete Post-deployment workflow in z/OSMF - echo "Invoking REST API to delete Post-deployment workflows." - - # Get workflowKey for Post-deployment workflow owned by user - RESP=$(curl -s $WORKFLOW_LIST_URL -k -X "GET" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) - check_response "${RESP}" $? - WFKEYS=$(echo $RESP | sed 's/},/},\n/g' | grep -oP '"workflowKey":".*"' | cut -f4 -d\") - - IFS=$'\n' - for KEY in $WFKEYS; do - - echo "Deleting a workflow." - RESP=$(curl -s ${BASE_URL}/zosmf/workflow/rest/1.0/workflows/${KEY} -k -X "DELETE" -H "Content-Type: application/json" -H "X-CSRF-ZOSMF-HEADER: A" --user $ZOSMF_USER:$ZOSMF_PASS) - check_response "${RESP}" $? - - done -fi - diff --git a/pswi/scripts/spool_files.sh b/pswi/scripts/spool_files.sh index 289fe3ce8c..eb89e7ce14 100644 --- a/pswi/scripts/spool_files.sh +++ b/pswi/scripts/spool_files.sh @@ -4,7 +4,7 @@ IDENTIFIER="${1}/${2}" JOBNAME=${1} JOB_OUTPUT_DIR=$LOG_DIR/jobs/output -JOB_OUTPUT_FILE=$JOB_OUTPUT_DIR/$JOBNAME_$2 +JOB_OUTPUT_FILE=$JOB_OUTPUT_DIR/$JOBNAME RESP=$(curl -s ${BASE_URL}/zosmf/restjobs/jobs/${IDENTIFIER}/files -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" $? @@ -20,4 +20,4 @@ done >$LOG_DIR/report.txt - cat $JOBNAME/$JOBID >>$LOG_DIR/report.txt + cat $LOG_DIR/jobs/output/$JOBNAME >>$LOG_DIR/report.txt exit -1 fi From c51f0439a72ca56c22946b51b078e077d15c4b7d Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 11:53:31 +0100 Subject: [PATCH 056/121] issue4081 init steps Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 730267f050..2a53ed2f6a 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -2266,8 +2266,8 @@ zwe install -c '${instance-zowe_runtimeDirectory}/zowe.yaml' --allow-overwrite - Run the Zowe init - Executes the Zowe initialization + Run scripts for Zowe initialization + Executes scripts for Zowe initialization @@ -2314,8 +2314,8 @@ zwe init vsam -c '${instance-zowe_runtimeDirectory}/zowe.yaml' --allow-overwrite - Run the Zowe init security - Executes the Zowe initialization for security setup + Run scripts for Zowe security initialization + Executes Zowe initialization scripts for security setup Date: Wed, 20 Nov 2024 12:00:43 +0100 Subject: [PATCH 057/121] issue4078 Gateway only Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 2a53ed2f6a..7b07c21af0 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -502,9 +502,9 @@ How we want to verify SSL certificates of services. Valid values are: - - Check this option to enable the gateway - Check this option to enable the gateway + + Check this option to enable the Gateway + Check this option to enable the Gateway components @@ -514,8 +514,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the API ML gateway - Port for the API ML gateway + Port for the API ML Gateway + Port for the API ML Gateway components @@ -525,8 +525,8 @@ How we want to verify SSL certificates of services. Valid values are: - Switch on the debug mode for the gateway - Switch on the debug mode for the gateway + Switch on the debug mode for the Gateway + Switch on the debug mode for the Gateway components @@ -569,8 +569,8 @@ How we want to verify SSL certificates of services. Valid values are: - Authorization provider for the gateway - Authorization provider for the gateway + Authorization provider for the Gateway + Authorization provider for the Gateway components @@ -580,8 +580,8 @@ How we want to verify SSL certificates of services. Valid values are: - JWT auto configuration for gateway security auth - JWT auto configuration for gateway security auth + JWT auto configuration for Gateway security auth + JWT auto configuration for Gateway security auth components @@ -593,8 +593,8 @@ How we want to verify SSL certificates of services. Valid values are: - Service ID for gateway security auth - Service ID for gateway security auth + Service ID for Gateway security auth + Service ID for Gateway security auth components @@ -615,8 +615,8 @@ How we want to verify SSL certificates of services. Valid values are: - Security authorization provider for the gateway - Security authorization provider for the gateway + Security authorization provider for the Gateway + Security authorization provider for the Gateway components @@ -626,8 +626,8 @@ How we want to verify SSL certificates of services. Valid values are: - Check to enable the gateway security x509 - Check to enable the gateway security x509 + Check to enable the Gateway security x509 + Check to enable the Gateway security x509 components @@ -1163,14 +1163,14 @@ How we want to verify SSL certificates of services. Valid values are: Gateway variables - Specify the variables for the gateway component + Specify the variables for the Gateway component 1 == 1 Always true - Skipped if the gateway was not selected + Skipped if the Gateway was not selected !${instance-components_gateway_enabled} skipped @@ -1184,7 +1184,7 @@ How we want to verify SSL certificates of services. Valid values are: - Run this step to specify the cloud gateway variables + Run this step to specify the Gateway variables 1 z/OS System Programmer false @@ -1208,7 +1208,7 @@ How we want to verify SSL certificates of services. Valid values are: - Run this step to fill gateway component variables. + Run this step to fill ZAAS component variables. 1 z/OS System Programmer false @@ -2170,7 +2170,7 @@ echo '# sysname: LPR1' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# # for this HA instance, we did not customize "components", so it will use default value.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# # HA instance ID, we will start 2 instances on LPAR2' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo '# # **NOTE**, we can only start one gateway in same LPAR.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo '# # **NOTE**, we can only start one Gateway in same LPAR.' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# lpar2a:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# # hostname where this instance will be started' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo '# hostname: lpar2.my-company.com' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From 2f0c01fc2c2ffb2a9bc9ce07d5b088f5bcce0688 Mon Sep 17 00:00:00 2001 From: Marketa Muzikova Date: Wed, 20 Nov 2024 13:50:38 +0100 Subject: [PATCH 058/121] path not found Signed-off-by: mm667937 --- pswi/scripts/deploy_test_2_3.py | 543 ++++++++++++++++---------------- 1 file changed, 275 insertions(+), 268 deletions(-) diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 025325ae9d..a8098f1724 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -4,53 +4,55 @@ import os import glob + class Deploy_test: - - def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzone, dzone, new_mountpoint, pswi_path, work_mount, swi_name): - - izudurl = "{0}/zosmf/restfiles/fs{1}/IZUD00DF.json".format(url, pswi_path) - self.headers = {'X-CSRF-ZOSMF-HEADER': ''} - resp = requests.get(izudurl, headers=self.headers, auth=(user, password), verify=False) - - izud = json.loads(resp.text) - # Set variables - self.url = url - self.user = user - self.password = password - self.system = system - self.hlq = hlq.upper() - self.jobst1 = jobst1 + "\n" - self.jobst2 = jobst2 + "\n" - self.volume = volume.upper() - self.pswi_path = pswi_path - self.tzone = tzone.upper() - self.dzone = dzone.upper() - self.new_mountp = new_mountpoint - - self.definition = izud["izud.pswi.descriptor"] - self.datasets = self.definition["datasets"] - self.work_mount = work_mount - self.swi_name = swi_name - self.version = int(self.definition["version"]) - for dataset in self.datasets: - if dataset["zonedddefs"] is not None: - for zonedddef in dataset["zonedddefs"]: - for dddef in zonedddef["dddefs"]: - if dddef["path"] is not None: - self.no_dddef = dddef["dddef"] - self.old_mountp = dataset["mountpoint"] - self.tracks = int(dataset["tracks"]) - self.secondary = int(dataset["secondary"]) - self.new_zfs = self.new_name(dataset["dsname"]) - self.zfs_archid = dataset["archid"] - - for zone in self.definition["zones"]: - if zone["type"] == "TARGET": - self.target = zone["name"] - elif zone["type"] == "DLIB": - self.dlib = zone["name"] - - self.job1 = """//GIMUNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO' + + def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzone, dzone, new_mountpoint, pswi_path, + work_mount, swi_name): + + izudurl = "{0}/zosmf/restfiles/fs{1}/IZUD00DF.json".format(url, pswi_path) + self.headers = {'X-CSRF-ZOSMF-HEADER': ''} + resp = requests.get(izudurl, headers=self.headers, auth=(user, password), verify=False) + + izud = json.loads(resp.text) + # Set variables + self.url = url + self.user = user + self.password = password + self.system = system + self.hlq = hlq.upper() + self.jobst1 = jobst1 + "\n" + self.jobst2 = jobst2 + "\n" + self.volume = volume.upper() + self.pswi_path = pswi_path + self.tzone = tzone.upper() + self.dzone = dzone.upper() + self.new_mountp = new_mountpoint + + self.definition = izud["izud.pswi.descriptor"] + self.datasets = self.definition["datasets"] + self.work_mount = work_mount + self.swi_name = swi_name + self.version = int(self.definition["version"]) + for dataset in self.datasets: + if dataset["zonedddefs"] is not None: + for zonedddef in dataset["zonedddefs"]: + for dddef in zonedddef["dddefs"]: + if dddef["path"] is not None: + self.no_dddef = dddef["dddef"] + self.old_mountp = dataset["mountpoint"] + self.tracks = int(dataset["tracks"]) + self.secondary = int(dataset["secondary"]) + self.new_zfs = self.new_name(dataset["dsname"]) + self.zfs_archid = dataset["archid"] + + for zone in self.definition["zones"]: + if zone["type"] == "TARGET": + self.target = zone["name"] + elif zone["type"] == "DLIB": + self.dlib = zone["name"] + + self.job1 = """//GIMUNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO' //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SMPWKDIR DD PATH='{0}/' @@ -61,15 +63,15 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo //SYSIN DD * -""".format(self.work_mount,self.pswi_path,self.volume) - self.job1_end = """ +""".format(self.work_mount, self.pswi_path, self.volume) + self.job1_end = """ /* """ - self.job2 = """//RENAME1 EXEC PGM=IDCAMS,REGION=0M + self.job2 = """//RENAME1 EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * """ - self.job3 = """//UPDZONES EXEC PGM=GIMSMP,REGION=0M, + self.job3 = """//UPDZONES EXEC PGM=GIMSMP,REGION=0M, // PARM='CSI={0}' //SMPLOG DD SYSOUT=* //SMPLOGA DD SYSOUT=* @@ -79,7 +81,7 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo //SMPPTS DD UNIT=SYSALLDA,SPACE=(TRK,(1,1,5)) //SMPCNTL DD * """.format(self.new_name(self.definition["globalzone"])) - self.job3_global = """ SET BOUNDARY(GLOBAL). + self.job3_global = """ SET BOUNDARY(GLOBAL). UCLIN. REP GLOBALZONE ZONEINDEX( @@ -87,32 +89,32 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo ({1},{2},DLIB) ). """.format(self.tzone, self.dzone, self.new_name(self.definition["globalzone"])) - - self.job3_target = """ SET BOUNDARY({0}). + + self.job3_target = """ SET BOUNDARY({0}). UCLIN. REP TZONE({0}) RELATED({1}). """.format(self.tzone, self.dzone) - - self.job3_path="" - if self.version >= 9: - self.job3_path = """ REP DDDEF({0}) PATH( + + self.job3_path = "" + if self.version >= 9: + self.job3_path = """ REP DDDEF({0}) PATH( '{1}' ). """.format(self.no_dddef, self.new_mountp) - else: - self.job3_path = """ ZONEEDIT DDDEF. + else: + self.job3_path = """ ZONEEDIT DDDEF. CHANGE PATH( '{0}'*, '{1}'*). ENDZONEEDIT. """.format(self.old_mountp, self.new_mountp) - self.job3_endzone = " ENDUCL.\n" - self.job3_distribution = """ SET BOUNDARY({0}). + self.job3_endzone = " ENDUCL.\n" + self.job3_distribution = """ SET BOUNDARY({0}). UCLIN. REP DZONE({0}) RELATED({1}). """.format(self.dzone, self.tzone) - - self.job4 = """//UNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO',COND=(0,LT) + + self.job4 = """//UNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO',COND=(0,LT) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SMPWKDIR DD PATH='{0}' @@ -126,66 +128,67 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo newname="{3}" preserveid="YES" replace="YES"/> - """.format(self.work_mount + "/workdir", self.pswi_path, self.zfs_archid, self.work_mount + "/" + self.new_zfs + ".#") - - def create_zfs(self): - new_zfs = {"cylsPri": int(self.tracks/15),"cylsSec": int(self.secondary/15),"volumes":[ self.volume ]} - new_zfs_url = "{0}/zosmf/restfiles/mfs/zfs/{1}".format(self.url, self.new_zfs + ".%23") - new_zfs_resp = requests.post(new_zfs_url, headers=self.headers, auth=(user, password), data=json.dumps(new_zfs), - verify=False) - print("When this script fail this zFS {0} might not be unmounted!%23 is #".format(self.new_zfs + ".%23")) - if new_zfs_resp.status_code != 201: - print("Status code: {0}".format(new_zfs_resp.status_code)) - raise requests.exceptions.RequestException(new_zfs_resp.text) - - def create_directory(self): - dir_name = self.work_mount + "/" + self.new_zfs + ".%23" - dir_parms = {"type":"directory","mode":"rwxr-xrwx"} - dir_url = "{0}/zosmf/restfiles/fs{1}".format(self.url, dir_name) - dir_resp = requests.post(dir_url, headers=self.headers, auth=(user, password), data=json.dumps(dir_parms), - verify=False) - - if dir_resp.status_code != 201: - print("Status code: {0}".format(dir_resp.status_code)) - raise requests.exceptions.RequestException(dir_resp.text) - - def mount(self, dir=None, zfs=None, action="mount"): - if dir is None and zfs is None: - dir = self.work_mount + "/" + self.new_zfs + ".#" - zfs = self.new_zfs + ".%23" - action = "unmount" - elif dir is None or zfs is None: - raise TypeError("Wrong arguments") - - mount_parms = {"action": action, "mount-point": dir, "fs-type": "zFS", "mode": "rdwr"} - mount_url = "{0}/zosmf/restfiles/mfs/{1}".format(self.url, zfs) - mount_resp = requests.put(mount_url, headers=self.headers, auth=(user, password), data=json.dumps(mount_parms), - verify=False) - - if mount_resp.status_code != 204: - print("Status code: {0}".format(mount_resp.status_code)) - raise requests.exceptions.RequestException(mount_resp.text) - - def archdef(self, dataset): - if dataset["dsname"].endswith(".CSI"): - new_name = self.new_name(dataset["dsname"]) - elif dataset["dsname"].endswith(".ZFS") and self.version >= 9: - return "" - else: - new_name = self.new_name(dataset["dsname"]) + ".#" - return """= 9: + return "" + else: + new_name = self.new_name(dataset["dsname"]) + ".#" + return """ """.format(dataset["archid"], new_name, self.volume) - - def new_name(self, dsname): - return self.hlq + dsname[dsname.rfind("."):] - - def listcat(self, dataset): - final_name = self.new_name(dataset) - new_name = final_name + ".#" - lstcat = """ LISTCAT - + + def new_name(self, dsname): + return self.hlq + dsname[dsname.rfind("."):] + + def listcat(self, dataset): + final_name = self.new_name(dataset) + new_name = final_name + ".#" + lstcat = """ LISTCAT - ENTRY({0}) IF LASTCC = 0 THEN DO ALTER - @@ -195,158 +198,162 @@ def listcat(self, dataset): IF LASTCC = 0 THEN SET MAXCC = 0 ELSE CANCEL """.format(new_name, final_name) - if dataset.endswith(".ZFS"): - self.zfs = final_name - zfs = """ + if dataset.endswith(".ZFS"): + self.zfs = final_name + zfs = """ ALTER - {0}.* - NEWNAME({1}.*)""".format(new_name, final_name) - return lstcat.replace("|zfs|",zfs) - else: - return lstcat.replace("|zfs|", "") - - def zone_template(self, dataset, zone): - dddef_templ = "" - if dataset["zonedddefs"] is not None: - for zoneddef in dataset["zonedddefs"]: - if zoneddef["zone"] == zone: - for dddef in zoneddef["dddefs"]: - if dddef["dddef"] == self.no_dddef: - continue - dddef_templ = dddef_templ + """ REP DDDEF({0}) + return lstcat.replace("|zfs|", zfs) + else: + return lstcat.replace("|zfs|", "") + + def zone_template(self, dataset, zone): + dddef_templ = "" + if dataset["zonedddefs"] is not None: + for zoneddef in dataset["zonedddefs"]: + if zoneddef["zone"] == zone: + for dddef in zoneddef["dddefs"]: + if dddef["dddef"] == self.no_dddef: + continue + dddef_templ = dddef_templ + """ REP DDDEF({0}) DATASET({1}) VOLUME() UNIT(). -""".format(dddef["dddef"],self.new_name(dataset["dsname"])) - return dddef_templ - - def first_job(self): - jcl = self.jobst1 + self.jobst2 + self.job1 - for dataset in self.datasets: - jcl = jcl + self.archdef(dataset) - return jcl + self.job1_end - - def zfsInstall_job(self): - new_dir = self.work_mount + "/" + self.new_zfs + ".#" - self.create_zfs() - self.create_directory() - self.mount(new_dir, self.new_zfs + ".%23", "mount") - return self.jobst1 + self.jobst2 + self.job4 - - def second_job(self): - jcl = self.jobst1 + self.jobst2 + self.job2 - for dataset in self.datasets: - if dataset["dsname"].endswith(".CSI"): - continue - jcl = jcl + self.listcat(dataset["dsname"]) - return jcl + "//*" - - def third_job(self): - jcl = self.jobst1 + self.jobst2 + self.job3 + self.job3_global - for dataset in self.datasets: - jcl = jcl + self.zone_template(dataset, "GLOBAL") - jcl = jcl + self.job3_endzone + self.job3_target - for dataset in self.datasets: - jcl = jcl + self.zone_template(dataset, self.target) - if self.version >= 9: - jcl = jcl + self.job3_path + self.job3_endzone + self.job3_distribution - else: - jcl = jcl + self.job3_endzone + self.job3_path + self.job3_distribution - for dataset in self.datasets: - jcl = jcl + self.zone_template(dataset, self.dlib) - return jcl + self.job3_endzone + "/*" - - def create_swi(self): - self.mount(self.new_mountp, self.zfs, "mount") - - parms = { - "name": self.swi_name, - "system": self.system, - "description": "Zowe Deploy test", - "globalzone": self.new_name(self.definition["globalzone"]), - "targetzones": [self.target], - "workflows": [ - {"name": "ZOWE Mount Workflow", - "description": "This workflow performs mount action of ZOWE zFS.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWEWRF02)"}}, - {"name": "ZOWE Configuration of Zowe 3.0", - "description": "This workflow configures Zowe v3.0.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWECONF)"}}, - {"name":"ZOWE Creation of CSR request workflow", - "description":"This workflow creates a certificate sign request.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWECRECR)"}}, - {"name":"ZOWE Sign a CSR request", - "description":"This workflow signs the certificate sign request by a local CA.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWESIGNC)"}}, - {"name":"ZOWE Load Authentication Certificate into ESM", - "description":"This workflow loads a signed client authentication certificate to the ESM.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWELOADC)"}}, - {"name":"ZOWE Define key ring and certificates", - "description":"This workflow defines key ring and certificates for Zowe.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWEKRING)"}} - ] - } - swi_url = "{0}/zosmf/swmgmt/swi".format(self.url) - swi_resp = requests.post(swi_url, headers=self.headers, auth=(user, password), data=json.dumps(parms), verify=False) - if swi_resp.status_code != 200: - raise requests.exceptions.RequestException(swi_resp.text) - - prod_url = "{0}/zosmf/swmgmt/swi/{1}/{2}/products".format(self.url, self.system, self.swi_name) - prod_resp = requests.put(prod_url, headers=self.headers, auth=(user, password), verify=False) - if prod_resp.status_code != 202: - raise requests.exceptions.RequestException(prod_resp.text) - status = "" - while status != "complete": - starus_url = prod_resp.json()["statusurl"] - status_resp= requests.get(starus_url, headers=self.headers, auth=(user, password), verify=False) - if status_resp.status_code != 200: - raise requests.exceptions.RequestException(status_resp.text) - status = status_resp.json()["status"] - +""".format(dddef["dddef"], self.new_name(dataset["dsname"])) + return dddef_templ + + def first_job(self): + jcl = self.jobst1 + self.jobst2 + self.job1 + for dataset in self.datasets: + jcl = jcl + self.archdef(dataset) + return jcl + self.job1_end + + def zfsInstall_job(self): + new_dir = self.work_mount + "/" + self.new_zfs + ".#" + self.create_zfs() + self.create_directory(self.work_mount + "/" + self.new_zfs + ".%23") + self.create_directory(self.work_mount + "/workdir") + self.mount(new_dir, self.new_zfs + ".%23", "mount") + return self.jobst1 + self.jobst2 + self.job4 + + def second_job(self): + jcl = self.jobst1 + self.jobst2 + self.job2 + for dataset in self.datasets: + if dataset["dsname"].endswith(".CSI"): + continue + jcl = jcl + self.listcat(dataset["dsname"]) + return jcl + "//*" + + def third_job(self): + jcl = self.jobst1 + self.jobst2 + self.job3 + self.job3_global + for dataset in self.datasets: + jcl = jcl + self.zone_template(dataset, "GLOBAL") + jcl = jcl + self.job3_endzone + self.job3_target + for dataset in self.datasets: + jcl = jcl + self.zone_template(dataset, self.target) + if self.version >= 9: + jcl = jcl + self.job3_path + self.job3_endzone + self.job3_distribution + else: + jcl = jcl + self.job3_endzone + self.job3_path + self.job3_distribution + for dataset in self.datasets: + jcl = jcl + self.zone_template(dataset, self.dlib) + return jcl + self.job3_endzone + "/*" + + def create_swi(self): + self.mount(self.new_mountp, self.zfs, "mount") + + parms = { + "name": self.swi_name, + "system": self.system, + "description": "Zowe Deploy test", + "globalzone": self.new_name(self.definition["globalzone"]), + "targetzones": [self.target], + "workflows": [ + {"name": "ZOWE Mount Workflow", + "description": "This workflow performs mount action of ZOWE zFS.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWEWRF02)"}}, + {"name": "ZOWE Configuration of Zowe 3.0", + "description": "This workflow configures Zowe v3.0.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWECONF)"}}, + {"name": "ZOWE Creation of CSR request workflow", + "description": "This workflow creates a certificate sign request.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWECRECR)"}}, + {"name": "ZOWE Sign a CSR request", + "description": "This workflow signs the certificate sign request by a local CA.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWESIGNC)"}}, + {"name": "ZOWE Load Authentication Certificate into ESM", + "description": "This workflow loads a signed client authentication certificate to the ESM.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWELOADC)"}}, + {"name": "ZOWE Define key ring and certificates", + "description": "This workflow defines key ring and certificates for Zowe.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWEKRING)"}} + ] + } + swi_url = "{0}/zosmf/swmgmt/swi".format(self.url) + swi_resp = requests.post(swi_url, headers=self.headers, auth=(user, password), data=json.dumps(parms), verify=False) + if swi_resp.status_code != 200: + raise requests.exceptions.RequestException(swi_resp.text) + + prod_url = "{0}/zosmf/swmgmt/swi/{1}/{2}/products".format(self.url, self.system, self.swi_name) + prod_resp = requests.put(prod_url, headers=self.headers, auth=(user, password), verify=False) + if prod_resp.status_code != 202: + raise requests.exceptions.RequestException(prod_resp.text) + status = "" + while status != "complete": + starus_url = prod_resp.json()["statusurl"] + status_resp = requests.get(starus_url, headers=self.headers, auth=(user, password), verify=False) + if status_resp.status_code != 200: + raise requests.exceptions.RequestException(status_resp.text) + status = status_resp.json()["status"] + + if __name__ == "__main__": - url = os.environ['ZOSMF_URL'] + ":" + os.environ['ZOSMF_PORT'] # Url and port of the z/OSMF server - # # auth - user = os.environ['ZOSMF_USER'] # z/OSMF user - password = os.environ['ZOSMF_PASS'] # Password for z/OSMF - system = os.environ['ZOSMF_SYSTEM'] # z/OSMF nickname for the system where the PSWI will be deployed - hlq = os.environ['TEST_HLQ'] # HLQ for new datasets - mount = os.environ['TEST_MOUNT'] # New mount point for ZFS #newmount - jobst1 = os.environ['JOBST1'] # Job statement - jobst2 = os.environ['JOBST2'] # Sysaff - volume = os.environ['VOLUME'] # Volum where to store datasets - work_path = os.environ['WORK_MOUNT'] # SMP work directory - tzone = os.environ['TZONE'] # Target zone - dzone = os.environ['DZONE'] # Dlib - pswi_path = os.environ['EXPORT'] # Path to unzipped PSWI - swi_name = os.environ['DEPLOY_NAME'] # Name of the software instance to be created - - deploy = Deploy_test(url, user, password, system, hlq, jobst1, jobst2, volume, tzone, dzone, mount, pswi_path, work_path, swi_name) - - unzip_job = deploy.first_job() - install_zfs = deploy.zfsInstall_job() - rename_datasets = deploy.second_job() - update_csi = deploy.third_job() - - try: - submit_jcl = glob.glob('./*/submit_jcl.sh')[0] - except IndexError: - raise FileNotFoundError("\"submit_jcl.sh\" for submitting JCLs wasn't found. Make sure that it is in a subfolder of {0}".format(os.getcwd())) - - unzip_rc = subprocess.call(["sh", submit_jcl , unzip_job]) - if unzip_rc != 0: - raise OSError("The unzip datasets job failed.") - install_rc = subprocess.call(["sh", submit_jcl , install_zfs]) - if install_rc != 0: - raise OSError("The install zFS datasets job failed.") - deploy.mount() # unmount - rename_rc = subprocess.call(["sh", submit_jcl, rename_datasets]) - if rename_rc != 0: - raise OSError("The rename datasets job failed.") - update_rc = subprocess.call(["sh", submit_jcl, update_csi]) - if update_rc != 0: - raise OSError("The update CSI job failed.") - - deploy.create_swi() - print("Portable software instance deployed successfully!") - - -#todo: function for removing just the HLQ which all the old datasets have same -> needed only for internal usage + url = os.environ['ZOSMF_URL'] + ":" + os.environ['ZOSMF_PORT'] # Url and port of the z/OSMF server + # # auth + user = os.environ['ZOSMF_USER'] # z/OSMF user + password = os.environ['ZOSMF_PASS'] # Password for z/OSMF + system = os.environ['ZOSMF_SYSTEM'] # z/OSMF nickname for the system where the PSWI will be deployed + hlq = os.environ['TEST_HLQ'] # HLQ for new datasets + mount = os.environ['TEST_MOUNT'] # New mount point for ZFS #newmount + jobst1 = os.environ['JOBST1'] # Job statement + jobst2 = os.environ['JOBST2'] # Sysaff + volume = os.environ['VOLUME'] # Volum where to store datasets + work_path = os.environ['WORK_MOUNT'] # SMP work directory + tzone = os.environ['TZONE'] # Target zone + dzone = os.environ['DZONE'] # Dlib + pswi_path = os.environ['EXPORT'] # Path to unzipped PSWI + swi_name = os.environ['DEPLOY_NAME'] # Name of the software instance to be created + + deploy = Deploy_test(url, user, password, system, hlq, jobst1, jobst2, volume, tzone, dzone, mount, pswi_path, + work_path, swi_name) + + unzip_job = deploy.first_job() + install_zfs = deploy.zfsInstall_job() + rename_datasets = deploy.second_job() + update_csi = deploy.third_job() + + try: + submit_jcl = glob.glob('./*/submit_jcl.sh')[0] + except IndexError: + raise FileNotFoundError( + "\"submit_jcl.sh\" for submitting JCLs wasn't found. Make sure that it is in a subfolder of {0}".format( + os.getcwd())) + + unzip_rc = subprocess.call(["sh", submit_jcl, unzip_job]) + if unzip_rc != 0: + raise OSError("The unzip datasets job failed.") + install_rc = subprocess.call(["sh", submit_jcl, install_zfs]) + if install_rc != 0: + raise OSError("The install zFS datasets job failed.") + deploy.mount() # unmount + rename_rc = subprocess.call(["sh", submit_jcl, rename_datasets]) + if rename_rc != 0: + raise OSError("The rename datasets job failed.") + update_rc = subprocess.call(["sh", submit_jcl, update_csi]) + if update_rc != 0: + raise OSError("The update CSI job failed.") + + deploy.create_swi() + print("Portable software instance deployed successfully!") + +# todo: function for removing just the HLQ which all the old datasets have same -> needed only for internal usage From 548a1b11d027218d9cd54875f200031f1c1a8840 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 20 Nov 2024 15:27:30 +0100 Subject: [PATCH 059/121] order Signed-off-by: mm667937 --- pswi/06_test_cleanup.sh | 43 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/pswi/06_test_cleanup.sh b/pswi/06_test_cleanup.sh index 6896e16862..6f8ee19f06 100644 --- a/pswi/06_test_cleanup.sh +++ b/pswi/06_test_cleanup.sh @@ -57,28 +57,6 @@ sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL -# Unmount and delete -echo "Unmounting and deleting zFS ${WORK_ZFS}." - -echo ${JOBST1} >JCL -echo ${JOBST2} >>JCL -echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL -echo "//SYSTSPRT DD SYSOUT=*" >>JCL -echo "//SYSTSOUT DD SYSOUT=*" >>JCL -echo "//SYSTSIN DD * " >>JCL -echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL -echo "IMMEDIATE" >>JCL -echo "/*" >>JCL -echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL -echo "//SYSPRINT DD SYSOUT=*" >>JCL -echo "//SYSIN DD *" >>JCL -echo " DELETE ${WORK_ZFS}" >>JCL -echo "/*" >>JCL - -sh scripts/submit_jcl.sh "$(cat JCL)" -# Not checking results so the script doesn't fail -rm JCL - # Unmount and delete echo "Unmounting and deleting zFS ${TEST_HLQ}.ZFS." @@ -126,3 +104,24 @@ sh scripts/submit_jcl.sh "$(cat JCL)" rm JCL +# Unmount and delete +echo "Unmounting and deleting zFS ${WORK_ZFS}." + +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${WORK_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +# Not checking results so the script doesn't fail +rm JCL From 841fc54a0a7716f7d32f29b9820dd31e781a17a9 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 15:42:27 +0100 Subject: [PATCH 060/121] issue4082 subcommands desc clean Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 7b07c21af0..40e597a733 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -2283,10 +2283,9 @@ zwe install -c '${instance-zowe_runtimeDirectory}/zowe.yaml' --allow-overwritezwe init sub-command defines a configuration.
  • mvs: Copy the data sets provided with Zowe to custom data sets.
  • -
  • security: Create the user IDs and security manager settings.
  • -
  • apfauth: APF authorize the LOADLIB containing the modules that need to perform z/OS priviledged security calls.
  • -
  • certificate: Configure Zowe to use TLS certificates.
  • +#if (${instance-components_caching_service_storage_mode} == "VSAM" && ${instance-components_caching_service_enabled})
  • vsam: Configure the VSAM files needed to run the Zowe caching service used for high availability (HA).
  • +#end
  • stc: Configure the system to launch the Zowe started task.
]]> @@ -2320,18 +2319,14 @@ zwe init vsam -c '${instance-zowe_runtimeDirectory}/zowe.yaml' --allow-overwrite - zwe init apfauth -c ${instance-zowe_runtimeDirectory}/zowe.yml
zwe init security -c ${instance-zowe_runtimeDirectory}/zowe.yml --allow-overwrite
+ zwe init apfauth -c ${instance-zowe_runtimeDirectory}/zowe.yml

NOTE: Each zwe init sub-command defines a configuration.
    -
  • mvs: Copy the data sets provided with Zowe to custom data sets.
  • security: Create the user IDs and security manager settings.
  • apfauth: APF authorize the LOADLIB containing the modules that need to perform z/OS priviledged security calls.
  • -
  • certificate: Configure Zowe to use TLS certificates.
  • -
  • vsam: Configure the VSAM files needed to run the Zowe caching service used for high availability (HA).
  • -
  • stc: Configure the system to launch the Zowe started task.
]]>
1 From a2f77e516b1264ffb907e89835330331968d73b9 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 15:49:12 +0100 Subject: [PATCH 061/121] issue4085 reword Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECRECR.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/files/ZWECRECR.xml b/workflows/files/ZWECRECR.xml index c5d3c3b812..c9a6172800 100644 --- a/workflows/files/ZWECRECR.xml +++ b/workflows/files/ZWECRECR.xml @@ -33,7 +33,7 @@ Please, specify your security management software - Please, specify the ESM system you use on your workstation + Please, specify the ESM system you use General From fbe1fc737a0e25dded038f4d23148719aabf561a Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 16:09:58 +0100 Subject: [PATCH 062/121] issue 4086 acf2 genreq Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECRECR.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/workflows/files/ZWECRECR.xml b/workflows/files/ZWECRECR.xml index c9a6172800..a3636d5d4b 100644 --- a/workflows/files/ZWECRECR.xml +++ b/workflows/files/ZWECRECR.xml @@ -276,7 +276,8 @@ TSS GENREQ(${instance-tss_acid}) + - This step will generate the CSR request into the ${instance-output_dataset} + This step uses ACF2 command GENREQ

]]>
1 Security Administrator true @@ -303,7 +304,7 @@ GENREQ ${instance-acf2_acid} + This step uses ACF2 command GENREQ

]]>
+]]> 1 Security Administrator true From 773148f61b07e70f1f1474bef0de21602fee13d2 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 20 Nov 2024 16:12:44 +0100 Subject: [PATCH 063/121] issue4086 new link Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECRECR.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/files/ZWECRECR.xml b/workflows/files/ZWECRECR.xml index a3636d5d4b..9999de8573 100644 --- a/workflows/files/ZWECRECR.xml +++ b/workflows/files/ZWECRECR.xml @@ -277,7 +277,7 @@ TSS GENREQ(${instance-tss_acid}) + This step uses ACF2 command GENREQ

]]>
+

This step uses ACF2 command GENREQ

]]> 1 Security Administrator true From 2bb7e6f8ed9ae3f9a13cfbff998055c72eb53832 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Wed, 20 Nov 2024 16:44:21 +0100 Subject: [PATCH 064/121] it is better to go with jcl because rest api call does not support `-p` when doing mkdir Signed-off-by: mm667937 --- pswi/scripts/deploy_test_2_3.py | 69 ++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index a8098f1724..16538fbac3 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -113,23 +113,69 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo UCLIN. REP DZONE({0}) RELATED({1}). """.format(self.dzone, self.tzone) - - self.job4 = """//UNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO',COND=(0,LT) + + self.zfs_job = """//ALLOCDS EXEC PGM=IDCAMS,COND=(0,LT) +//SYSPRINT DD SYSOUT=* +//SYSIN DD * + DEFINE CLUSTER( + + NAME({0}) + + CYLINDERS({1},{2}) + + VOLUME({3}) + + ZFS + + SHAREOPTIONS(2)) +/* +//MOUNT1 EXEC PGM=BPXBATCH,COND=(0,LT) +//STDOUT DD SYSOUT=* +//STDERR DD SYSOUT=* +//STDPARM DD * +SH ; +dsn='{0}'; +mpdir={4}/$dsn; +if [ -e "$mpdir" ]; then; + rm -r $mpdir; +fi; +if [ ! -e "$mpdir" ]; then; + echo "Work directory $mpdir will be created."; + umask 077 ; + mkdir -p -m 700 "$mpdir"; + rc=$?; + if [ $rc -ne 0 ]; then; + echo "** mkdir command failure: rc=$rc"; + exit $rc; + fi; +fi; +echo "Format the file system $dsn."; +zfsadm format -aggregate $dsn; +rc=$?; +if [ $rc -ne 0 ]; then; + echo "** zfsadm format command failure: rc=$rc"; + exit $rc; +fi; +echo "Mount $dsn on $mpdir."; +/usr/sbin/mount -t ZFS -s nosecurity -f $dsn $mpdir; +if [ $rc -ne 0 ]; then; + echo "** mount command failure: rc=$rc"; + exit $rc; +fi; +mkdir -p {4}/workdir; +/* +//UNZIP EXEC PGM=GIMUNZIP,PARM='HASH=NO',COND=(0,LT) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) -//SMPWKDIR DD PATH='{0}' +//SMPWKDIR DD PATH='{4}/workdir' //SMPOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SMPDIR DD PATHDISP=KEEP, -// PATH='{1}' +// PATH='{5}' //SYSIN DD * - - """.format(self.work_mount + "/workdir", self.pswi_path, self.zfs_archid, - self.work_mount + "/" + self.new_zfs + ".#") +/* + """.format(self.new_zfs + ".#", int(self.tracks / 15), int(self.secondary / 15), self.volume, self.work_mount, + self.pswi_path, self.zfs_archid, self.work_mount + "/" + self.new_zfs + ".#") def create_zfs(self): new_zfs = {"cylsPri": int(self.tracks / 15), "cylsSec": int(self.secondary / 15), "volumes": [self.volume]} @@ -229,12 +275,7 @@ def first_job(self): return jcl + self.job1_end def zfsInstall_job(self): - new_dir = self.work_mount + "/" + self.new_zfs + ".#" - self.create_zfs() - self.create_directory(self.work_mount + "/" + self.new_zfs + ".%23") - self.create_directory(self.work_mount + "/workdir") - self.mount(new_dir, self.new_zfs + ".%23", "mount") - return self.jobst1 + self.jobst2 + self.job4 + return self.jobst1 + self.jobst2 + self.zfs_job def second_job(self): jcl = self.jobst1 + self.jobst2 + self.job2 From 6e55faf74436c9b45db95c9cf512e54c2e459b2e Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Wed, 20 Nov 2024 17:45:27 +0100 Subject: [PATCH 065/121] d.ts update Signed-off-by: Martin Zeithaml --- build/zwe/types/@qjstypes/xplatform.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/build/zwe/types/@qjstypes/xplatform.d.ts b/build/zwe/types/@qjstypes/xplatform.d.ts index f139e1ac00..6d4572936e 100644 --- a/build/zwe/types/@qjstypes/xplatform.d.ts +++ b/build/zwe/types/@qjstypes/xplatform.d.ts @@ -27,6 +27,7 @@ export function stringFromBytes(data:ArrayBuffer, offset:number, length:number, */ export function loadFileUTF8(path:string, sourceCCSID:number):string; export function storeFileUTF8(path:string, targetCCSID:number, content:string):number; +export function appendFileUTF8(path: string, targetCCSID:number, content:string):number; export var AUTO_DETECT:number; export var NO_CONVERT:number; From e79183b8b325c4b6982de5d1211080ead7ef72fa Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 21 Nov 2024 09:50:29 +0100 Subject: [PATCH 066/121] Update node min version Signed-off-by: 1000TurquoisePogs --- bin/libs/node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/node.ts b/bin/libs/node.ts index 3b20ccfd76..40880f5665 100644 --- a/bin/libs/node.ts +++ b/bin/libs/node.ts @@ -18,7 +18,7 @@ import * as shell from './shell'; import * as config from './config'; import { PathAPI as pathoid } from './pathoid'; -const NODE_MIN_VERSION=16; +const NODE_MIN_VERSION=18; // enforce encoding of stdio/stdout/stderr // sometimes /dev/tty* ($SSH_TTY) are not configured properly, for example tagged as binary or wrong encoding From 51cf59b9807f95cdead67c10b86fabf7ce18aa8f Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 21 Nov 2024 09:50:48 +0100 Subject: [PATCH 067/121] Update node.sh Signed-off-by: 1000TurquoisePogs --- bin/libs/node.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/node.sh b/bin/libs/node.sh index d457c76b2f..4782864d7d 100644 --- a/bin/libs/node.sh +++ b/bin/libs/node.sh @@ -22,7 +22,7 @@ export NODE_STDIN_CCSID=1047 # Workaround Fix for node 8.16.1 that requires compatibility mode for untagged files export __UNTAGGED_READ_MODE=V6 -NODE_MIN=16 +NODE_MIN=18 ensure_node_is_on_path() { if [[ ":${PATH}:" != *":${NODE_HOME}/bin:"* ]]; then From 9ed019465b0e37e10b9eb76c8e2841798f6ede49 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Thu, 21 Nov 2024 10:24:04 +0100 Subject: [PATCH 068/121] Use node 18 during build Signed-off-by: 1000TurquoisePogs --- .pax/pre-packaging.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pax/pre-packaging.sh b/.pax/pre-packaging.sh index 15bad07711..531bef0ea3 100755 --- a/.pax/pre-packaging.sh +++ b/.pax/pre-packaging.sh @@ -190,8 +190,8 @@ BASE_DIR=$( pwd ) # /.pax -# use node v16 to build -export NODE_HOME=/ZOWE/node/node-v16.20.1-os390-s390x +# use node v18 to build +export NODE_HOME=/ZOWE/node/node-v18.16.0 export JAVA_HOME=/ZOWE/node/J17.0_64 export PATH=$JAVA_HOME/bin:$PATH ZOWE_ROOT_DIR="${BASE_DIR}/content" From 86fcf1b1857604d91100e8689fb3c0ffbfaf4b7c Mon Sep 17 00:00:00 2001 From: mm667937 Date: Thu, 21 Nov 2024 11:05:41 +0100 Subject: [PATCH 069/121] PATH MUST END WITH A SLASH ("/"). Signed-off-by: mm667937 --- pswi/scripts/deploy_test_2_3.py | 2 +- pswi/scripts/spool_files.sh | 2 +- pswi/scripts/submit_jcl.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 16538fbac3..981f4e33a3 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -100,7 +100,7 @@ def __init__(self, url, user, password, system, hlq, jobst1, jobst2, volume, tzo self.job3_path = """ REP DDDEF({0}) PATH( '{1}' ). -""".format(self.no_dddef, self.new_mountp) +""".format(self.no_dddef, self.new_mountp + "/") else: self.job3_path = """ ZONEEDIT DDDEF. CHANGE PATH( diff --git a/pswi/scripts/spool_files.sh b/pswi/scripts/spool_files.sh index eb89e7ce14..29b8ef107c 100644 --- a/pswi/scripts/spool_files.sh +++ b/pswi/scripts/spool_files.sh @@ -4,7 +4,7 @@ IDENTIFIER="${1}/${2}" JOBNAME=${1} JOB_OUTPUT_DIR=$LOG_DIR/jobs/output -JOB_OUTPUT_FILE=$JOB_OUTPUT_DIR/$JOBNAME +JOB_OUTPUT_FILE=$JOB_OUTPUT_DIR/$JOBNAME_$2 RESP=$(curl -s ${BASE_URL}/zosmf/restjobs/jobs/${IDENTIFIER}/files -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" $? diff --git a/pswi/scripts/submit_jcl.sh b/pswi/scripts/submit_jcl.sh index 521b10e27e..23d7f4836e 100644 --- a/pswi/scripts/submit_jcl.sh +++ b/pswi/scripts/submit_jcl.sh @@ -51,6 +51,6 @@ if [ "$RC" = "CC 0000" ]; then echo "${JOBNAME} ${JOBID} was completed." else echo "${JOBNAME} ${JOBID} failed." >>$LOG_DIR/report.txt - cat $LOG_DIR/jobs/output/$JOBNAME >>$LOG_DIR/report.txt + cat $LOG_DIR/jobs/output/$JOBNAME_$JOBID >>$LOG_DIR/report.txt exit -1 fi From e8e790fc03c97025ff4e2adfb93df44af5417b93 Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 21 Nov 2024 11:09:56 +0100 Subject: [PATCH 070/121] Read arrays by internal config get Signed-off-by: Martin Zeithaml --- bin/commands/init/certificate/index.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bin/commands/init/certificate/index.sh b/bin/commands/init/certificate/index.sh index f226009c5b..df10620ad0 100644 --- a/bin/commands/init/certificate/index.sh +++ b/bin/commands/init/certificate/index.sh @@ -95,13 +95,17 @@ elif [[ "${cert_type}" == JCE*KS ]]; then keyring_option=2 fi fi +# Trace or debug information will be part of the output, let's turn it off for the inline zwe commands +save_trace=$ZWE_PRIVATE_LOG_LEVEL_ZWELS +ZWE_PRIVATE_LOG_LEVEL_ZWELS= # read keystore domains -cert_import_CAs=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',') +cert_import_CAs=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',') # read keystore domains -cert_domains=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.setup.certificate.san" | tr '\n' ',') +cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.san" | tr '\n' ',') if [ -z "${cert_domains}" ]; then - cert_domains=$(read_yaml_configmgr "${ZWE_CLI_PARAMETER_CONFIG}" ".zowe.externalDomains" | tr '\n' ',') + cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.externalDomains" | tr '\n' ',') fi +ZWE_PRIVATE_LOG_LEVEL_ZWELS=$save_trace # read z/OSMF info for item in user ca; do From b98a8c855499c850fcb39685cc82c1599da3585a Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Thu, 21 Nov 2024 15:03:43 +0100 Subject: [PATCH 071/121] issue4077 components Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 70 ++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 40e597a733..bbb133b497 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -502,9 +502,9 @@ How we want to verify SSL certificates of services. Valid values are:
- - Check this option to enable the Gateway - Check this option to enable the Gateway + + Check this option to enable Gateway + Check this option to enable Gateway components @@ -525,8 +525,8 @@ How we want to verify SSL certificates of services. Valid values are: - Switch on the debug mode for the Gateway - Switch on the debug mode for the Gateway + Switch on the debug mode for Gateway + Switch on the debug mode for Gateway components @@ -535,9 +535,9 @@ How we want to verify SSL certificates of services. Valid values are: - - Should the APIML ZAAS be enabled? - Should the APIML ZAAS be enabled? + + Check this option to enable APIML ZAAS + Check this option to enable APIML ZAAS components @@ -547,8 +547,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the APIML ZAAS - Port for the APIML ZAAS + Port for APIML ZAAS + Port for APIML ZAAS components @@ -558,8 +558,8 @@ How we want to verify SSL certificates of services. Valid values are: - Switch on the debug mode for the ZAAS - Switch on the debug mode for the ZAAS + Switch on the debug mode for ZAAS + Switch on the debug mode for ZAAS components @@ -637,8 +637,8 @@ How we want to verify SSL certificates of services. Valid values are: - Check this option to enable the API Catalog - Check this option to enable the API Catalog + Check this option to enable API Catalog + Check this option to enable API Catalog components @@ -669,9 +669,9 @@ How we want to verify SSL certificates of services. Valid values are: - - Check this option to enable the Discovery service - Check this option to enable the Discovery service + + Check this option to enable Discovery service + Check this option to enable Discovery service components @@ -681,8 +681,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port on which the Discovery service should be running - Port on which the Discovery service should be running + Port on which Discovery service should be running + Port on which Discovery service should be running components @@ -702,9 +702,9 @@ How we want to verify SSL certificates of services. Valid values are:
- - Check this option to enable the Caching service - Check this option to enable the Caching service + + Check this option to enable Caching service + Check this option to enable Caching service components @@ -714,8 +714,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the caching service - Port for the caching service + Port for Caching service + Port for Caching service components @@ -802,9 +802,9 @@ How we want to verify SSL certificates of services. Valid values are: - - Check this option to enable the app server - Check this option to enable the app server. + + Check this option to enable App server + Check this option to enable App server. components @@ -825,8 +825,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the app server - Port for the app server + Port for App server + Port for App server components @@ -891,8 +891,8 @@ How we want to verify SSL certificates of services. Valid values are: - Check this option to enable the JES explorer - Check this option to enable the JES explorer. + Check this option to enable JES explorer + Check this option to enable JES explorer. components @@ -902,8 +902,8 @@ How we want to verify SSL certificates of services. Valid values are: - Check this option to enable the MVS explorer - Check this option to enable the MVS explorer. + Check this option to enable MVS explorer + Check this option to enable MVS explorer. components @@ -913,8 +913,8 @@ How we want to verify SSL certificates of services. Valid values are: - Check this option to enable the USS explorer - Check this option to enable the USS explorer. + Check this option to enable USS explorer + Check this option to enable USS explorer. components From a642b24631dbac4b00151af305f9d3e77be1730c Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Thu, 21 Nov 2024 15:17:14 +0100 Subject: [PATCH 072/121] reword Signed-off-by: Pavel Zlatnik --- workflows/files/ZWECONF.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index bbb133b497..d2fb423f27 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -514,8 +514,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the API ML Gateway - Port for the API ML Gateway + Port for the APIML Gateway + Port for the APIML Gateway components From e71132f1234ed18d2b32095b600f9661bd6f6771 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Thu, 21 Nov 2024 15:40:03 +0100 Subject: [PATCH 073/121] example yaml sync update Signed-off-by: Pavel Zlatnik --- example-zowe.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/example-zowe.yaml b/example-zowe.yaml index 79d9c61186..78d0ffb1c2 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -457,17 +457,17 @@ java: #------------------------------------------------------------------------------- -# node.js configuration +# Node.js configuration # -# Some Zowe components requires node.js. Define the path where you have your -# node.js is installed. +# Some Zowe components requires Node.js. Define the path where you have your +# Node.js is installed. # # **NOTE**: this field can be updated automatically if you pass `--update-config` # to `zwe init` command. #------------------------------------------------------------------------------- node: # **COMMONLY_CUSTOMIZED** - # Path to your node.js home directory + # Path to your Node.js home directory home: "" @@ -623,7 +623,7 @@ components: # # for this HA instance, we did not customize "components", so it will use default value. # # HA instance ID, we will start 2 instances on LPAR2 -# # **NOTE**, we can only start one gateway in same LPAR. +# # **NOTE**, we can only start one Gateway in same LPAR. # lpar2a: # # hostname where this instance will be started # hostname: lpar2.my-company.com From 0b17262215ac87256e257d6294e9ad1dc6eb21a2 Mon Sep 17 00:00:00 2001 From: vm635318 Date: Fri, 22 Nov 2024 10:47:57 +0100 Subject: [PATCH 074/121] Fixed #4074 Signed-off-by: vm635318 --- workflows/files/ZWECONF.properties | 4 ++-- workflows/files/ZWECONF.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workflows/files/ZWECONF.properties b/workflows/files/ZWECONF.properties index e2729d21b1..405467602b 100644 --- a/workflows/files/ZWECONF.properties +++ b/workflows/files/ZWECONF.properties @@ -140,10 +140,10 @@ zowe_job_prefix=ZWE1 # zowe_externalDomains # Label: Zowe external domains -# Abstract: The domain name of your Dynamic VIP Address (DVIPA) +# Abstract: The list of external domains # Category: zowe # Description: -# The domain name of your Dynamic VIP Address (DVIPA) +# Defines a list of external domains that will be used by the Zowe instance. zowe_externalDomains=sample-domain.com # zowe_externalPort diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 9b8032d02c..476d397049 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -202,8 +202,8 @@ It is used by ZWESLSTC or by zwe command - The domain name of your Dynamic VIP Address (DVIPA) - The domain name of your Dynamic VIP Address (DVIPA) + The list of external domains + Defines a list of external domains that will be used by the Zowe instance. zowe From de927871ed781c1985053bd8eaaca38d9e2ddbc9 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Fri, 22 Nov 2024 15:24:55 +0100 Subject: [PATCH 075/121] issue4083 change prefix meaning Signed-off-by: Pavel Zlatnik --- example-zowe.yaml | 2 +- workflows/files/ZWECONF.xml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example-zowe.yaml b/example-zowe.yaml index 79d9c61186..8d13d42ee3 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -39,7 +39,7 @@ zowe: # MVS data set related configurations dataset: # **COMMONLY_CUSTOMIZED** - # where Zowe MVS data sets will be installed + # where are existing Zowe Target libraries prefix: IBMUSER.ZWEV3 # **COMMONLY_CUSTOMIZED** # PROCLIB where Zowe STCs will be copied over diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 9b8032d02c..eb3d91f74e 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -12,9 +12,9 @@ - - Where Zowe MVS data sets will be installed - Where Zowe MVS data sets will be installed + + Prefix of existing Target libraries created during PSWI or SMP/E + Prefix of existing Target libraries created during PSWI or SMP/E installation phase zowe @@ -1475,7 +1475,7 @@ echo ' setup:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # MVS data set related configurations' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' dataset:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # where Zowe MVS data sets will be installed' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # where are existing Zowe Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' prefix: $!{instance-zowe_setup_dataset_prefix}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # PROCLIB where Zowe STCs will be copied over' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From 88db6c0a893af4eedf80e9596d30c20f8cc8f75b Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 25 Nov 2024 15:19:48 +0100 Subject: [PATCH 076/121] small cleanup Signed-off-by: mm667937 --- pswi/03_create.sh | 1 - pswi/04_create_cleanup.sh | 44 +++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index b82011a09d..74be7ec8be 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -326,5 +326,4 @@ get ${SWI_NAME}.pax.Z EOF cd ../pswi -#TODO: redirect everything to $log/x ? #TODO: Check why there is name in mountpoints responses and it still doesn't show (although the mount points are different so it's good it is not doing anything) diff --git a/pswi/04_create_cleanup.sh b/pswi/04_create_cleanup.sh index 16fcc98b3b..5039141893 100644 --- a/pswi/04_create_cleanup.sh +++ b/pswi/04_create_cleanup.sh @@ -100,29 +100,27 @@ sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL -if [ "$ZOSMF_V" = "2.3" ]; then - # Unmount and delete - echo "Unmounting and deleting zFS ${WORK_ZFS}." - - echo ${JOBST1} >JCL - echo ${JOBST2} >>JCL - echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL - echo "//SYSTSPRT DD SYSOUT=*" >>JCL - echo "//SYSTSOUT DD SYSOUT=*" >>JCL - echo "//SYSTSIN DD * " >>JCL - echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL - echo "IMMEDIATE" >>JCL - echo "/*" >>JCL - echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL - echo "//SYSPRINT DD SYSOUT=*" >>JCL - echo "//SYSIN DD *" >>JCL - echo " DELETE ${WORK_ZFS}" >>JCL - echo "/*" >>JCL - - sh scripts/submit_jcl.sh "$(cat JCL)" - # Not checking results so the script doesn't fail - rm JCL -fi +# Unmount and delete +echo "Unmounting and deleting zFS ${WORK_ZFS}." + +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${WORK_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +# Not checking results so the script doesn't fail +rm JCL echo "Invoking REST API to unmount Zowe zFS ${ZOWE_ZFS} from its mountpoint." From a8035d96fc4a73f6cb6bf254637707fb590c4825 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 25 Nov 2024 15:46:08 +0100 Subject: [PATCH 077/121] I need to create PSWI version 9 Signed-off-by: mm667937 --- pswi/03_create.sh | 10 ++++----- pswi/04_create_cleanup.sh | 45 +++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 9915adfd2b..c41e3023e8 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -293,17 +293,17 @@ echo "Showing EXPORT JCL how it looks before the change" #else echo "Changing jobcard and adding SYSAFF" sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT >EXPJCL0 -sed "s|//.*gimzipInputFile.*,|EXPJCL1 -sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 -sed "s|// DD \*||g" EXPJCL2 >EXPJCL +#sed "s|//.*gimzipInputFile.*,|EXPJCL1 +#sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 +#sed "s|// DD \*||g" EXPJCL2 >EXPJCL # sed "s|ZOS003.ZWE.PSWI.|ZWE.PSWI.|g" EXPJCL3 >EXPJCL #fi -sh scripts/submit_jcl.sh "$(cat EXPJCL)" +sh scripts/submit_jcl.sh "$(cat EXPJCL0)" if [ $? -gt 0 ]; then exit -1; fi -rm ./EXPJCL +rm ./EXPJCL0 rm ./EXPORT # Pax the directory diff --git a/pswi/04_create_cleanup.sh b/pswi/04_create_cleanup.sh index 16fcc98b3b..f682379f3a 100644 --- a/pswi/04_create_cleanup.sh +++ b/pswi/04_create_cleanup.sh @@ -100,29 +100,28 @@ sh scripts/submit_jcl.sh "$(cat JCL)" # Not checking results so the script doesn't fail rm JCL -if [ "$ZOSMF_V" = "2.3" ]; then - # Unmount and delete - echo "Unmounting and deleting zFS ${WORK_ZFS}." - - echo ${JOBST1} >JCL - echo ${JOBST2} >>JCL - echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL - echo "//SYSTSPRT DD SYSOUT=*" >>JCL - echo "//SYSTSOUT DD SYSOUT=*" >>JCL - echo "//SYSTSIN DD * " >>JCL - echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL - echo "IMMEDIATE" >>JCL - echo "/*" >>JCL - echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL - echo "//SYSPRINT DD SYSOUT=*" >>JCL - echo "//SYSIN DD *" >>JCL - echo " DELETE ${WORK_ZFS}" >>JCL - echo "/*" >>JCL - - sh scripts/submit_jcl.sh "$(cat JCL)" - # Not checking results so the script doesn't fail - rm JCL -fi + +# Unmount and delete +echo "Unmounting and deleting zFS ${WORK_ZFS}." + +echo ${JOBST1} >JCL +echo ${JOBST2} >>JCL +echo "//UNMNTZFS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50" >>JCL +echo "//SYSTSPRT DD SYSOUT=*" >>JCL +echo "//SYSTSOUT DD SYSOUT=*" >>JCL +echo "//SYSTSIN DD * " >>JCL +echo "UNMOUNT FILESYSTEM('${WORK_ZFS}') + " >>JCL +echo "IMMEDIATE" >>JCL +echo "/*" >>JCL +echo "//DELTZFST EXEC PGM=IDCAMS" >>JCL +echo "//SYSPRINT DD SYSOUT=*" >>JCL +echo "//SYSIN DD *" >>JCL +echo " DELETE ${WORK_ZFS}" >>JCL +echo "/*" >>JCL + +sh scripts/submit_jcl.sh "$(cat JCL)" +# Not checking results so the script doesn't fail +rm JCL echo "Invoking REST API to unmount Zowe zFS ${ZOWE_ZFS} from its mountpoint." From 6010478057daa9d35a1833f9e6c04258a4096695 Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 25 Nov 2024 16:36:31 +0100 Subject: [PATCH 078/121] I forgot that I can't run the tests Signed-off-by: mm667937 --- pswi/PSWI-marist.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index 50c719367d..da7c24c284 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -134,13 +134,13 @@ if [ $presmpe -eq 0 ]; then if [ $create -eq 0 ]; then # Test PSWI sh 05_test.sh - test=$? - - if [ $test -eq 0 ]; then - #test the workflows - sh 051_test_workflows.sh - wf_test=$? - fi +# test=$? +# +# if [ $test -eq 0 ]; then +# #test the workflows +# sh 051_test_workflows.sh +# wf_test=$? +# fi # Cleanup after the test sh 06_test_cleanup.sh fi From b0bb345870532ddddfd7422213d06c847eb9d01d Mon Sep 17 00:00:00 2001 From: mm667937 Date: Tue, 26 Nov 2024 16:26:53 +0100 Subject: [PATCH 079/121] back to old wrong methd because I will fix that in later PR Signed-off-by: mm667937 --- pswi/03_create.sh | 10 +++++----- pswi/PSWI-marist.sh | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index c41e3023e8..9915adfd2b 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -293,17 +293,17 @@ echo "Showing EXPORT JCL how it looks before the change" #else echo "Changing jobcard and adding SYSAFF" sed "s|//IZUD01EX JOB (ACCOUNT),'NAME'|$JOBST1\n$JOBST2|g" EXPORT >EXPJCL0 -#sed "s|//.*gimzipInputFile.*,|EXPJCL1 -#sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 -#sed "s|// DD \*||g" EXPJCL2 >EXPJCL +sed "s|//.*gimzipInputFile.*,|EXPJCL1 +sed "s|// FILEDATA=TEXT| archid=\"ZOS003.ZWE.PSWI.AZWE003.ZFS\"/>|g" EXPJCL1 >EXPJCL2 +sed "s|// DD \*||g" EXPJCL2 >EXPJCL # sed "s|ZOS003.ZWE.PSWI.|ZWE.PSWI.|g" EXPJCL3 >EXPJCL #fi -sh scripts/submit_jcl.sh "$(cat EXPJCL0)" +sh scripts/submit_jcl.sh "$(cat EXPJCL)" if [ $? -gt 0 ]; then exit -1; fi -rm ./EXPJCL0 +rm ./EXPJCL rm ./EXPORT # Pax the directory diff --git a/pswi/PSWI-marist.sh b/pswi/PSWI-marist.sh index da7c24c284..50c719367d 100755 --- a/pswi/PSWI-marist.sh +++ b/pswi/PSWI-marist.sh @@ -134,13 +134,13 @@ if [ $presmpe -eq 0 ]; then if [ $create -eq 0 ]; then # Test PSWI sh 05_test.sh -# test=$? -# -# if [ $test -eq 0 ]; then -# #test the workflows -# sh 051_test_workflows.sh -# wf_test=$? -# fi + test=$? + + if [ $test -eq 0 ]; then + #test the workflows + sh 051_test_workflows.sh + wf_test=$? + fi # Cleanup after the test sh 06_test_cleanup.sh fi From 29147a938c75805d9cbbc0b15f4f6ac9678ad136 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Tue, 26 Nov 2024 15:31:19 -0500 Subject: [PATCH 080/121] remove additional references to node 16, remove optional 18 builds (now default) Signed-off-by: MarkAckert --- .github/scripts/cicd_test/make_matrix.sh | 5 --- .github/workflows/cicd-test-readme.md | 5 +-- .github/workflows/cicd-test.yml | 11 ++--- .../extended/node-versions/node-v18.ts | 45 ------------------- 4 files changed, 5 insertions(+), 61 deletions(-) delete mode 100644 tests/installation/src/__tests__/extended/node-versions/node-v18.ts diff --git a/.github/scripts/cicd_test/make_matrix.sh b/.github/scripts/cicd_test/make_matrix.sh index 81273471ab..0af3d8cd77 100644 --- a/.github/scripts/cicd_test/make_matrix.sh +++ b/.github/scripts/cicd_test/make_matrix.sh @@ -32,11 +32,6 @@ case $install_test_choice in test_file="$KEYRING_TESTFILE" ;; -"z/OS node v18") - test_file="$ZOS_NODE_V18_TESTFILE" - test_force_system="zzow11" - ;; - "z/OS node v20") test_file="$ZOS_NODE_V20_TESTFILE" ;; diff --git a/.github/workflows/cicd-test-readme.md b/.github/workflows/cicd-test-readme.md index 923f964805..66d1a58c12 100644 --- a/.github/workflows/cicd-test-readme.md +++ b/.github/workflows/cicd-test-readme.md @@ -29,7 +29,7 @@ Workflow trigger is at [cicd-test](https://github.com/zowe/zowe-install-packagin - SMPE PTF - Extensions - Keyring - - z/OS node v18 + - z/OS node v20 - Non-strict Verify External Certificate - Install PTF twice - VSAM Caching storage method @@ -109,7 +109,7 @@ Background: CICD testing relies on a `zowe.pax` or `zowe-smpe.zip` (for SMPE ins When running CICD integration tests during RC stage, the following string will be parsed into the Github Actions matrix. As a result, a total of 21 independent jobs will be spawned. ``` -basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v18.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09) +basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09) ``` Total elapsed time when running in parallel is approximately 3.5 hours on paper idealy if all parallel jobs are executing at the same time. In reality, from numerous tests performed, total elapsed time is around 4 hours. @@ -121,7 +121,6 @@ Selected test running elapsed time: | ---- | ------------ | | Convenience Pax | 53m | | SMPE PTF | 68m | -| z/OS node v18 | 45m | | z/OS node v20 | 45m | | Keyring | 53m | | Non-strict Verify External Certificate | 51m | diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 7adab9b6c4..f6812623e6 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -31,7 +31,6 @@ on: - SMPE PTF - Extensions - Keyring - - z/OS node v18 - z/OS node v20 - Non-strict Verify External Certificate - Install PTF Twice @@ -69,8 +68,8 @@ env: DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/{ext-version}/{ext-name}-*.pax # below block can be overwritten, adjusted by DevOps only - # ZOS_NODE_VERSION more to choose from: v16.20.1, v18.16.0 - ZOS_NODE_VERSION: v16.20.1 + # ZOS_NODE_VERSION more to choose from: v18.16.0, v20.11.0 + ZOS_NODE_VERSION: v18.16.0 CLIENT_NODE_VERSION: v12.18.3 INSTALL_TEST_DEBUG_INFORMATION: zowe-install-test:* SANITY_TEST_DEBUG_INFORMATION: zowe-sanity-test:* @@ -81,7 +80,6 @@ env: SMPE_PTF_TESTFILE: basic/install-ptf.ts EXTENSIONS_TESTFILE: basic/install-ext.ts KEYRING_TESTFILE: extended/keyring.ts - ZOS_NODE_V18_TESTFILE: extended/node-versions/node-v18.ts ZOS_NODE_V20_TESTFILE: extended/node-versions/node-v20.ts NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE: extended/certificates/nonstrict-verify-external-certificate.ts INSTALL_PTF_TWICE_TESTFILE: extended/install-ptf-two-times.ts @@ -90,7 +88,7 @@ env: CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all) - ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v18.ts(zzow11):extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) + ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(zzow11):extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) jobs: display-dispatch-event-id: @@ -298,9 +296,6 @@ jobs: case 'Keyring': eta = 53 break; - case 'z/OS node v18': - eta = 45 - break; case 'z/OS node v20': eta = 45 break; diff --git a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts b/tests/installation/src/__tests__/extended/node-versions/node-v18.ts deleted file mode 100644 index d6345a1df6..0000000000 --- a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License v2.0 which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-v20.html - * - * SPDX-License-Identifier: EPL-2.0 - * - * Copyright IBM Corporation 2022 - */ - -import { - checkMandatoryEnvironmentVariables, - installAndVerifyConvenienceBuild, - showZoweRuntimeLogs, -} from '../../../utils'; -import { TEST_TIMEOUT_CONVENIENCE_BUILD } from '../../../constants'; - -// Only runs on zzow11 at time of change (04.2023). See cicd-test.yml and make_matrix.sh. -const testServer = process.env.TEST_SERVER; -const testSuiteName = 'Test convenience build installation with node.js v18'; -describe(testSuiteName, () => { - beforeAll(() => { - // validate variables - checkMandatoryEnvironmentVariables([ - 'ZOWE_BUILD_LOCAL', - ]); - }); - - test('install and verify', async () => { - await installAndVerifyConvenienceBuild( - testSuiteName, - testServer, - { - 'zowe_build_local': process.env['ZOWE_BUILD_LOCAL'], - 'zowe_custom_for_test': 'true', - 'zos_node_home': '/ZOWE/node/node-v18.16.0', - 'zowe_lock_keystore': 'false', - } - ); - }, TEST_TIMEOUT_CONVENIENCE_BUILD); - - afterAll(async () => { - await showZoweRuntimeLogs(testServer); - }) -}); From 417179da0292fa097554e2fc978090dc721df644 Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Wed, 27 Nov 2024 09:43:52 +0100 Subject: [PATCH 081/121] update based on feedback Signed-off-by: Pavel Zlatnik --- example-zowe.yaml | 2 +- workflows/files/ZWECONF.xml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example-zowe.yaml b/example-zowe.yaml index 8d13d42ee3..b7ec51f594 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -39,7 +39,7 @@ zowe: # MVS data set related configurations dataset: # **COMMONLY_CUSTOMIZED** - # where are existing Zowe Target libraries + # HLQ where are existing Zowe SZWEEXEC Target libraries prefix: IBMUSER.ZWEV3 # **COMMONLY_CUSTOMIZED** # PROCLIB where Zowe STCs will be copied over diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index eb3d91f74e..909109caca 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -12,9 +12,9 @@ - - Prefix of existing Target libraries created during PSWI or SMP/E - Prefix of existing Target libraries created during PSWI or SMP/E installation phase + + Prefix (HLQ) of existing SZWEEXEC Target libraries created during PSWI or SMP/E + Prefix (HLQ) of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase zowe @@ -1475,7 +1475,7 @@ echo ' setup:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # MVS data set related configurations' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' dataset:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # where are existing Zowe Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # HLQ where are existing Zowe SZWEEXEC Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' prefix: $!{instance-zowe_setup_dataset_prefix}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # PROCLIB where Zowe STCs will be copied over' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From 5e701b5715633209632f5a0ca8b91be9a35aeed4 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 27 Nov 2024 11:32:38 -0500 Subject: [PATCH 082/121] adds python sdk to sourceDependencies. adds new field "core" to source dep entry Signed-off-by: MarkAckert --- manifest.json.template | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index c5875b440b..7e9f3b1841 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -122,7 +122,7 @@ "version": "~2.0.0-SNAPSHOT" }, "org.zowe.licenses": { - "version": "2.3.0", + "version": "3.0.0", "artifact": "zowe_licenses_full.zip" } }, @@ -347,6 +347,14 @@ "tag": "v2.x/master", "destinations": ["Zowe PAX"] }] + }, { + "componentGroup": "Zowe Client Python SDK", + "entries": [{ + "repository": "zowe-client-python-sdk", + "core": false, + "tag": "main", + "destinations": ["Zowe Client Python SDK"] + }] } ], "imageDependencies": { From 9820462420159ceec615e8fe19ed5bfdf155044a Mon Sep 17 00:00:00 2001 From: Pavel Zlatnik Date: Thu, 28 Nov 2024 09:59:43 +0100 Subject: [PATCH 083/121] update based on Mark's feedback Signed-off-by: Pavel Zlatnik --- example-zowe.yaml | 2 +- workflows/files/ZWECONF.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/example-zowe.yaml b/example-zowe.yaml index b7ec51f594..1c857ad5f3 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -39,7 +39,7 @@ zowe: # MVS data set related configurations dataset: # **COMMONLY_CUSTOMIZED** - # HLQ where are existing Zowe SZWEEXEC Target libraries + # where are existing Zowe SZWEEXEC Target libraries prefix: IBMUSER.ZWEV3 # **COMMONLY_CUSTOMIZED** # PROCLIB where Zowe STCs will be copied over diff --git a/workflows/files/ZWECONF.xml b/workflows/files/ZWECONF.xml index 909109caca..8f834b42f8 100644 --- a/workflows/files/ZWECONF.xml +++ b/workflows/files/ZWECONF.xml @@ -13,8 +13,8 @@ - Prefix (HLQ) of existing SZWEEXEC Target libraries created during PSWI or SMP/E - Prefix (HLQ) of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase + Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E + Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase zowe @@ -1475,7 +1475,7 @@ echo ' setup:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # MVS data set related configurations' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' dataset:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # HLQ where are existing Zowe SZWEEXEC Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # where are existing Zowe SZWEEXEC Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' prefix: $!{instance-zowe_setup_dataset_prefix}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # PROCLIB where Zowe STCs will be copied over' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" From 40e625432698d55e4ca229c0f6546710d8253a4d Mon Sep 17 00:00:00 2001 From: Martin Zeithaml Date: Thu, 28 Nov 2024 11:08:05 +0100 Subject: [PATCH 084/121] Delete last char Signed-off-by: Martin Zeithaml --- bin/commands/init/certificate/index.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/commands/init/certificate/index.sh b/bin/commands/init/certificate/index.sh index df10620ad0..90106839fb 100644 --- a/bin/commands/init/certificate/index.sh +++ b/bin/commands/init/certificate/index.sh @@ -99,11 +99,11 @@ fi save_trace=$ZWE_PRIVATE_LOG_LEVEL_ZWELS ZWE_PRIVATE_LOG_LEVEL_ZWELS= # read keystore domains -cert_import_CAs=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',') +cert_import_CAs=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.importCertificateAuthorities" | tr '\n' ',' | awk '{ print substr( $0, 1, length($0)-1 ) }') # read keystore domains -cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.san" | tr '\n' ',') +cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.setup.certificate.san" | tr '\n' ',' | awk '{ print substr( $0, 1, length($0)-1 ) }') if [ -z "${cert_domains}" ]; then - cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.externalDomains" | tr '\n' ',') + cert_domains=$(zwecli_inline_execute_command internal config get --config "${ZWE_CLI_PARAMETER_CONFIG}" --path ".zowe.externalDomains" | tr '\n' ',' | awk '{ print substr( $0, 1, length($0)-1 ) }') fi ZWE_PRIVATE_LOG_LEVEL_ZWELS=$save_trace From b1ce76f42829efe0947696dd7dbc8c4b365c9ded Mon Sep 17 00:00:00 2001 From: mm667937 Date: Fri, 6 Dec 2024 15:42:30 +0100 Subject: [PATCH 085/121] deleted print Signed-off-by: mm667937 --- pswi/scripts/deploy_test_2_3.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 981f4e33a3..aa51b4976d 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -182,7 +182,6 @@ def create_zfs(self): new_zfs_url = "{0}/zosmf/restfiles/mfs/zfs/{1}".format(self.url, self.new_zfs + ".%23") new_zfs_resp = requests.post(new_zfs_url, headers=self.headers, auth=(user, password), data=json.dumps(new_zfs), verify=False) - print("When this script fail this zFS {0} might not be unmounted!%23 is #".format(self.new_zfs + ".%23")) if new_zfs_resp.status_code != 201: print("Status code: {0}".format(new_zfs_resp.status_code)) raise requests.exceptions.RequestException(new_zfs_resp.text) From 84f5c48de021e50cdb256bfa0a99baf850881d77 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 6 Dec 2024 15:56:15 -0500 Subject: [PATCH 086/121] setup lychee link check Signed-off-by: MarkAckert --- .github/lychee.toml | 12 +++++++++ .github/workflows/link-check-weekly.yml | 25 ----------------- .github/workflows/link-check.yml | 36 +++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 25 deletions(-) create mode 100644 .github/lychee.toml delete mode 100644 .github/workflows/link-check-weekly.yml create mode 100644 .github/workflows/link-check.yml diff --git a/.github/lychee.toml b/.github/lychee.toml new file mode 100644 index 0000000000..d256ce025a --- /dev/null +++ b/.github/lychee.toml @@ -0,0 +1,12 @@ +# This lychee configuration tries to find dead links in zwe, pswi, and smpe files which may be displayed to the user. +# This does not focus on dead links for internal-facing documentation, e.g. README.md. + +# We're including language sources as well as document files since the language sources embed URLs +# which can be displayed to the user, e.g. 'zwe' shell script commands displaying help information. + +exclude_path = ['smpe/bld/service/_README_sample_sysmod_builds.docx'] +# This exclude list covers known urls which should be ignored, including ones which contained +# templated values in typescript. The templates are covered by a wildcard. +exclude = [ 'https://www.eclipse.org/legal/epl-v20.html', 'https://zowe.org/schemas/*', 'https://www.zowe.org/schemas/*', 'https://discovery', 'https://github.com/zowe/launcher/blob/*', 'https://myregistry/url$', 'https://your-zos-host-name/zosmf/*{1,60}', '^http://service.software.ibm.com/holdata/390holddata.html', ] + +hidden = true diff --git a/.github/workflows/link-check-weekly.yml b/.github/workflows/link-check-weekly.yml deleted file mode 100644 index 21a91b5417..0000000000 --- a/.github/workflows/link-check-weekly.yml +++ /dev/null @@ -1,25 +0,0 @@ -permissions: read-all - -name: Check Markdown Links - Weekly - -on: - push: - branches: - - 'v3.x/master' - - 'v3.x/staging' - - 'v2.x/master' - - 'v2.x/staging' - - 'v1.x/master' - - 'v1.x/staging' - schedule: - # Every day @ 4 AM - - cron: "0 4 * * *" - -jobs: - markdown-link-check: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - - - uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # v1.0.15 diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 0000000000..43e8a896e8 --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,36 @@ +permissions: read-all + +name: Link Check CI + +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - 'v3.x/staging' + - 'v2.x/staging' + workflow_dispatch: + +jobs: + lychee-link-check: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Link Checker + id: lychee + uses: lycheeverse/lychee-action@f81112d0d2814ded911bd23e3beaa9dda9093915 # v2.1.0 + with: + fail: true + format: json + output: lychee_output.json + args: --config ./.github/lychee.toml --no-progress --verbose --max-retries 10 'bin/**/*' 'smpe/**/*' 'workflows/**/*' + + - name: Publish Output + id: publish + if: always() + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 + with: + name: lychee_results.json + path: lychee_output.json From 623320b702a2ef9f36bdc53fb02a3d495afc8fef Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 6 Dec 2024 16:03:16 -0500 Subject: [PATCH 087/121] add easier console error review Signed-off-by: MarkAckert --- .github/workflows/link-check.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index 43e8a896e8..c7d3b990a5 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -27,6 +27,11 @@ jobs: output: lychee_output.json args: --config ./.github/lychee.toml --no-progress --verbose --max-retries 10 'bin/**/*' 'smpe/**/*' 'workflows/**/*' + - name: Output failed links in console + id: quick-output + run: | + jq .fail_map lychee_output.json + - name: Publish Output id: publish if: always() From 6f033e660cdfb068b2dcaa3c2b6823f4fc791a89 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 6 Dec 2024 16:05:50 -0500 Subject: [PATCH 088/121] update jq step to always run Signed-off-by: MarkAckert --- .github/workflows/link-check.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index c7d3b990a5..04dda81ae7 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -29,8 +29,13 @@ jobs: - name: Output failed links in console id: quick-output + if: always() run: | - jq .fail_map lychee_output.json + if [[ -f "lychee_output.json" ]]; then + jq .fail_map lychee_output.json + else + echo "lychee command failed and didn't produce output" + fi - name: Publish Output id: publish From 7a6ac4603b9244e33d84dc6ccbe00c0c0d89fb2f Mon Sep 17 00:00:00 2001 From: mm667937 Date: Mon, 9 Dec 2024 16:53:16 +0100 Subject: [PATCH 089/121] dead links fixed Signed-off-by: mm667937 --- workflows/files/ZWELOADC.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workflows/files/ZWELOADC.xml b/workflows/files/ZWELOADC.xml index c823b2b813..786e28fb37 100644 --- a/workflows/files/ZWELOADC.xml +++ b/workflows/files/ZWELOADC.xml @@ -192,7 +192,7 @@ Use this step to define the variables for RACF.

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here - configure RACF security certificates + configure RACF security certificates or there RACDCERT ADD (Add certificate) command.

]]> 1 @@ -252,7 +252,7 @@ Use this step to define the variables for ACF2.

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation - configure ACF2 security certificates.

+ configure ACF2 security certificates.

]]>
1 Security Administrator @@ -367,7 +367,7 @@ This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here - configure RACF security certificates
+ configure RACF security certificates
or there RACDCERT ADD (Add certificate) command.

]]>
1 @@ -452,7 +452,7 @@ DCDSN(${instance-output_dataset}) TRUST This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation - configure ACF2 security certificates.

+ configure ACF2 security certificates.

]]>
1 Security Administrator From b98256b3429aedd7d95a99975bcb5690e908ea3b Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Mon, 9 Dec 2024 10:56:13 -0500 Subject: [PATCH 090/121] change node_home_pattern Signed-off-by: MarkAckert --- .../cicd_test/prep7_more_test_prep/06_process_outputs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh b/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh index bce1d40594..a3865351c8 100644 --- a/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh +++ b/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh @@ -13,7 +13,7 @@ # Set outputs echo ZOWE_ARTIFACTORY_FINAL=$ZOWE_ARTIFACTORY_FINAL >>$GITHUB_OUTPUT echo ZOWE_ARTIFACTORY_FINAL_FILENAME=$ZOWE_ARTIFACTORY_FINAL_FILENAME >>$GITHUB_OUTPUT -echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION-os390-s390x >>$GITHUB_OUTPUT +echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION >>$GITHUB_OUTPUT echo TEST_SERVER=$TEST_SERVER >>$GITHUB_OUTPUT echo TEST_SERVER_NICKNAME=$TEST_SERVER_NICKNAME >>$GITHUB_OUTPUT echo EXTENSION_LIST=$EXTENSION_LIST >>$GITHUB_OUTPUT @@ -28,4 +28,4 @@ printf "Zowe CLI artifactory path: ${CYAN}$ZOWE_CLI_ARTIFACTORY_FINAL${NC}\n" printf "Zowe extension list: ${CYAN}$EXTENSION_LIST${NC}\n" printf "Test server: ${CYAN}$TEST_SERVER${NC}\n" printf "Test server nickname: ${CYAN}$TEST_SERVER_NICKNAME${NC}\n" -printf "Node home pattern on z/OS: ${CYAN}/ZOWE/node/node-$ZOS_NODE_VERSION-os390-s390x${NC}\n" +printf "Node home pattern on z/OS: ${CYAN}/ZOWE/node/node-$ZOS_NODE_VERSION${NC}\n" From 1323392789750fb6eb30d5617976f12d5ae7c041 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Mon, 9 Dec 2024 16:21:13 -0500 Subject: [PATCH 091/121] add node-v22 tests and add them to extended suite Signed-off-by: MarkAckert --- .github/scripts/cicd_test/make_matrix.sh | 4 ++ .github/workflows/cicd-test.yml | 4 +- .../extended/node-versions/node-v22.ts | 44 +++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 tests/installation/src/__tests__/extended/node-versions/node-v22.ts diff --git a/.github/scripts/cicd_test/make_matrix.sh b/.github/scripts/cicd_test/make_matrix.sh index 0af3d8cd77..4aea7a10ae 100644 --- a/.github/scripts/cicd_test/make_matrix.sh +++ b/.github/scripts/cicd_test/make_matrix.sh @@ -36,6 +36,10 @@ case $install_test_choice in test_file="$ZOS_NODE_V20_TESTFILE" ;; +"z/OS node v22") + test_file="$ZOS_NODE_V22_TESTFILE" + ;; + "Non-strict Verify External Certificate") test_file="$NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE" ;; diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index f6812623e6..84571eaab5 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -32,6 +32,7 @@ on: - Extensions - Keyring - z/OS node v20 + - z/OS node v22 - Non-strict Verify External Certificate - Install PTF Twice - VSAM Caching Storage Method @@ -81,6 +82,7 @@ env: EXTENSIONS_TESTFILE: basic/install-ext.ts KEYRING_TESTFILE: extended/keyring.ts ZOS_NODE_V20_TESTFILE: extended/node-versions/node-v20.ts + ZOS_NODE_V22_TESTFILE: extended/node-versions/node-v22.ts NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE: extended/certificates/nonstrict-verify-external-certificate.ts INSTALL_PTF_TWICE_TESTFILE: extended/install-ptf-two-times.ts VSAM_CACHING_STORAGE_METHOD_TESTFILE: extended/caching-storages/vsam-storage.ts @@ -88,7 +90,7 @@ env: CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all) - ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(zzow11):extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) + ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(any);extended/node-versions/node-v22.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) jobs: display-dispatch-event-id: diff --git a/tests/installation/src/__tests__/extended/node-versions/node-v22.ts b/tests/installation/src/__tests__/extended/node-versions/node-v22.ts new file mode 100644 index 0000000000..8375055f01 --- /dev/null +++ b/tests/installation/src/__tests__/extended/node-versions/node-v22.ts @@ -0,0 +1,44 @@ +/** + * This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-v20.html + * + * SPDX-License-Identifier: EPL-2.0 + * + * Copyright Zowe Contributors 2024 + */ + +import { + checkMandatoryEnvironmentVariables, + installAndVerifyConvenienceBuild, + showZoweRuntimeLogs, +} from '../../../utils'; +import { TEST_TIMEOUT_CONVENIENCE_BUILD } from '../../../constants'; + +const testServer = process.env.TEST_SERVER; +const testSuiteName = 'Test convenience build installation with node.js v22'; +describe(testSuiteName, () => { + beforeAll(() => { + // validate variables + checkMandatoryEnvironmentVariables([ + 'ZOWE_BUILD_LOCAL', + ]); + }); + + test('install and verify', async () => { + await installAndVerifyConvenienceBuild( + testSuiteName, + testServer, + { + 'zowe_build_local': process.env['ZOWE_BUILD_LOCAL'], + 'zowe_custom_for_test': 'true', + 'zos_node_home': '/ZOWE/node/node-v22.10.0', + 'zowe_lock_keystore': 'false', + } + ); + }, TEST_TIMEOUT_CONVENIENCE_BUILD); + + afterAll(async () => { + await showZoweRuntimeLogs(testServer); + }) +}); From c4e72334a785f9f50916127662e1d48dea121b2c Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Tue, 10 Dec 2024 13:30:12 -0500 Subject: [PATCH 092/121] add comment describing the link checker workflow Signed-off-by: MarkAckert --- .github/workflows/link-check.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index 04dda81ae7..d11b069c7a 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -1,3 +1,6 @@ +# This link checker focuses on covering end-user facing links, not developer documentation. +# This means we cover the smp/e, pswi, and zwe content. +# The lychee toml files are set to ignore links which popped up in comments or variables. permissions: read-all name: Link Check CI From 9d459e1fac255f5ba1739c789ac56a796de4a2c9 Mon Sep 17 00:00:00 2001 From: OnnoVdT <49648041+OnnoVdT@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:19:43 -0500 Subject: [PATCH 093/121] new PTF numbers (#4109) Signed-off-by: ONNO VAN DEN TROOST --- smpe/bld/service/ptf-bucket.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 smpe/bld/service/ptf-bucket.txt diff --git a/smpe/bld/service/ptf-bucket.txt b/smpe/bld/service/ptf-bucket.txt new file mode 100644 index 0000000000..c7884f8ddd --- /dev/null +++ b/smpe/bld/service/ptf-bucket.txt @@ -0,0 +1,9 @@ +#----------------------------------------------------------------------# +# NOTE FOR PULL REQUEST APPROVER: # +# This file may only be updated when IBM provides more PTF numbers, or # +# when a Release Candidate PTF is promoted. Reject ALL other updates. # +#----------------------------------------------------------------------# +# +# format: - [] +UO90082 UO90083 - IO29468 IO29469 IO29470 +UO90084 UO90085 - IO29471 IO29472 IO29473 From bb648cc79de4e00799712003768bb1a1a730e018 Mon Sep 17 00:00:00 2001 From: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:42:56 -0500 Subject: [PATCH 094/121] switch v3 nightly to ptf builds (#4110) Signed-off-by: MarkAckert --- .github/workflows/cicd-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 84571eaab5..0e3a32e054 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -89,8 +89,8 @@ env: INFINISPAN_CACHING_STORAGE_METHOD_TESTFILE: extended/caching-storages/infinispan-storage.ts CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts - ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all) - ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-fmid.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(any);extended/node-versions/node-v22.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) + ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all) + ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(any);extended/node-versions/node-v22.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) jobs: display-dispatch-event-id: From bd788d6f769e137dacb45402316a20aa3e753a85 Mon Sep 17 00:00:00 2001 From: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Date: Wed, 18 Dec 2024 09:12:53 -0500 Subject: [PATCH 095/121] Fix v3 PTF Build (#4111) * found some lingering azwe002 references Signed-off-by: MarkAckert * update cli package to v3 Signed-off-by: MarkAckert * remove v2 holddata in playbook and replace it with no-op Signed-off-by: MarkAckert * dropped the PGM Signed-off-by: MarkAckert * update cli version in tests Signed-off-by: MarkAckert * fix the cli match string Signed-off-by: MarkAckert --------- Signed-off-by: MarkAckert --- .github/workflows/build-packaging.yml | 2 +- .github/workflows/cicd-test.yml | 2 +- playbooks/install-fmid.yml | 2 +- playbooks/roles/ptf/templates/HOLDDATA.jcl.j2 | 29 ++++--------------- tests/installation/src/constants.ts | 2 +- tests/sanity/test/cli/test-01-version.js | 2 +- 6 files changed, 10 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build-packaging.yml b/.github/workflows/build-packaging.yml index 73e526a4f3..a5bd922b52 100644 --- a/.github/workflows/build-packaging.yml +++ b/.github/workflows/build-packaging.yml @@ -351,7 +351,7 @@ jobs: - name: '[PSWI 0] PSWI pre-build check for existing smpe' if: env.INPUTS_BUILD_PSWI == 'true' && github.event.inputs.PSWI_SMPE_ARTIFACTORY_PATH != '' && github.event.inputs.PSWI_SMPE_AZWE_ARTIFACTORY_PATH != '' run: | - jfrog rt dl ${{github.event.inputs.PSWI_SMPE_AZWE_ARTIFACTORY_PATH}}/AZWE002*.zip --flat=true .pax/AZWE002.zip + jfrog rt dl ${{github.event.inputs.PSWI_SMPE_AZWE_ARTIFACTORY_PATH}}/AZWE003*.zip --flat=true .pax/AZWE003.zip jfrog rt dl ${{github.event.inputs.PSWI_SMPE_ARTIFACTORY_PATH}}/zowe-smpe-*.zip --flat=true .pax/zowe-smpe.zip - name: '[SMPE Pax 4] Build PSWI' diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 0e3a32e054..191197433f 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -65,7 +65,7 @@ env: SANITY_TEST_PATH: tests/sanity DEFAULT_ZOWE_PAX_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/*zowe*{branch-name}*.pax DEFAULT_ZOWE_SMPE_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/*zowe-smpe*{branch-name}*.zip - DEFAULT_ZOWE_CLI_ARTIFACTORY_PATTERN: PLACE_HOLDER/org/zowe/cli/zowe-cli-package/*zowe-cli-package-2*.zip + DEFAULT_ZOWE_CLI_ARTIFACTORY_PATTERN: PLACE_HOLDER/org/zowe/cli/zowe-cli-package/*zowe-cli-package-3*.zip DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/{ext-version}/{ext-name}-*.pax # below block can be overwritten, adjusted by DevOps only diff --git a/playbooks/install-fmid.yml b/playbooks/install-fmid.yml index 715838ec28..0c2602776b 100644 --- a/playbooks/install-fmid.yml +++ b/playbooks/install-fmid.yml @@ -60,7 +60,7 @@ # ============================================================================ # if zowe_build_remote is set, we copy the FMID from zowe_fmids_dir_remote to our work folder - # the value of zowe_build_remote should be FMID like AZWE002 + # the value of zowe_build_remote should be FMID like AZWE003 - name: Copy Zowe FMID files from {{ zowe_fmids_dir_remote }}/{{ zowe_build_remote }} if it has value when: zowe_build_remote is defined import_role: diff --git a/playbooks/roles/ptf/templates/HOLDDATA.jcl.j2 b/playbooks/roles/ptf/templates/HOLDDATA.jcl.j2 index dcd56f1979..927a40c9d5 100644 --- a/playbooks/roles/ptf/templates/HOLDDATA.jcl.j2 +++ b/playbooks/roles/ptf/templates/HOLDDATA.jcl.j2 @@ -1,24 +1,5 @@ -//SZWELOAD JOB -// EXPORT SYMLIST=(TZON,TRGT) -// SET TRGT={{ zowe_smpe_hlq_tzone }} -// SET SMPE={{ zowe_smpe_hlq_csi }} -// SET TZON=TZONE -//UCLIN EXEC PGM=GIMSMP,REGION=0M,COND=(4,LT) -//SZWELOAD DD SPACE=(TRK,(30,15,15)), -// UNIT=SYSALLDA, -// DISP=(MOD,CATLG), -// DSNTYPE=LIBRARY, -// RECFM=U, -// LRECL=0, -// BLKSIZE=32760, -// DSN=&TRGT..SZWELOAD -//SMPCSI DD DISP=OLD,DSN={{ smpe_csi }} -//SMPCNTL DD *,SYMBOLS=JCLONLY - SET BDY(&TZON). - UCLIN. - ADD DDDEF (SZWELOAD) - DATASET(&TRGT..SZWELOAD) - UNIT(SYSALLDA) - WAITFORDSN - SHR . - ENDUCL. +//HOLDDATA JOB +//* This job can be customized if holddata actions are added to Zowe PTFs +//* For example, adding a new load module to an SMP/e-managed dataset. +//DUMMY EXEC PGM=IEFBR14 +//* diff --git a/tests/installation/src/constants.ts b/tests/installation/src/constants.ts index c60aa86853..afe1dd8e07 100644 --- a/tests/installation/src/constants.ts +++ b/tests/installation/src/constants.ts @@ -13,7 +13,7 @@ import * as path from 'path'; // const debug = Debug('zowe-install-test:constants'); // the FMID we will use to test PTF -export const ZOWE_FMID = 'AZWE002'; +export const ZOWE_FMID = 'AZWE003'; // where ansible playbooks located export const ANSIBLE_ROOT_DIR: string = path.resolve(__dirname, '../../../playbooks'); diff --git a/tests/sanity/test/cli/test-01-version.js b/tests/sanity/test/cli/test-01-version.js index 9b52be55ed..861fde287b 100644 --- a/tests/sanity/test/cli/test-01-version.js +++ b/tests/sanity/test/cli/test-01-version.js @@ -28,6 +28,6 @@ describe('cli version', function() { expect(result).to.have.property('stderr'); expect(result.stderr).to.be.empty; - expect(result.stdout).to.match(/^7\./); + expect(result.stdout).to.match(/^CLI Version: 8\./); }); }); From c1c45a74907e1f05d2b872e21c12913ec488f81c Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Wed, 8 Jan 2025 11:43:28 +0000 Subject: [PATCH 096/121] Update component versions Signed-off-by: zowe-robot --- manifest.json.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 53650d59eb..717998d018 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -205,7 +205,7 @@ "componentGroup": "Zowe CLI", "entries": [{ "repository": "zowe-cli", - "tag": "v8.0.0", + "tag": "v8.10.4", "destinations": ["Zowe CLI Package"] }] }, { @@ -219,7 +219,7 @@ "componentGroup": "IBM® Db2® Plug-in for Zowe CLI", "entries": [{ "repository": "zowe-cli-db2-plugin", - "tag": "v6.0.0", + "tag": "v6.1.0", "destinations": ["Zowe CLI Package"] }] }, { From a44cfabf582750d5deb8324d0cfe852010324914 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Wed, 8 Jan 2025 08:36:11 -0500 Subject: [PATCH 097/121] Update manifest.json.template Signed-off-by: Timothy Johnson --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index 717998d018..4b2fbb0396 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -212,7 +212,7 @@ "componentGroup": "IBM® CICS® Plug-in for Zowe CLI", "entries": [{ "repository": "cics-for-zowe-client", - "tag": "v6.0.0", + "tag": "v6.2.4", "destinations": ["Zowe CLI Package"] }] }, { From 45f1f5b47cb686f0ddb983757a10e6a76d6d2903 Mon Sep 17 00:00:00 2001 From: James Struga Date: Wed, 8 Jan 2025 09:37:36 -0500 Subject: [PATCH 098/121] WebUI RC1 v3.1.0 Signed-off-by: James Struga --- manifest.json.template | 58 +++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 53650d59eb..4f1f55f98f 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -1,6 +1,6 @@ { "name": "Zowe", - "version": "3.0.0", + "version": "3.1.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", @@ -12,9 +12,9 @@ }, "binaryDependencies": { "org.zowe.zlux.zlux-core": { - "version": "3.0.0-RC", + "version": "3.1.0-RC", "repository": "libs-snapshot-local", - "artifact": "zlux-core-3.0.0-20240925.185019.pax" + "artifact": "zlux-core-3.1.0-20250107.161516.pax" }, "org.zowe.zlux.sample-angular-app": { "version": "2.18.0-V2.X-RC", @@ -32,14 +32,14 @@ "artifact": "sample-react-app-2.18.0-20240814.141704.pax" }, "org.zowe.zlux.tn3270-ng2": { - "version": "3.0.0-V3.X-RC", + "version": "3.1.0-V3.X-RC", "repository": "libs-snapshot-local", - "artifact": "tn3270-ng2-3.0.0-20240919.130824.pax" + "artifact": "tn3270-ng2-3.1.0-20250108.141502.pax" }, "org.zowe.zlux.vt-ng2": { - "version": "3.0.0-V3.X-RC", + "version": "3.1.0-V3.X-RC", "repository": "libs-snapshot-local", - "artifact": "vt-ng2-3.0.0-20240919.130822.pax" + "artifact": "vt-ng2-3.1.0-20250108.141509.pax" }, "org.zowe.zlux.zlux-editor": { "version": "2.18.0-V2.X-RC", @@ -47,9 +47,9 @@ "artifact": "zlux-editor-2.18.0-20240814.141840.pax" }, "org.zowe.zss": { - "version": "3.0.0-RC", + "version": "3.1.0-RC", "repository": "libs-snapshot-local", - "artifact": "zss-3.0.0-rc-1202-20240919131259.pax" + "artifact": "zss-3.1.0-rc-1249-20250108143217.pax" }, "org.zowe.explorer-jes": { "version": "3.0.0" @@ -97,22 +97,22 @@ "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { - "version": "3.0.0-V3.X-RC", + "version": "3.1.0-V3.X-RC", "repository": "libs-snapshot-local", - "artifact": "getesm-3.0.0-2024091917.pax" + "artifact": "getesm-3.1.0-2025010749.pax" }, "org.zowe.configmgr": { - "version": "3.0.0-V3.X-RC", + "version": "3.1.0-V3.X-RC", "repository": "libs-snapshot-local", - "artifact": "configmgr-3.0.0-2024091929.pax" + "artifact": "configmgr-3.1.0-2025010752.pax" }, "org.zowe.configmgr-rexx": { - "version": "3.0.0-V3.X-RC", + "version": "3.1.0-V3.X-RC", "repository": "libs-snapshot-local", - "artifact": "configmgr-rexx-3.0.0-2024091935.pax" + "artifact": "configmgr-rexx-3.1.0-2025010754.pax" }, "org.zowe.launcher": { - "version": "3.0.0" + "version": "3.1.0" }, "org.zowe.keyring-utilities": { "version": "1.0.4", @@ -147,12 +147,12 @@ "componentGroup": "Zowe Application Framework", "entries": [{ "repository": "zlux-app-manager", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { "repository": "zlux-app-server", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { @@ -167,17 +167,17 @@ }, { "repository": "zlux-platform", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { "repository": "zlux-server-framework", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { "repository": "zlux-shared", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { @@ -187,17 +187,17 @@ }, { "repository": "zlux-build", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { "repository": "zss", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }, { "repository": "zowe-common-c", - "tag": "zss-v3.0.0-RC1", + "tag": "zss-v3.1.0-RC1", "destinations": ["Zowe PAX"] } ] @@ -268,7 +268,7 @@ "componentGroup": "Zowe Desktop TN3270 Emulator Plug-in", "entries": [{ "repository": "tn3270-ng2", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }] }, { @@ -299,7 +299,7 @@ "componentGroup": "Zowe Desktop VT Emulator Plugin-in", "entries": [{ "repository": "vt-ng2", - "tag": "v3.0.0-RC1", + "tag": "v3.1.0-RC1", "destinations": ["Zowe PAX"] }] }, @@ -323,7 +323,7 @@ "destinations": ["Zowe PAX"] }, { "repository": "launcher", - "tag": "v3.0.0", + "tag": "v3.1.0", "destinations": ["Zowe PAX"] }] }, @@ -347,7 +347,7 @@ "componentGroup": "Configmgr", "entries": [{ "repository": "zowe-common-c", - "tag": "configmgr-v3.0.0-RC1", + "tag": "configmgr-v3.1.0-RC1", "destinations": ["Zowe PAX"] }] } @@ -387,7 +387,7 @@ "app-server": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/app-server", - "tag" : "3.0.0-ubuntu" + "tag" : "3.1.0-ubuntu" }, "explorer-ip": { "kind": "job", From cc258f75c5032530cbf21b82f2d3de04bb2347eb Mon Sep 17 00:00:00 2001 From: Pablo Carle Date: Wed, 8 Jan 2025 17:30:47 +0100 Subject: [PATCH 099/121] z/OSMF static definition file processing (#4113) * zosmf static def scheme in attls Signed-off-by: Pablo Carle * pr review Signed-off-by: Pablo Carle * quotes Signed-off-by: Pablo Carle * pr review Signed-off-by: Pablo Carle * pr review Signed-off-by: Pablo Carle --------- Signed-off-by: Pablo Carle Co-authored-by: Pablo Carle --- bin/libs/component.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/bin/libs/component.ts b/bin/libs/component.ts index 5f5bbe5160..4669741400 100644 --- a/bin/libs/component.ts +++ b/bin/libs/component.ts @@ -387,6 +387,32 @@ export function findAllLaunchComponents2(): string[] { }); } +function getBooleanEnv(variableName) { + const value = std.getenv(`${variableName}`); + if (value === "true") { + return true + } + if (value === "false") { + return false + } + return undefined +} + + +function isClientAttls() { + const clientGlobalAttls = getBooleanEnv('ZWE_zowe_network_client_tls_attls'); + const serverGlobalAttls = getBooleanEnv('ZWE_zowe_network_server_tls_attls'); + const clientLocalAttls = getBooleanEnv('ZWE_components_zaas_zowe_network_client_tls_attls'); + const serverLocalAttls = getBooleanEnv('ZWE_components_zaas_zowe_network_server_tls_attls'); + const clientAttls = clientGlobalAttls || clientLocalAttls; + if ((clientGlobalAttls !== false) && (clientLocalAttls !== false) && (!clientAttls)) { + // If client attls not explicitly false OR truthy, have client follow server attls variable. it simplifies common case in which users want both. + return serverGlobalAttls || serverLocalAttls; + } else { + return clientAttls; + } +} + export function processComponentApimlStaticDefinitions(componentDir: string): boolean { const STATIC_DEF_DIR=std.getenv('ZWE_STATIC_DEFINITIONS_DIR'); if (!STATIC_DEF_DIR) { @@ -418,6 +444,22 @@ export function processComponentApimlStaticDefinitions(componentDir: string): bo const contents = xplatform.loadFileUTF8(path,xplatform.AUTO_DETECT); if (contents) { + const zosmfScheme = std.getenv("ZOSMF_SCHEME"); + const attls = isClientAttls() + const schemeEnv = std.getenv("ZWE_zOSMF_scheme"); + + let scheme = "https"; + + if (zosmfScheme) { + scheme = zosmfScheme; + } else if (schemeEnv) { + scheme = schemeEnv; + } else if (attls) { + scheme = "http"; + } + + std.setenv('ZOSMF_SCHEME', scheme); + const resolvedContents = varlib.resolveShellTemplate(contents); const zweCliParameterHaInstance=std.getenv("ZWE_CLI_PARAMETER_HA_INSTANCE"); From a5aa1b70e795d77e4005b07fa732ec192de4873c Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 8 Jan 2025 11:58:31 -0500 Subject: [PATCH 100/121] update client python sdk tag to latest dev release (dev22) Signed-off-by: MarkAckert --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index 6a87e5abba..3e34b78cb0 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -355,7 +355,7 @@ "entries": [{ "repository": "zowe-client-python-sdk", "core": false, - "tag": "main", + "tag": "91366a0e5cd1f2680c0ccf87e8493d099d9e35f7", "destinations": ["Zowe Client Python SDK"] }] } From f505c48ef3a28e310c105b3c11a943f79cfb3629 Mon Sep 17 00:00:00 2001 From: Pavel Jares Date: Fri, 10 Jan 2025 16:09:22 +0100 Subject: [PATCH 101/121] update APIML versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 63ddc708f6..6d2136e6c8 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -65,23 +65,23 @@ "artifact": "explorer-ip*.pax" }, "org.zowe.apiml.api-catalog-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "api-catalog-*.zip" }, "org.zowe.apiml.discovery-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "discovery-*.zip" }, "org.zowe.apiml.gateway-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "gateway-*.zip" }, "org.zowe.apiml.caching-service-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "caching-service-*.zip" }, "org.zowe.apiml.apiml-common-lib-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "apiml-common-lib-*.zip" }, "org.zowe.apiml.sdk.common-java-lib-package": { @@ -89,7 +89,7 @@ "artifact": "common-java-lib-*.zip" }, "org.zowe.apiml.sdk.apiml-sample-extension-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { @@ -133,7 +133,7 @@ "componentGroup": "Zowe API Mediation Layer", "entries": [{ "repository": "api-layer", - "tag": "v3.0.36", + "tag": "v3.1.0", "destinations": ["Zowe PAX"] }] }, { @@ -369,23 +369,23 @@ "api-catalog": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/api-catalog-services", - "tag" : "3.0.36-ubuntu" + "tag" : "3.1.0-ubuntu" }, "gateway": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", - "tag" : "3.0.36-ubuntu" + "tag" : "3.1.0-ubuntu" }, "caching": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/caching-service", - "tag" : "3.0.36-ubuntu" + "tag" : "3.1.0-ubuntu" }, "discovery": { "kind": "statefulset", "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/discovery-service", - "tag" : "3.0.36-ubuntu" + "tag" : "3.1.0-ubuntu" }, "zaas": { "registry": "zowe-docker-release.jfrog.io", From d2d3720d681f6166aa3010739c8bf60bc56e228a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Mon, 13 Jan 2025 10:51:32 +0100 Subject: [PATCH 102/121] fix ZAAS version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 6d2136e6c8..a3aa66b917 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -93,7 +93,7 @@ "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { - "version": "3.0.36", + "version": "3.1.0", "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { @@ -390,7 +390,7 @@ "zaas": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", - "tag" : "3.0.36-ubuntu" + "tag" : "3.1.0-ubuntu" }, "app-server": { "registry": "zowe-docker-release.jfrog.io", From 10c4d30f68ce35ef517c56f1b9eeb8af91f11d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Tue, 14 Jan 2025 13:12:58 +0100 Subject: [PATCH 103/121] update to APIML 3.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index a3aa66b917..d3a3d7c494 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -65,23 +65,23 @@ "artifact": "explorer-ip*.pax" }, "org.zowe.apiml.api-catalog-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "api-catalog-*.zip" }, "org.zowe.apiml.discovery-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "discovery-*.zip" }, "org.zowe.apiml.gateway-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "gateway-*.zip" }, "org.zowe.apiml.caching-service-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "caching-service-*.zip" }, "org.zowe.apiml.apiml-common-lib-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "apiml-common-lib-*.zip" }, "org.zowe.apiml.sdk.common-java-lib-package": { @@ -89,11 +89,11 @@ "artifact": "common-java-lib-*.zip" }, "org.zowe.apiml.sdk.apiml-sample-extension-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { - "version": "3.1.0", + "version": "3.1.1", "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { @@ -133,7 +133,7 @@ "componentGroup": "Zowe API Mediation Layer", "entries": [{ "repository": "api-layer", - "tag": "v3.1.0", + "tag": "v3.1.1", "destinations": ["Zowe PAX"] }] }, { @@ -369,28 +369,28 @@ "api-catalog": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/api-catalog-services", - "tag" : "3.1.0-ubuntu" + "tag" : "3.1.1-ubuntu" }, "gateway": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", - "tag" : "3.1.0-ubuntu" + "tag" : "3.1.1-ubuntu" }, "caching": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/caching-service", - "tag" : "3.1.0-ubuntu" + "tag" : "3.1.1-ubuntu" }, "discovery": { "kind": "statefulset", "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/discovery-service", - "tag" : "3.1.0-ubuntu" + "tag" : "3.1.1-ubuntu" }, "zaas": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", - "tag" : "3.1.0-ubuntu" + "tag" : "3.1.1-ubuntu" }, "app-server": { "registry": "zowe-docker-release.jfrog.io", From 900fd03925e2d51e76a9839466a759b4b039de90 Mon Sep 17 00:00:00 2001 From: James Struga Date: Tue, 14 Jan 2025 09:06:31 -0500 Subject: [PATCH 104/121] Update zlux-core with attls status Signed-off-by: James Struga --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index 63ddc708f6..6d9a663d87 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -14,7 +14,7 @@ "org.zowe.zlux.zlux-core": { "version": "3.1.0-RC", "repository": "libs-snapshot-local", - "artifact": "zlux-core-3.1.0-20250107.161516.pax" + "artifact": "zlux-core-3.1.0-20250114.140434.pax" }, "org.zowe.zlux.sample-angular-app": { "version": "2.18.0-V2.X-RC", From 4fbdb4782eef8d59196579793589859d1e1830be Mon Sep 17 00:00:00 2001 From: James Struga Date: Tue, 14 Jan 2025 09:25:20 -0500 Subject: [PATCH 105/121] Update manifest.json.template Signed-off-by: James Struga --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index 6d9a663d87..189bf8217f 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -395,7 +395,7 @@ "app-server": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/app-server", - "tag" : "3.1.0-ubuntu" + "tag" : "3.0.0-ubuntu" }, "explorer-ip": { "kind": "job", From 5c6763c991c74d477a078c01d06b41b67f8161f0 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Tue, 14 Jan 2025 15:54:45 -0500 Subject: [PATCH 106/121] update license version Signed-off-by: MarkAckert --- manifest.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json.template b/manifest.json.template index f96e11309d..65db9b3e54 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -124,7 +124,7 @@ "version": "2.0.3" }, "org.zowe.licenses": { - "version": "3.0.0", + "version": "3.1.0", "artifact": "zowe_licenses_full.zip" } }, From 577163d4db43ca1f6e16ecb3a06e60b8f6842f0b Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 15 Jan 2025 16:18:39 -0500 Subject: [PATCH 107/121] check or ebcdic before converting certificate Signed-off-by: MarkAckert --- bin/libs/certificate.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/libs/certificate.sh b/bin/libs/certificate.sh index 1daf58fd49..e4ba426545 100644 --- a/bin/libs/certificate.sh +++ b/bin/libs/certificate.sh @@ -646,8 +646,14 @@ EOF return 1 fi if [ `uname` = "OS/390" ]; then - iconv -f ISO8859-1 -t IBM-1047 "${keystore_dir}/${alias_lc}.cer" > "${keystore_dir}/${alias_lc}.cer-ebcdic" - mv "${keystore_dir}/${alias_lc}.cer-ebcdic" "${keystore_dir}/${alias_lc}.cer" + # check if certificate is in EBCDIC before converting + if [[ "$(head -c 10 "./zosmf00.cer")" = "-----BEGIN" ]]; then + print_message ">>>> Certificate \"${keystore_dir}/${alias_lc}.cer is in EBCDIC." + else + print_message ">>>> Converting certificate \"${keystore_dir}/${alias_lc}.cer\" to EBCDIC." + iconv -f ISO8859-1 -t IBM-1047 "${keystore_dir}/${alias_lc}.cer" >"${keystore_dir}/${alias_lc}.cer-ebcdic" + mv "${keystore_dir}/${alias_lc}.cer-ebcdic" "${keystore_dir}/${alias_lc}.cer" + fi ensure_file_encoding "${keystore_dir}/${alias_lc}.cer" "CERTIFICATE" fi fi From 352e0e628ac2b7e7d8750e368af82dfee19621d2 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 15 Jan 2025 16:24:33 -0500 Subject: [PATCH 108/121] remove hardcoded cer from testing Signed-off-by: MarkAckert --- bin/libs/certificate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/certificate.sh b/bin/libs/certificate.sh index e4ba426545..621efaed37 100644 --- a/bin/libs/certificate.sh +++ b/bin/libs/certificate.sh @@ -647,7 +647,7 @@ EOF fi if [ `uname` = "OS/390" ]; then # check if certificate is in EBCDIC before converting - if [[ "$(head -c 10 "./zosmf00.cer")" = "-----BEGIN" ]]; then + if [[ "$(head -c 10 "${keystore_dir}/${alias_lc}.cer")" = "-----BEGIN" ]]; then print_message ">>>> Certificate \"${keystore_dir}/${alias_lc}.cer is in EBCDIC." else print_message ">>>> Converting certificate \"${keystore_dir}/${alias_lc}.cer\" to EBCDIC." From f0dbfe351ea9974d9ae43fb50a19ea1c1fa39aa5 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 15 Jan 2025 16:25:39 -0500 Subject: [PATCH 109/121] fixed quote Signed-off-by: MarkAckert --- bin/libs/certificate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/certificate.sh b/bin/libs/certificate.sh index 621efaed37..62bb3fce3d 100644 --- a/bin/libs/certificate.sh +++ b/bin/libs/certificate.sh @@ -647,7 +647,7 @@ EOF fi if [ `uname` = "OS/390" ]; then # check if certificate is in EBCDIC before converting - if [[ "$(head -c 10 "${keystore_dir}/${alias_lc}.cer")" = "-----BEGIN" ]]; then + if [[ "$(head -c 10 \"${keystore_dir}/${alias_lc}.cer\")" = "-----BEGIN" ]]; then print_message ">>>> Certificate \"${keystore_dir}/${alias_lc}.cer is in EBCDIC." else print_message ">>>> Converting certificate \"${keystore_dir}/${alias_lc}.cer\" to EBCDIC." From 755f921ad58171af8c7389134e290a27c2c9fc08 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Wed, 15 Jan 2025 16:28:43 -0500 Subject: [PATCH 110/121] remove quotes Signed-off-by: MarkAckert --- bin/libs/certificate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/libs/certificate.sh b/bin/libs/certificate.sh index 62bb3fce3d..4d9981d612 100644 --- a/bin/libs/certificate.sh +++ b/bin/libs/certificate.sh @@ -647,7 +647,7 @@ EOF fi if [ `uname` = "OS/390" ]; then # check if certificate is in EBCDIC before converting - if [[ "$(head -c 10 \"${keystore_dir}/${alias_lc}.cer\")" = "-----BEGIN" ]]; then + if [[ "$(head -c 10 ${keystore_dir}/${alias_lc}.cer)" = "-----BEGIN" ]]; then print_message ">>>> Certificate \"${keystore_dir}/${alias_lc}.cer is in EBCDIC." else print_message ">>>> Converting certificate \"${keystore_dir}/${alias_lc}.cer\" to EBCDIC." From e81b5adc0562ba3fc9a03f59e4147cab8f70a2a8 Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Thu, 16 Jan 2025 14:04:03 -0500 Subject: [PATCH 111/121] update upload-artifact action version Signed-off-by: MarkAckert --- .github/workflows/cicd-test.yml | 2 +- .github/workflows/diff-schema.yml | 2 +- .github/workflows/diff-yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index 191197433f..e2adc55541 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -382,7 +382,7 @@ jobs: - name: '[After Test 2] Upload test report' if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: InstallTestReports-${{ env.TEST_NAME }}-${{ steps.more-test-prep.outputs.TEST_SERVER_NICKNAME }}-${{ github.run_id }}-${{ env.CURRENT_TIME }} path: ${{ env.INSTALL_TEST_PATH }}/reports/ diff --git a/.github/workflows/diff-schema.yml b/.github/workflows/diff-schema.yml index ae8c8c4db7..3e47227461 100644 --- a/.github/workflows/diff-schema.yml +++ b/.github/workflows/diff-schema.yml @@ -34,7 +34,7 @@ jobs: - name: '[Build] Make diff' run: git diff ${{ env.FROM }} ${{ env.TO }} -- schemas > schemas.diff - name: '[Upload]' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: schemas.diff path: schemas.diff diff --git a/.github/workflows/diff-yaml b/.github/workflows/diff-yaml index 52212e980a..032656ef78 100644 --- a/.github/workflows/diff-yaml +++ b/.github/workflows/diff-yaml @@ -34,7 +34,7 @@ jobs: - name: '[Build] Make diff' run: git diff ${{ env.FROM }} ${{ env.TO }} -- example-zowe.yaml > example-yaml.diff - name: '[Upload]' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: example-yaml.diff path: example-yaml.diff From 457b1fa6da295356b50392942146956cbcb62b4e Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 17 Jan 2025 10:01:12 -0500 Subject: [PATCH 112/121] add scp "-O" option for file transfer Signed-off-by: MarkAckert --- playbooks/roles/common/templates/scp.with-key.sh.j2 | 2 +- playbooks/roles/common/templates/scp.with-pwd.sh.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/roles/common/templates/scp.with-key.sh.j2 b/playbooks/roles/common/templates/scp.with-key.sh.j2 index e4eb9b7891..c61ac836c1 100644 --- a/playbooks/roles/common/templates/scp.with-key.sh.j2 +++ b/playbooks/roles/common/templates/scp.with-key.sh.j2 @@ -4,4 +4,4 @@ FILE_LOCAL=$1 FILE_REMOTE=$2 echo "SCP $FILE_LOCAL ==> $FILE_REMOTE" -scp -oHostKeyAlgorithms=+ssh-rsa -P {{ hostvars[inventory_hostname].ansible_port | default('22') }} -i {{ hostvars[inventory_hostname].ansible_ssh_private_key_file }} $FILE_LOCAL {{ hostvars[inventory_hostname].ansible_user }}@{{ hostvars[inventory_hostname].ansible_ssh_host }}:$FILE_REMOTE +scp -O -oHostKeyAlgorithms=+ssh-rsa -P {{ hostvars[inventory_hostname].ansible_port | default('22') }} -i {{ hostvars[inventory_hostname].ansible_ssh_private_key_file }} $FILE_LOCAL {{ hostvars[inventory_hostname].ansible_user }}@{{ hostvars[inventory_hostname].ansible_ssh_host }}:$FILE_REMOTE diff --git a/playbooks/roles/common/templates/scp.with-pwd.sh.j2 b/playbooks/roles/common/templates/scp.with-pwd.sh.j2 index 7a3c48bf9a..d522b3bebe 100644 --- a/playbooks/roles/common/templates/scp.with-pwd.sh.j2 +++ b/playbooks/roles/common/templates/scp.with-pwd.sh.j2 @@ -4,4 +4,4 @@ FILE_LOCAL=$1 FILE_REMOTE=$2 echo "SCP $FILE_LOCAL ==> $FILE_REMOTE" -sshpass -p "{{ hostvars[inventory_hostname].ansible_password }}" scp -oHostKeyAlgorithms=+ssh-rsa -P {{ hostvars[inventory_hostname].ansible_port | default('22') }} $FILE_LOCAL {{ hostvars[inventory_hostname].ansible_user }}@{{ hostvars[inventory_hostname].ansible_ssh_host }}:$FILE_REMOTE +sshpass -p "{{ hostvars[inventory_hostname].ansible_password }}" scp -O -oHostKeyAlgorithms=+ssh-rsa -P {{ hostvars[inventory_hostname].ansible_port | default('22') }} $FILE_LOCAL {{ hostvars[inventory_hostname].ansible_user }}@{{ hostvars[inventory_hostname].ansible_ssh_host }}:$FILE_REMOTE From dc6f753f51e2fb45a6566c29ed14496114b9c4e8 Mon Sep 17 00:00:00 2001 From: James Struga Date: Fri, 17 Jan 2025 11:19:55 -0500 Subject: [PATCH 113/121] Updated zlux-core for RC2 Signed-off-by: James Struga --- manifest.json.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 65db9b3e54..0de42cb77b 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -14,7 +14,7 @@ "org.zowe.zlux.zlux-core": { "version": "3.1.0-RC", "repository": "libs-snapshot-local", - "artifact": "zlux-core-3.1.0-20250114.140434.pax" + "artifact": "zlux-core-3.1.0-20250117.161154.pax" }, "org.zowe.zlux.sample-angular-app": { "version": "2.18.0-V2.X-RC", @@ -172,7 +172,7 @@ }, { "repository": "zlux-server-framework", - "tag": "v3.1.0-RC1", + "tag": "v3.1.0-RC2", "destinations": ["Zowe PAX"] }, { From be41470932c3e48db781da3207351c85af9573d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Tue, 21 Jan 2025 16:02:04 +0100 Subject: [PATCH 114/121] update to APIML 3.1.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 65db9b3e54..3e391d1cf7 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -65,23 +65,23 @@ "artifact": "explorer-ip*.pax" }, "org.zowe.apiml.api-catalog-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "api-catalog-*.zip" }, "org.zowe.apiml.discovery-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "discovery-*.zip" }, "org.zowe.apiml.gateway-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "gateway-*.zip" }, "org.zowe.apiml.caching-service-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "caching-service-*.zip" }, "org.zowe.apiml.apiml-common-lib-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "apiml-common-lib-*.zip" }, "org.zowe.apiml.sdk.common-java-lib-package": { @@ -89,11 +89,11 @@ "artifact": "common-java-lib-*.zip" }, "org.zowe.apiml.sdk.apiml-sample-extension-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { - "version": "3.1.1", + "version": "3.1.3", "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { @@ -133,7 +133,7 @@ "componentGroup": "Zowe API Mediation Layer", "entries": [{ "repository": "api-layer", - "tag": "v3.1.1", + "tag": "v3.1.3", "destinations": ["Zowe PAX"] }] }, { @@ -369,28 +369,28 @@ "api-catalog": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/api-catalog-services", - "tag" : "3.1.1-ubuntu" + "tag" : "3.1.3-ubuntu" }, "gateway": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", - "tag" : "3.1.1-ubuntu" + "tag" : "3.1.3-ubuntu" }, "caching": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/caching-service", - "tag" : "3.1.1-ubuntu" + "tag" : "3.1.3-ubuntu" }, "discovery": { "kind": "statefulset", "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/discovery-service", - "tag" : "3.1.1-ubuntu" + "tag" : "3.1.3-ubuntu" }, "zaas": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", - "tag" : "3.1.1-ubuntu" + "tag" : "3.1.3-ubuntu" }, "app-server": { "registry": "zowe-docker-release.jfrog.io", From 5411e8947548b67f94200d1719d1c2ac93ece263 Mon Sep 17 00:00:00 2001 From: pavelzlatnik <45940302+pavelzlatnik@users.noreply.github.com> Date: Tue, 21 Jan 2025 21:25:05 +0100 Subject: [PATCH 115/121] User/zlatnikp/apimlwf second iteration of apiml workflow for V3 (#4144) * NewVersion based on different use case Signed-off-by: pz636264 * middleUpdate Signed-off-by: pz636264 * remainingChange Signed-off-by: pz636264 * testNewPc Signed-off-by: Pavel Zlatnik * lastDemoUpdates Signed-off-by: Pavel Zlatnik * retrofitV3Updates Signed-off-by: Pavel Zlatnik * prefix desc update Signed-off-by: Pavel Zlatnik * updated prefix Signed-off-by: Pavel Zlatnik * portReorder and version Signed-off-by: Pavel Zlatnik --------- Signed-off-by: pz636264 Signed-off-by: Pavel Zlatnik Signed-off-by: MarkAckert --- workflows/files/ZWEAMLCF.xml | 1451 ++++++++++++++++++++++++++++++++++ 1 file changed, 1451 insertions(+) create mode 100644 workflows/files/ZWEAMLCF.xml diff --git a/workflows/files/ZWEAMLCF.xml b/workflows/files/ZWEAMLCF.xml new file mode 100644 index 0000000000..eb12c13736 --- /dev/null +++ b/workflows/files/ZWEAMLCF.xml @@ -0,0 +1,1451 @@ + + + true + + + config_apiml_zowe_30 + Configuration of APIML for Zowe 3.0 + Use this simplified workflow to configure APIML for Zowe 3.0 + ###ZOWE_VERSION### + Zowe + + + + + + Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E + Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase + zowe + + + + IBMUSER.ZWEV3 + + + + + Where Zowe STCs will be copied over + Where Zowe STCs will be copied over + zowe + + + + USER.PROCLIB + + + + + Zowe PARMLIB + Zowe parameter library + zowe + + + + IBMUSER.ZWEV3.CUST.PARMLIB + + + + + Zowe ZIS plugins PARMLIB + Holds PARMLIB members for ZIS plugins + zowe + + + + ZWESIP00 + + + + + JCL library where Zowe will store temporary JCLs during initialization + JCL library where Zowe will store temporary JCLs during initialization + zowe + + + + IBMUSER.ZWEV3.CUST.JCLLIB + + + + + Load library where Zowe stores libraries for Utilities for use by Zowe and extensions + Load library for Utilities for use by Zowe and extensions + zowe + + + + IBMUSER.ZWEV3.SZWELOAD + + + + + APF authorized LOADLIB for Zowe + APF authorized LOADLIB for Zowe core + zowe + + + + IBMUSER.ZWEV3.SZWEAUTH + + + + + APF authorized LOADLIB for Zowe ZIS Plugins + APF authorized LOADLIB for Zowe ZIS Plugins + zowe + + + + IBMUSER.ZWEV3.CUST.ZWESAPL + + + + + Zowe runtime (root) directory with libraries + Existing Zowe runtime.<br /> +If you created ZOWE via PSWI, <br /> +zowe runtime is your Target Mount Point from PSWI deployment. <br /> +It is used by ZWESLSTC or by zwe command + zowe + + ~?(\/[^\/]+)+ + Please specify proper full USS path ending without a trailing slash. + + + + + Where to store runtime logs + Where to store runtime logs + zowe + + + + /global/zowe/logs + + + + + Zowe runtime workspace directory + Zowe runtime workspace directory + zowe + + + + /global/zowe/workspace + + + + + Where extensions are installed + zowe_extensionDirectory + zowe + + + + /global/zowe/extensions + + + + + Zowe JES job name + Zowe JES job name + zowe + + + + ZWE1SV + + + + + Prefix of component address space + Prefix of component address space + zowe + + + + ZWE1 + + + + + The list of external domains + Defines a list of external domains that will be used by the Zowe instance. + zowe + + + + sample-domain.com + + + + + The port you use to access Zowe Gateway from your web browser + This is the port you use to access Zowe Gateway from your web browser. +In many use cases, this should be same as <b>components.gateway.port</b>. But in +some use cases, like containerization, this port could be different. + zowe + + + + 7554 + + + + + Set to "debug" or "trace" to display extra debug information + Set to "debug" or "trace" to display extra debug information + zowe + + + info + debug + trace + info + + + + + Set to "exit" or "warn" if any component has an error + Set to "exit" if you want startup to exit if any component has an error in the configuration stage, otherwise zwe will issue a warning but continue running. + zowe + + + warn + exit + warn + + + + + Enable on AT-TLS on inbound calls (server) + Enable aware mode of inbound AT-TLS rules of all Zowe components. + network + + + + false + + + + + Enable on AT-TLS on outbound calls (client) + Enable aware mode of outbound AT-TLS rules of all Zowe components. + network + + + + false + + + + + TLS minimum version + The default configuration of the minimal version of a security transport protocol for inbound calls. + TLS settings only apply when attls=false. + Else you must use AT-TLS configuration for TLS customization. + + network + + + TLSv1.1 + TLSv1.2 + TLSv1.3 + TLSv1.2 + + + + + TLS maximum version + The default configuration of the maximum version of a security transport protocol for inbound calls. + TLS settings only apply when attls=false. + Else you must use AT-TLS configuration for TLS customization. + + network + + + TLSv1.1 + TLSv1.2 + TLSv1.3 + TLSv1.3 + + + + + Certificate keystore type (PKCS12, JCERACFKS) + Certificate keystore type (PKCS12, JCERACFKS) + certificates + + + + PKCS12 + JCERACFKS + JCERACFKS + + + + + Zowe certificate keystore file. For keyring, the format is "safkeyring://OWNER/KEYRING". + Zowe certificate keystore file + certificates + + + + safkeyring://OWNER/KEYRING + + + + + Certificate keystore password. + Certificate keystore password. + certificates + + + password + + + + + Alias for the certificate keystore + Alias for the certificate keystore + certificates + + + + localhost + + + + + Zowe certificate truststore type + Zowe certificate truststore type + certificates + + + + PKCS12 + JCERACFKS + JCERACFKS + + + + + File location for certificate truststore. For keyring, the format is "safkeyring://OWNER/KEYRING" + File location for the certificate truststore + certificates + + + + safkeyring://OWNER/KEYRING + + + + + Password for the certificate truststore + Password for the certificate truststore + certificates + + + + password + + + + + Path to the JAVA home + Path to the JAVA home + java + + + + + + + + Path to the Node.js home + Path to the Node.js home + Node.js + + + + + + + + Hostname of the running z/OSMF instance + Hostname of the running z/OSMF instance + zOSMF + + + + dvipa.my-company.com + + + + + Port of the z/OSMF instance + Port of the z/OSMF instance + zOSMF + + + + 443 + + + + + APPLID of the z/OSMF instance + APPLID of the z/OSMF instance + zOSMF + + + + IZUDFLT + + + + + Port for APIML Gateway + Port for APIML Gateway + components + + + + 7554 + + + + + Port for APIML ZAAS + Port for APIML ZAAS + components + + + + 7558 + + + + + Port on which API Catalog should be running. + Port on which API Catalog should be running. + components + + + + 7552 + + + + + Port on which Discovery service should be running + Port on which Discovery service should be running + components + + + + 7553 + + + + + Port for Caching service + Port for Caching service + components + + + + 7555 + + + + + Port for jgroups + Port for jgroups. This is required if storage mode is infinispan. + components + + + + 7559 + + + + + Port for jgroups key exchange + Port for jgroups key exchange. This is required if storage mode is infinispan. + components + + + + 7560 + + + + + ID you use to separate multiple Zowe installs + ID when determining resource names used in RBAC authorization checks such as dataservices with RBAC expects this ID in SAF resources + zowe + + + + 1 + + + + + ID that can be used by servers to distinguish their cookies from unrelated Zowe installs + ID which allows multiple copies of Zowe to be used within the same client + zowe + + + + 1 + + + + + Security product name. Can be RACF, ACF2 or TSS + Security product name. Can be RACF, ACF2 or TSS + security + + + + + RACF + TSS + ACF2 + RACF + + + + + Zowe admin user group + Zowe admin user group + security + + + + ZWEADMIN + + + + + + Zowe STC group + Zowe STC group + security + + + + + ZWEADMIN + + + + + Zowe SysProg group + Zowe SysProg group + security + + + + + ZWEADMIN + + + + + Zowe runtime user name of main service + Zowe runtime user name of main service + security + + + + + ZWESVUSR + + + + + Zowe runtime user name of ZIS + Zowe runtime user name of ZIS + security + + + + + ZWESIUSR + + + + + STC name of main service + STC name of main service + security + + + + + ZWESLSTC + + + + + STC name of ZIS + STC name of ZIS + security + + + + + ZWESISTC + + + + + STC name of Auxiliary Service + STC name of Auxiliary Service + security + + + + + ZWESASTC + + + + + + Define variables + Use this step to define the variables for execution + + + Define the main variables + Use this step to define the main variables for Zowe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Run this step to fill base variables. + 1 + z/OS System Programmer + false + false + + + + Ports + Specify ports variables for components + + + + + + + + + Run this step to specify ports variables for components + 1 + z/OS System Programmer + false + false + + + + + Create configuration + Creates the configuration for the Zowe (APIML) + + + + + Generated yaml file is backward compatible with full Zowe,
+ this workflow is just simplified with focus on easier APIML configuration.
+ Ensure that the values are correct.
+ zowe.yaml file is created in the: ${instance-zowe_runtimeDirectory} directory

+ NOTE: If you run this workflow outside of PSWI (SMP/E or convenience build), you might encounter a folder write permission issue.
+ To solve the issue, run the following command in USS:
+ chmod 775 ${instance-zowe_runtimeDirectory}
+ and change the folder UID to the ID of the user who executes this workflow.
+ Issue the following command:
+ chown ${_workflow-workflowOwner} ${instance-zowe_runtimeDirectory}
+ Re-run the step. +]]>
+ 1 + z/OS System Programmer + false + false + +
+ + Zowe installation + Zowe installation + + Run scripts for Zowe initialization + Executes scripts for Zowe initialization + + + + + zwe init mvs -c ${instance-zowe_runtimeDirectory}/zowe.yml --allow-overwrite
+ zwe init stc -c ${instance-zowe_runtimeDirectory}/zowe.yml --allow-overwrite
+
+ NOTE: + Each zwe init sub-command defines a configuration. +
    +
  • mvs: Copy the data sets provided with Zowe to custom data sets.
  • +
  • stc: Configure the system to launch the Zowe started task.
  • +
+ ]]>
+ 1 + z/OS System Programmer + false + false + +
+
+
From dffe29e805aae25ceece2bbb980304da7855b4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Thu, 23 Jan 2025 14:12:13 +0100 Subject: [PATCH 116/121] update apiml dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 38a7a507bd..5d187d53ef 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -65,23 +65,23 @@ "artifact": "explorer-ip*.pax" }, "org.zowe.apiml.api-catalog-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "api-catalog-*.zip" }, "org.zowe.apiml.discovery-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "discovery-*.zip" }, "org.zowe.apiml.gateway-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "gateway-*.zip" }, "org.zowe.apiml.caching-service-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "caching-service-*.zip" }, "org.zowe.apiml.apiml-common-lib-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "apiml-common-lib-*.zip" }, "org.zowe.apiml.sdk.common-java-lib-package": { @@ -89,11 +89,11 @@ "artifact": "common-java-lib-*.zip" }, "org.zowe.apiml.sdk.apiml-sample-extension-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { - "version": "3.1.3", + "version": "3.1.4", "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { @@ -133,7 +133,7 @@ "componentGroup": "Zowe API Mediation Layer", "entries": [{ "repository": "api-layer", - "tag": "v3.1.3", + "tag": "v3.1.4", "destinations": ["Zowe PAX"] }] }, { @@ -369,28 +369,28 @@ "api-catalog": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/api-catalog-services", - "tag" : "3.1.3-ubuntu" + "tag" : "3.1.4-ubuntu" }, "gateway": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", - "tag" : "3.1.3-ubuntu" + "tag" : "3.1.4-ubuntu" }, "caching": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/caching-service", - "tag" : "3.1.3-ubuntu" + "tag" : "3.1.4-ubuntu" }, "discovery": { "kind": "statefulset", "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/discovery-service", - "tag" : "3.1.3-ubuntu" + "tag" : "3.1.4-ubuntu" }, "zaas": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", - "tag" : "3.1.3-ubuntu" + "tag" : "3.1.4-ubuntu" }, "app-server": { "registry": "zowe-docker-release.jfrog.io", From ae0448b4c97b73262e930064c4417206108c6a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Fri, 24 Jan 2025 09:55:43 +0100 Subject: [PATCH 117/121] enable debug for the Gateway MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- playbooks/roles/custom_for_test/tasks/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/custom_for_test/tasks/main.yml b/playbooks/roles/custom_for_test/tasks/main.yml index ea85b09568..b735d87db3 100644 --- a/playbooks/roles/custom_for_test/tasks/main.yml +++ b/playbooks/roles/custom_for_test/tasks/main.yml @@ -161,7 +161,8 @@ # debug mode for troubleshooting/profiling "zowe.launchScript.logLevel": "trace" # # this must be commented out to avoid flooding spool - # "components.gateway.debug": "true" + "components.gateway.debug": "true" + "components.gateway.sslDebug": "all" # # trace java apps # "zowe.environments.LOGGING_LEVEL_ORG_APACHE_HTTP": "TRACE" # "zowe.environments.LOGGING_LEVEL_ORG_APACHE": "TRACE" From 058714e52be2010b77ecf236b019e88940151d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jare=C5=A1?= Date: Fri, 24 Jan 2025 17:21:32 +0100 Subject: [PATCH 118/121] update versions to 3.1.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Jareš --- manifest.json.template | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manifest.json.template b/manifest.json.template index 5d187d53ef..bb4c24389b 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -65,23 +65,23 @@ "artifact": "explorer-ip*.pax" }, "org.zowe.apiml.api-catalog-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "api-catalog-*.zip" }, "org.zowe.apiml.discovery-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "discovery-*.zip" }, "org.zowe.apiml.gateway-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "gateway-*.zip" }, "org.zowe.apiml.caching-service-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "caching-service-*.zip" }, "org.zowe.apiml.apiml-common-lib-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "apiml-common-lib-*.zip" }, "org.zowe.apiml.sdk.common-java-lib-package": { @@ -89,11 +89,11 @@ "artifact": "common-java-lib-*.zip" }, "org.zowe.apiml.sdk.apiml-sample-extension-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "apiml-sample-extension-*.zip" }, "org.zowe.apiml.zaas-package": { - "version": "3.1.4", + "version": "3.1.5", "artifact": "zaas-package-*.zip" }, "org.zowe.getesm": { @@ -133,7 +133,7 @@ "componentGroup": "Zowe API Mediation Layer", "entries": [{ "repository": "api-layer", - "tag": "v3.1.4", + "tag": "v3.1.5", "destinations": ["Zowe PAX"] }] }, { @@ -369,28 +369,28 @@ "api-catalog": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/api-catalog-services", - "tag" : "3.1.4-ubuntu" + "tag" : "3.1.5-ubuntu" }, "gateway": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/gateway-service", - "tag" : "3.1.4-ubuntu" + "tag" : "3.1.5-ubuntu" }, "caching": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/caching-service", - "tag" : "3.1.4-ubuntu" + "tag" : "3.1.5-ubuntu" }, "discovery": { "kind": "statefulset", "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/discovery-service", - "tag" : "3.1.4-ubuntu" + "tag" : "3.1.5-ubuntu" }, "zaas": { "registry": "zowe-docker-release.jfrog.io", "name": "ompzowe/zaas-service", - "tag" : "3.1.4-ubuntu" + "tag" : "3.1.5-ubuntu" }, "app-server": { "registry": "zowe-docker-release.jfrog.io", From 529bd4e4d8602d945c0ad11c5e3d4a1939ca77eb Mon Sep 17 00:00:00 2001 From: MarkAckert Date: Fri, 24 Jan 2025 12:28:59 -0500 Subject: [PATCH 119/121] revert trace logs Signed-off-by: MarkAckert --- playbooks/roles/custom_for_test/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/roles/custom_for_test/tasks/main.yml b/playbooks/roles/custom_for_test/tasks/main.yml index b735d87db3..193f46397f 100644 --- a/playbooks/roles/custom_for_test/tasks/main.yml +++ b/playbooks/roles/custom_for_test/tasks/main.yml @@ -161,8 +161,8 @@ # debug mode for troubleshooting/profiling "zowe.launchScript.logLevel": "trace" # # this must be commented out to avoid flooding spool - "components.gateway.debug": "true" - "components.gateway.sslDebug": "all" + # "components.gateway.debug": "true" + # "components.gateway.sslDebug": "all" # # trace java apps # "zowe.environments.LOGGING_LEVEL_ORG_APACHE_HTTP": "TRACE" # "zowe.environments.LOGGING_LEVEL_ORG_APACHE": "TRACE" From 4c4c4de94de4a1a38638015ad4a28b977912c44d Mon Sep 17 00:00:00 2001 From: pavelzlatnik <45940302+pavelzlatnik@users.noreply.github.com> Date: Fri, 24 Jan 2025 19:33:01 +0100 Subject: [PATCH 120/121] Merge pull request #4154 from zowe/user/zlatnikp/wfpackage add new APIML wf to PSWI Signed-off-by: MarkAckert --- pswi/03_create.sh | 8 +++++++- pswi/scripts/deploy_test_2_3.py | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pswi/03_create.sh b/pswi/03_create.sh index e339903577..115c2dafc8 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -29,7 +29,8 @@ echo "z/OSMF version :" $ZOSMF_V ADD_SWI_JSON='{"name":"'${SWI_NAME}'","system":"'${ZOSMF_SYSTEM}'","description":"ZOWE v'${VERSION}' Portable Software Instance", "globalzone":"'${GLOBAL_ZONE}'","targetzones":["'${TZONE}'"],"workflows":[{"name":"ZOWE Mount Workflow","description":"This workflow performs mount action of ZOWE zFS.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWEWRF02)"}},{"name":"ZOWE Configuration of Zowe 3.0","description":"This workflow configures Zowe v3.0.", -"location": {"dsname":"'${WORKFLOW_DSN}'(ZWECONF)"}},{"name":"ZOWE Creation of CSR request workflow","description":"This workflow creates a certificate sign request.", +"location": {"dsname":"'${WORKFLOW_DSN}'(ZWECONF)"}},{"name":"ZOWE APIML optimized Configuration","description":"This simplified workflow configures APIML for Zowe 3.0.", +"location": {"dsname":"'${WORKFLOW_DSN}'(ZWEAMLCF)"}},{"name":"ZOWE Creation of CSR request workflow","description":"This workflow creates a certificate sign request.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWECRECR)"}},{"name":"ZOWE Sign a CSR request","description":"This workflow signs the certificate sign request by a local CA.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWESIGNC)"}},{"name":"ZOWE Load Authentication Certificate into ESM","description":"This workflow loads a signed client authentication certificate to the ESM.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWELOADC)"}},{"name":"ZOWE Define key ring and certificates","description":"This workflow defines key ring and certificates for Zowe.", @@ -145,6 +146,11 @@ echo "target=\"//'${WORKFLOW_DSN}(ZWESIGNC)'\";" >>JCL echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWESIGNC;" >>JCL echo "sed 's|UTF-8|IBM-1047|g' _ZWESIGNC > ZWESIGNC;" >>JCL echo "cp -T ZWESIGNC \$target;" >>JCL +echo "source=\"${ZOWE_MOUNT}files/workflows/ZWEAMLCF.xml\";" >>JCL +echo "target=\"//'${WORKFLOW_DSN}(ZWEAMLCF)'\";" >>JCL +echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWEAMLCF;" >>JCL +echo "sed 's|UTF-8|IBM-1047|g' _ZWEAMLCF > ZWEAMLCF;" >>JCL +echo "cp -T ZWEAMLCF \$target;" >>JCL echo "source=\"${ZOWE_MOUNT}files/workflows/ZWECONF.xml\";" >>JCL echo "target=\"//'${WORKFLOW_DSN}(ZWECONF)'\";" >>JCL echo "iconv -f ISO8859-1 -t IBM-1047 \$source > _ZWECONF;" >>JCL diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index aa51b4976d..4779653002 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -315,6 +315,9 @@ def create_swi(self): {"name": "ZOWE Configuration of Zowe 3.0", "description": "This workflow configures Zowe v3.0.", "location": {"dsname": self.hlq + ".WORKFLOW(ZWECONF)"}}, + {"name": "ZOWE APIML optimized Configuration", + "description": "This simplified workflow configures APIML for Zowe 3.0.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWEAMLCF)"}}, {"name": "ZOWE Creation of CSR request workflow", "description": "This workflow creates a certificate sign request.", "location": {"dsname": self.hlq + ".WORKFLOW(ZWECRECR)"}}, From 7fd82e7531c6a88099df1e91030f4db875df66c4 Mon Sep 17 00:00:00 2001 From: Mark Ackert <35308966+MarkAckert@users.noreply.github.com> Date: Mon, 3 Feb 2025 14:42:45 -0500 Subject: [PATCH 121/121] Merge pull request #4161 from zowe/user/zlatnikp/installstep (#4168) User/zlatnikp/installstep Signed-off-by: MarkAckert Co-authored-by: pavelzlatnik <45940302+pavelzlatnik@users.noreply.github.com> --- example-zowe.yaml | 2 +- pswi/03_create.sh | 6 +-- pswi/scripts/deploy_test_2_3.py | 10 ++-- pswi/scripts/wf_run_test.sh | 4 +- workflows/files/ZWEAMLCF.xml | 63 ++++++++++++++++++------ workflows/files/ZWECONF.properties | 9 ---- workflows/files/ZWECONF.xml | 79 ++++++++++++------------------ 7 files changed, 90 insertions(+), 83 deletions(-) diff --git a/example-zowe.yaml b/example-zowe.yaml index 726cf64608..78d0ffb1c2 100644 --- a/example-zowe.yaml +++ b/example-zowe.yaml @@ -39,7 +39,7 @@ zowe: # MVS data set related configurations dataset: # **COMMONLY_CUSTOMIZED** - # where are existing Zowe SZWEEXEC Target libraries + # where Zowe MVS data sets will be installed prefix: IBMUSER.ZWEV3 # **COMMONLY_CUSTOMIZED** # PROCLIB where Zowe STCs will be copied over diff --git a/pswi/03_create.sh b/pswi/03_create.sh index 115c2dafc8..cacd595748 100644 --- a/pswi/03_create.sh +++ b/pswi/03_create.sh @@ -28,9 +28,9 @@ echo "z/OSMF version :" $ZOSMF_V # JSONs ADD_SWI_JSON='{"name":"'${SWI_NAME}'","system":"'${ZOSMF_SYSTEM}'","description":"ZOWE v'${VERSION}' Portable Software Instance", "globalzone":"'${GLOBAL_ZONE}'","targetzones":["'${TZONE}'"],"workflows":[{"name":"ZOWE Mount Workflow","description":"This workflow performs mount action of ZOWE zFS.", -"location": {"dsname":"'${WORKFLOW_DSN}'(ZWEWRF02)"}},{"name":"ZOWE Configuration of Zowe 3.0","description":"This workflow configures Zowe v3.0.", -"location": {"dsname":"'${WORKFLOW_DSN}'(ZWECONF)"}},{"name":"ZOWE APIML optimized Configuration","description":"This simplified workflow configures APIML for Zowe 3.0.", -"location": {"dsname":"'${WORKFLOW_DSN}'(ZWEAMLCF)"}},{"name":"ZOWE Creation of CSR request workflow","description":"This workflow creates a certificate sign request.", +"location": {"dsname":"'${WORKFLOW_DSN}'(ZWEWRF02)"}},{"name":"Stand-alone Zowe API ML Configuration","description":"This workflow configures only API ML for Zowe 3.0.", +"location": {"dsname":"'${WORKFLOW_DSN}'(ZWEAMLCF)"}},{"name":"Full Zowe server-side configuration for Zowe 3.0","description":"This workflow configures all Zowe server-side components for Zowe v3.0.", +"location": {"dsname":"'${WORKFLOW_DSN}'(ZWECONF)"}},{"name":"ZOWE Creation of CSR request workflow","description":"This workflow creates a certificate sign request.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWECRECR)"}},{"name":"ZOWE Sign a CSR request","description":"This workflow signs the certificate sign request by a local CA.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWESIGNC)"}},{"name":"ZOWE Load Authentication Certificate into ESM","description":"This workflow loads a signed client authentication certificate to the ESM.", "location": {"dsname":"'${WORKFLOW_DSN}'(ZWELOADC)"}},{"name":"ZOWE Define key ring and certificates","description":"This workflow defines key ring and certificates for Zowe.", diff --git a/pswi/scripts/deploy_test_2_3.py b/pswi/scripts/deploy_test_2_3.py index 4779653002..db4f94e85e 100644 --- a/pswi/scripts/deploy_test_2_3.py +++ b/pswi/scripts/deploy_test_2_3.py @@ -312,12 +312,12 @@ def create_swi(self): {"name": "ZOWE Mount Workflow", "description": "This workflow performs mount action of ZOWE zFS.", "location": {"dsname": self.hlq + ".WORKFLOW(ZWEWRF02)"}}, - {"name": "ZOWE Configuration of Zowe 3.0", - "description": "This workflow configures Zowe v3.0.", - "location": {"dsname": self.hlq + ".WORKFLOW(ZWECONF)"}}, - {"name": "ZOWE APIML optimized Configuration", - "description": "This simplified workflow configures APIML for Zowe 3.0.", + {"name": "Stand-alone Zowe API ML Configuration", + "description": "This workflow configures only API ML for Zowe 3.0.", "location": {"dsname": self.hlq + ".WORKFLOW(ZWEAMLCF)"}}, + {"name": "Full Zowe server-side configuration for Zowe 3.0", + "description": "This workflow configures all Zowe server-side components for Zowe v3.0.", + "location": {"dsname": self.hlq + ".WORKFLOW(ZWECONF)"}}, {"name": "ZOWE Creation of CSR request workflow", "description": "This workflow creates a certificate sign request.", "location": {"dsname": self.hlq + ".WORKFLOW(ZWECRECR)"}}, diff --git a/pswi/scripts/wf_run_test.sh b/pswi/scripts/wf_run_test.sh index 7429c91a9a..ce60402338 100755 --- a/pswi/scripts/wf_run_test.sh +++ b/pswi/scripts/wf_run_test.sh @@ -83,8 +83,8 @@ if [ "$run" = "run" ]; then echo "Checking if the workflow is ZWECONF" >>$LOG_DIR/report.txt if [ "$ZWECONF" = "ZWECONF" ]; then STEP_NAME=$(echo $RESP | grep -o '"currentStepName":".*"' | cut -f4 -d\") - if [ "$STEP_NAME" = "init_zowe" ]; then - echo "The workflow is ZWECONF and should end in step 'init_zowe'" + if [ "$STEP_NAME" = "install_zowe" ]; then + echo "The workflow is ZWECONF and should end in step 'install_zowe', first step of 'zowe_installation_steps'" STATUS="FINISHED" else echo "The workflow is ZWECONF but ended in different step: '$STEP_NAME'" >>$LOG_DIR/report.txt diff --git a/workflows/files/ZWEAMLCF.xml b/workflows/files/ZWEAMLCF.xml index eb12c13736..d47f87945f 100644 --- a/workflows/files/ZWEAMLCF.xml +++ b/workflows/files/ZWEAMLCF.xml @@ -4,17 +4,17 @@ config_apiml_zowe_30 - Configuration of APIML for Zowe 3.0 - Use this simplified workflow to configure APIML for Zowe 3.0 + Configuration of API ML for Zowe 3.0 + Use this simplified workflow to configure API ML for Zowe 3.0 ###ZOWE_VERSION### Zowe - - Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E - Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase + + Prefix of datasets where remaining runtime datasets will be created + Prefix of datasets where remaining runtime libraries will be created within execution of Zowe install step (SZWEAUTH, SZWESAMP, SZWEEXEC, SZWELOAD) zowe @@ -405,8 +405,8 @@ some use cases, like containerization, this port could be different. - Port for APIML Gateway - Port for APIML Gateway + Port for API ML Gateway + Port for API ML Gateway components @@ -416,8 +416,8 @@ some use cases, like containerization, this port could be different. - Port for APIML ZAAS - Port for APIML ZAAS + Port for API ML ZAAS + Port for API ML ZAAS components @@ -698,13 +698,13 @@ some use cases, like containerization, this port could be different. Create configuration - Creates the configuration for the Zowe (APIML) + Creates the configuration for the Zowe (API ML) - + Generated yaml file is backward compatible with full Zowe,
- this workflow is just simplified with focus on easier APIML configuration.
+ this workflow is just simplified with focus on easier API ML configuration.
Ensure that the values are correct.
zowe.yaml file is created in the: ${instance-zowe_runtimeDirectory} directory

NOTE: If you run this workflow outside of PSWI (SMP/E or convenience build), you might encounter a folder write permission issue.
@@ -767,7 +767,7 @@ echo ' setup:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # MVS data set related configurations' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' dataset:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # where are existing Zowe SZWEEXEC Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # where Zowe MVS data sets will be installed' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' prefix: $!{instance-zowe_setup_dataset_prefix}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # PROCLIB where Zowe STCs will be copied over' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" @@ -1407,11 +1407,46 @@ echo '# enabled: false' >> "${instance-zowe_runtimeDirectory}/zowe.yaml"
Zowe installation - Zowe installation + Zowe installation + + Run the Zowe install + Configure Zowe. + + + + zwe install -c ${instance-zowe_runtimeDirectory}/zowe.yml
+ Will create remaining runtime data sets under zowe.setup.dataset.prefix definition,
+ i.e. under specified prefix ${instance-zowe_setup_dataset_prefix}:
+ SZWEAUTH contains few Zowe load modules (++PROGRAM).
+ SZWESAMP contains several sample configurations.
+ SZWEEXEC contains few utilities used by Zowe.
+ SZWELOAD contains config manager for REXX.
+ ]]>
+ 1 + z/OS System Programmer + false + false + +
Run scripts for Zowe initialization Executes scripts for Zowe initialization + - - Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E - Prefix of existing SZWEEXEC Target libraries created during PSWI or SMP/E installation phase + + Prefix of datasets where remaining runtime datasets will be created + Prefix of datasets where remaining runtime libraries will be created within execution of Zowe install step (SZWEAUTH, SZWESAMP, SZWEEXEC, SZWELOAD) zowe @@ -514,8 +514,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for the APIML Gateway - Port for the APIML Gateway + Port for the API ML Gateway + Port for the API ML Gateway components @@ -535,9 +535,9 @@ How we want to verify SSL certificates of services. Valid values are: - - Check this option to enable APIML ZAAS - Check this option to enable APIML ZAAS + + Check this option to enable API ML ZAAS + Check this option to enable API ML ZAAS components @@ -547,8 +547,8 @@ How we want to verify SSL certificates of services. Valid values are: - Port for APIML ZAAS - Port for APIML ZAAS + Port for API ML ZAAS + Port for API ML ZAAS components @@ -568,7 +568,7 @@ How we want to verify SSL certificates of services. Valid values are: - + Authorization provider for the Gateway Authorization provider for the Gateway components @@ -579,7 +579,7 @@ How we want to verify SSL certificates of services. Valid values are:
- + JWT auto configuration for Gateway security auth JWT auto configuration for Gateway security auth components @@ -592,7 +592,7 @@ How we want to verify SSL certificates of services. Valid values are:
- + Service ID for Gateway security auth Service ID for Gateway security auth components @@ -603,7 +603,7 @@ How we want to verify SSL certificates of services. Valid values are:
- + Use this to enable the security authorization endpoint Use this to enable the security authorization endpoint components @@ -614,7 +614,7 @@ How we want to verify SSL certificates of services. Valid values are: - + Security authorization provider for the Gateway Security authorization provider for the Gateway components @@ -625,7 +625,7 @@ How we want to verify SSL certificates of services. Valid values are:
- + Check to enable the Gateway security x509 Check to enable the Gateway security x509 components @@ -1067,20 +1067,7 @@ How we want to verify SSL certificates of services. Valid values are: ZWESASTC
-
- - - Check to enable this run step with the zwe install command. For convenience build only. - Check this option to enable the optional workflow step with zwe install command. After Zowe convenience build is extracted, - you can enable this flag to run the zwe install command to install MVS data sets within this workflow run. - This option is for convenience build only. SMP/E installs the MVS data sets during installation. - installMVSDatasets - - - - false - - +
@@ -1152,8 +1139,7 @@ How we want to verify SSL certificates of services. Valid values are: - - + Run this step to fill base variables. 1 z/OS System Programmer @@ -1475,7 +1461,7 @@ echo ' setup:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # MVS data set related configurations' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' dataset:' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" -echo ' # where are existing Zowe SZWEEXEC Target libraries' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" +echo ' # where Zowe MVS data sets will be installed' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' prefix: $!{instance-zowe_setup_dataset_prefix}' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # **COMMONLY_CUSTOMIZED**' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" echo ' # PROCLIB where Zowe STCs will be copied over' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" @@ -2225,26 +2211,21 @@ echo '# enabled: false' >> "${instance-zowe_runtimeDirectory}/zowe.yaml" Zowe installation Zowe installation - - Run the Zowe install (only for convenience build) - Configure Zowe. + + Run the Zowe install + Configure Zowe. - - 1==1 - Always true - - - Skips this step if Install the MVS data sets was not selected - !${instance-zowe_setup_installStep_enabled} - skipped - - - zwe install -c ${instance-zowe_runtimeDirectory}/zowe.yml + This step runs the command: zwe install -c ${instance-zowe_runtimeDirectory}/zowe.yml
+ Will create remaining runtime data sets under zowe.setup.dataset.prefix definition,
+ i.e. under specified prefix ${instance-zowe_setup_dataset_prefix}:
+ SZWEAUTH contains few Zowe load modules (++PROGRAM).
+ SZWESAMP contains several sample configurations.
+ SZWEEXEC contains few utilities used by Zowe.
+ SZWELOAD contains config manager for REXX.
]]>
1 z/OS System Programmer @@ -2264,7 +2245,7 @@ zwe install -c '${instance-zowe_runtimeDirectory}/zowe.yaml' --allow-overwrite1024 -
+
Run scripts for Zowe initialization Executes scripts for Zowe initialization