Skip to content

Commit

Permalink
Merge pull request #419 from zowe/v2.x/staging
Browse files Browse the repository at this point in the history
Merge staging into RC
  • Loading branch information
1000TurquoisePogs authored Nov 28, 2023
2 parents 09a29ee + c9cd51b commit 58629b4
Show file tree
Hide file tree
Showing 9 changed files with 296 additions and 11 deletions.
84 changes: 84 additions & 0 deletions .github/workflows/build-getesm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Build getesm
on:
push:
branches:
- v2.x/staging
- v2.x/master
- v2.x/rc
- v3.x/staging
- v3.x/master
- v3.x/rc
pull_request:
types: [opened, reopened, synchronize]
workflow_dispatch:
inputs:
PERFORM_RELEASE:
description: '[Release] perform release'
required: false
default: 'false'

jobs:
check-permission:
runs-on: ubuntu-latest
steps:
# this action will fail the whole workflow if permission check fails
- name: check permission
uses: zowe-actions/shared-actions/permission-check@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

build-test:
runs-on: ubuntu-latest
needs: check-permission
steps:
- name: '[Prep 1] Checkout'
uses: actions/checkout@v2

- name: '[Prep 2] Setup jFrog CLI'
uses: jfrog/setup-jfrog-cli@v2
env:
JF_ARTIFACTORY_1: ${{ secrets.JF_ARTIFACTORY_TOKEN }}

- name: '[Prep 3] Set date'
id: date
run: echo "date=$(date +'%Y%m%d%S')" >> $GITHUB_OUTPUT

- name: '[Prep 4] Set version'
id: version
run: echo "version=$(cat build/getesm.proj.env | grep VERSION | cut -f 2 -d=)" >> $GITHUB_OUTPUT

- name: '[Prep 5] Set branchname'
id: branch
run: echo "branch=$(if [ -n '${{ github.head_ref }}' ]; then echo '${{ github.head_ref }}' | tr '[:lower:]' '[:upper:]'; else echo '${{ github.ref_name }}' | tr '[:lower:]' '[:upper:]'; fi | sed 's@/@-@g')" >> $GITHUB_OUTPUT


- name: '[Prep 6] Prepare workflow'
uses: zowe-actions/shared-actions/prepare-workflow@main


- name: '[Packaging] Make pax'
uses: zowe-actions/shared-actions/make-pax@main
with:
pax-name: 'getesm'
pax-options: '-x os390 -pp'
pax-local-workspace: './.pax/getesm'
pax-ssh-username: ${{ secrets.SSH_MARIST_USERNAME }}
pax-ssh-password: ${{ secrets.SSH_MARIST_RACF_PASSWORD }}

- name: '[Publish] Publish'
uses: zowe-actions/shared-actions/publish@main
if: success()
with:
artifacts: |
.pax/getesm/getesm.pax
publish-target-path-pattern: libs-snapshot-local/org/zowe/getesm/${{ steps.version.outputs.version }}-${{ steps.branch.outputs.branch }}
publish-target-file-pattern: getesm-${{ steps.version.outputs.version }}-${{ steps.date.outputs.date }}.pax
perform-release: ${{ github.event.inputs.PERFORM_RELEASE }}

- name: '[Prep Release] Bump version'
if: ${{ github.event.inputs.PERFORM_RELEASE == 'true' }}
uses: zowe-actions/zlux-builds/[email protected]/main
with:
version: 'MINOR'
env:
GITHUB_TOKEN: ${{ secrets.ZOWE_ROBOT_TOKEN }}
35 changes: 35 additions & 0 deletions .pax/getesm/pre-packaging.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh -e
set -xe

################################################################################
# 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 Contributors to the Zowe Project.
################################################################################


# contants
SCRIPT_NAME=$(basename "$0")
SCRIPT_DIR=$(pwd)

# build
echo "$SCRIPT_NAME build getesm ..."
echo "build folder:"
ls -ltr "$SCRIPT_DIR/content/build"
echo "parent folder:"
ls -ltr "$SCRIPT_DIR/content"
STEPLIB=CBC.SCCNCMP "$SCRIPT_DIR/content/build/build_getesm.sh"

# clean up content folder
echo "$SCRIPT_NAME cleaning up pax folder ..."
cd "$SCRIPT_DIR"
mv content bak && mkdir -p content

# move real files to the content folder
echo "$SCRIPT_NAME coping files should be in pax ..."
cd "$SCRIPT_DIR/content"
cp ../bak/bin/getesm .
44 changes: 44 additions & 0 deletions .pax/getesm/prepare-workspace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/sh -e
set -xe

################################################################################
# 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 Contributors to the Zowe Project.
################################################################################

################################################################################
# Prepare folders/files will be uploaded to Build/PAX server
################################################################################

# contants
SCRIPT_NAME=$(basename "$0")
SCRIPT_DIR=$(dirname "$0")
PAX_WORKSPACE_DIR=.pax/getesm

# make sure in project root folder
cd $SCRIPT_DIR/../..

# prepare pax workspace
echo "[${SCRIPT_NAME}] preparing folders ..."
rm -fr "${PAX_WORKSPACE_DIR}/ascii" && mkdir -p "${PAX_WORKSPACE_DIR}/ascii"
rm -fr "${PAX_WORKSPACE_DIR}/content" && mkdir -p "${PAX_WORKSPACE_DIR}/content"

echo "[${SCRIPT_NAME}] copying files ..."
cp -R * "${PAX_WORKSPACE_DIR}/ascii"
# move files shouldn't change encoding to IBM-1047 to content folder
rsync -rv \
--include '*/' \
--include '*.png' \
--exclude '*' \
--prune-empty-dirs --remove-source-files \
"${PAX_WORKSPACE_DIR}/ascii/" \
"${PAX_WORKSPACE_DIR}/content/"

# update build information
# BRANCH_NAME and BUILD_NUMBER is Jenkins environment variable
commit_hash=$(git rev-parse --verify HEAD)
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## `2.13.0`
- Added support for using "zowe.network" and "components.zss.zowe.network" to set TLS version properties. (#411)
- Added utility for general usage returning the name of External Security Manager

## `2.11.0`

Expand Down
47 changes: 47 additions & 0 deletions build/build_getesm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/sh

# 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 Contributors to the Zowe Project.

echo "********************************************************************************"
echo "Building getesm..."

WORKING_DIR=$(cd $(dirname "$0") && pwd)
COMMON="$WORKING_DIR/.."

date_stamp=$(date +%Y%m%d%S)
TMP_DIR="${WORKING_DIR}/tmp-${date_stamp}"
mkdir -p "${TMP_DIR}" && cd "${TMP_DIR}"

rm -f "${COMMON}/bin/getesm"

xlclang \
-q64 \
"-Wc,float(ieee),longname,langlvl(extc99),gonum,goff,ASM,asmlib('SYS1.MACLIB')" \
-D_OPEN_SYS_FILE_EXT=1 \
-D_XOPEN_SOURCE=600 \
-D_OPEN_THREADS=1 \
-DNOIBMHTTP=1 \
-DCMGRTEST=1 \
-I "${COMMON}/h" \
-o "${COMMON}/bin/getesm" \
${COMMON}/c/alloc.c \
${COMMON}/c/getesm.c \
${COMMON}/c/timeutls.c \
${COMMON}/c/utils.c \
${COMMON}/c/zos.c

rm -rf "${TMP_DIR}"

# 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 Contributors to the Zowe Project.
3 changes: 3 additions & 0 deletions build/getesm.proj.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
PROJECT="getesm"
VERSION=2.13.0
DEPS=""
65 changes: 65 additions & 0 deletions c/getesm.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@


/*
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 Contributors to the Zowe Project.
*/

#include "stdio.h"
#include "string.h"
#include "zowetypes.h"
#include "zos.h"

int getESMHelp(int error) {
if (error)
printf("Wrong parameter(s), see help:\n");
printf("getesm - gets the External Security Manager name and returns RACF, TSS, ACF2 or NONE\n");
printf(" Format: getesm [-h]\n");
printf(" Options:\n -h This help\n");
printf(" Exit values:\n 0 for succesful detection\n 1 otherwise\n");
return error;
}

int main(int argc, char *argv[]) {
int rc;

if ( argc > 1 ){
if (argc == 2 && strcmp(argv[1], "-h") == 0)
return getESMHelp(0);
else
return getESMHelp(1);
}

switch(getExternalSecurityManager()) {
case ZOS_ESM_RTSS:
printf("TSS\n");
return 0;
case ZOS_ESM_RACF:
printf("RACF\n");
return 0;
case ZOS_ESM_ACF2:
printf("ACF2\n");
return 0;
case ZOS_ESM_NONE:
printf("NONE\n");
return 0;
default:
printf("Error processing Communications Vector Table (CVT).\n");
return 1;
}
}

/*
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 Contributors to the Zowe Project.
*/
25 changes: 14 additions & 11 deletions c/zos.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,17 +206,20 @@ int ddnameExists(char *ddname){

ExternalSecurityManager getExternalSecurityManager(void) {
CVT *cvt = getCVT();

if (!memcmp(cvt->cvtrac, RACF_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_RACF;
}
else if (!memcmp(cvt->cvtrac, RTSS_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_RTSS;
}
else if (!memcmp(cvt->cvtrac, ACF2_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_ACF2;
}
else {
if (cvt->cvtrac) {
if (!memcmp(cvt->cvtrac, RACF_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_RACF;
}
else if (!memcmp(cvt->cvtrac, RTSS_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_RTSS;
}
else if (!memcmp(cvt->cvtrac, ACF2_EYECATCHER, ESM_EYECATCHER_LENGTH)) {
return ZOS_ESM_ACF2;
}
else {
return ZOS_ESM_NONE;
}
} else {
return ZOS_ESM_NONE;
}
}
Expand Down
3 changes: 3 additions & 0 deletions h/zos.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@
#define isCallerSRB ZOSCSRB
#define isCallerCrossMemory ZOSCXMEM

#define getExternalSecurityManager GETESM

#endif


Expand Down Expand Up @@ -650,6 +652,7 @@ Addr31 getATCVT(void);
void *getIEACSTBL(void);
cvtfix *getCVTPrefix(void);
ECVT *getECVT(void);
ExternalSecurityManager getExternalSecurityManager(void);

typedef struct ocvt_tag{ /* see SYS1.MACLIB(BPXZOCVT) */
char eyecatcher[4]; /* "OCVT" */
Expand Down

0 comments on commit 58629b4

Please sign in to comment.