Skip to content

Instantly share code, notes, and snippets.

View plavjanik's full-sized avatar

Petr Plavjaník plavjanik

View GitHub Profile
@plavjanik
plavjanik / looping_over_collection_and_indices.py
Created June 16, 2022 04:16
Looping over a collection and indices
colors = ["cyan", "magenta", "yellow", "black"]
# ❌
for i in range(len(colors)):
print(f"{i} --> {colors[i]}")
# ✔️
for i, color in enumerate(colors):
print(f"{i} --> {color}")
@plavjanik
plavjanik / looping_backwards.py
Created June 16, 2022 04:07
Looping backwards
colors = ["cyan", "magenta", "yellow", "black"]
# ❌
for i in range(len(colors) - 1, -1, -1):
print(colors[i])
# ✔️
for color in reversed(colors):
print(color)
@plavjanik
plavjanik / looping_over_collection.py
Created June 16, 2022 04:02
Looping over a collection
colors = ["cyan", "magenta", "yellow", "black"]
# ❌
for i in range(len(colors)):
print(colors[i])
# ✔️
for color in colors:
print(color)
@plavjanik
plavjanik / looping_over_range_of_numbers.py
Last active June 16, 2022 04:01
Looping over a range of numbers
# ❌
i = 0
while i < 6:
print(i)
i += 1
# ❌
for i in [0, 1, 2, 3, 4, 5]:
print(i)
@plavjanik
plavjanik / Jenkinsfile
Last active April 8, 2022 04:42
Using Zowe CLI Docker image in Jenkins
stage('Use the Zowe CLI Image in Jenkins') {
agent {
docker {
image 'zowe-cli:latest'
label 'docker' // Use a label that is used by Jenkins agents with Docker
args '--cap-add ipc_lock' // This capability is needed for the Secure Credential Store
registryUrl 'https://docker.artifactory.acme.net/'
registryCredentialsId 'artifactoryCredentials'
}
}
@plavjanik
plavjanik / Dockerfile
Last active June 19, 2023 23:40
Zowe CLI Dockerfile
FROM node:16
# Directory where Zowe CLI settings and plug-ins will be stored:
RUN mkdir /zowe
WORKDIR /zowe
ENV ZOWE_CLI_HOME=/zowe
# Install requirements of Zowe CLI Secure Credential Store:
RUN DEBIAN_FRONTEND=noninteractive apt update
RUN DEBIAN_FRONTEND=noninteractive apt install -y libsecret-1-dev gnome-keyring dbus-x11
#!/bin/bash
set -e
echo "Called with: $@" > zowe-init.log
if [[ "$1" == "zowe-init" || "$1" == "cat" ]]; then
# Start the gnome keyring daemon when a bash session is initialized (requires passing `--privileged` or `--cap-add ipc_lock` when calling `docker run`):
[ -z "$GNOME_KEYRING_CONTROL" ] && RND=$(openssl rand -base64 32) && eval $(echo "$RND" | gnome-keyring-daemon --unlock --components=secrets >> zowe-init.log | sed -e "s/^/export /g")
# Calling Zowe CLI to initialize daemon mode:
zowe --version >> zowe-init.log
prefix = "'ZWE*'"
owner = "ZOWUSER"
for job in zowe(f"zos-jobs list jobs --prefix {prefix} --owner {owner}"):
if job['retcode'] not in ['CC 0000', None]:
print(f"{job['jobname']} {job['jobid']} {job['retcode']}")
for spool_file in zowe(f"zos-jobs list spool-files-by-jobid {job['jobid']}"):
if spool_file['ddname'] == 'SYSOUT':
sysout = zowe(f"zos-jobs view spool-file-by-id {job['jobid']} {spool_file['id']}")
print(sysout)
import subprocess
import json
class ZoweCallError(Exception):
def __init__(self, returncode, cmd, arguments, output=None, stderr=None):
self.cmd = cmd
self.arguments = arguments
self.returncode = returncode
self.output = self.stdout = output
import subprocess
import json
def zowe(arguments):
zowe_command = "zowe " + arguments + " --rfj"
try:
completed_process = subprocess.run(zowe_command, shell=True, capture_output=True, check=True, encoding="utf8")
parsed_output = json.loads(completed_process.stdout)
return parsed_output.get("data", parsed_output)