From b64af4ad80740e183b06ef7ebb8e443194988196 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Mon, 7 Mar 2022 12:14:52 -0800 Subject: [PATCH 01/17] docs: Change diagram to built-in mermaid support --- .github/cicd-sequence-diagram.mmd | 32 -------------------------- .github/cicd-sequence-diagram.svg | 6 ----- CONTRIBUTING.md | 38 +++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 42 deletions(-) delete mode 100644 .github/cicd-sequence-diagram.mmd delete mode 100644 .github/cicd-sequence-diagram.svg diff --git a/.github/cicd-sequence-diagram.mmd b/.github/cicd-sequence-diagram.mmd deleted file mode 100644 index 4f681c7a..00000000 --- a/.github/cicd-sequence-diagram.mmd +++ /dev/null @@ -1,32 +0,0 @@ -sequenceDiagram - %% This is a mermaid file - %% See https://mermaid-js.github.io - - participant G as GitHub - note right of G: Push to master triggers sequence - participant A as GH Actions - participant S as SplunkBase - participant I as Splunk AppInspect - participant D as Docker Hub - participant K as GCP GKE - - G->>+D: Triggers demo build - D->>-D: Build demo docker image - - G->>+A: Triggers GitHub Action - A->>A: Build App & Add-on - A->>+I: Trigger AppInspect of App and Add-on - I->>-A: AppInspect completed - A->>+I: Request HTML report - I->>-A: Return HTML report - A->>A: Increment version - A->>G: Commit new version to master - A->>G: Create git tag of version - A->>G: Create GH Release w/ release note - A->>A: Build App & Add-on w/ incremented version - A->>S: Publish - A->>-S: Verify Publish - - K->>+K: Triggers weekly - K->>D: Pull latest docker demo - K->>-K: Restart Demo \ No newline at end of file diff --git a/.github/cicd-sequence-diagram.svg b/.github/cicd-sequence-diagram.svg deleted file mode 100644 index dc8b5473..00000000 --- a/.github/cicd-sequence-diagram.svg +++ /dev/null @@ -1,6 +0,0 @@ -GitHubGH ActionsSplunkBaseSplunk AppInspectDocker HubGCP GKEPush to master triggers sequenceTriggers demo buildBuild demo docker imageTriggers GitHub ActionBuild App & Add-onTrigger AppInspect of App and Add-onAppInspect completedRequest HTML reportReturn HTML reportIncrement versionCommit new version to masterCreate git tag of versionCreate GH Release w/ release noteBuild App & Add-on w/ incremented versionPublishVerify PublishTriggers weeklyPull latest docker demoRestart DemoGitHubGH ActionsSplunkBaseSplunk AppInspectDocker HubGCP GKE \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 584c0ed4..d0dfb3c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,7 +130,37 @@ git push origin develop ## CI/CD Sequence diagram -![Sequence diagram](./.github/cicd-sequence-diagram.svg) - -- [Diagram source](./.github/cicd-sequence-diagram.mmd) -- [CI/CD Workflow yaml](./.github/workflows/ci.yml) \ No newline at end of file +```mermaid +sequenceDiagram + %% This is a mermaid file + %% See https://mermaid-js.github.io + + participant G as GitHub + note right of G: Push to master triggers sequence + participant A as GH Actions + participant S as SplunkBase + participant I as Splunk AppInspect + participant D as Docker Hub + participant K as GCP GKE + + G->>+D: Triggers demo build + D->>-D: Build demo docker image + + G->>+A: Triggers GitHub Action + A->>A: Build App & Add-on + A->>+I: Trigger AppInspect of App and Add-on + I->>-A: AppInspect completed + A->>+I: Request HTML report + I->>-A: Return HTML report + A->>A: Increment version + A->>G: Commit new version to master + A->>G: Create git tag of version + A->>G: Create GH Release w/ release note + A->>A: Build App & Add-on w/ incremented version + A->>S: Publish + A->>-S: Verify Publish + + K->>+K: Triggers weekly + K->>D: Pull latest docker demo + K->>-K: Restart Demo +``` \ No newline at end of file From 74bcd3fa98505e84c4773d7032e289c39219dccb Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 9 Mar 2022 16:03:56 -0800 Subject: [PATCH 02/17] build: Fix debug logging issue in set-version.sh --- scripts/set-version.sh | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/scripts/set-version.sh b/scripts/set-version.sh index f46faab1..b736a766 100755 --- a/scripts/set-version.sh +++ b/scripts/set-version.sh @@ -4,7 +4,7 @@ SCRIPT_BASE="$(cd "$( dirname "$0")" && pwd )" ROOT=${SCRIPT_BASE}/.. # shellcheck source=/dev/null source "$SCRIPT_BASE/log4bash.sh" -[ "$DEBUG" ] && log_debug "DEBUG ENABLED" +log_debug "DEBUG ENABLED" # App and Add-on Directories APP=SplunkforPaloAltoNetworks @@ -51,15 +51,15 @@ CHANNEL=${2:-default} CURRENT_VERSION=$(grep -o '^version = [0-9a-z.-]*' "$ROOT/$APP/default/app.conf" | awk '{print $3}') # Generate a build number if [ "$TRAVIS" == "true" ]; then - [ "$DEBUG" ] && log_debug "Running in TravisCI" + log_debug "Running in TravisCI" BUILD=${TRAVIS_BUILD_NUMBER} # BRANCH=${TRAVIS_BRANCH} elif [ "$GITHUB_ACTIONS" == "true" ]; then - [ "$DEBUG" ] && log_debug "Running in GitHub Actions" + log_debug "Running in GitHub Actions" BUILD=${GITHUB_RUN_ID} # BRANCH=${GITHUB_REF#refs/heads/} else - [ "$DEBUG" ] && log_debug "Running outside of CI" + log_debug "Running outside of CI" BUILD=${NEW_VERSION//[.-]/}0 # BRANCH=$(git rev-parse --abbrev-ref HEAD) fi @@ -79,7 +79,7 @@ case $CHANNEL in ;; esac -[ "$DEBUG" ] && log_debug "Build number: $BUILD" +log_debug "Build number: $BUILD" log_info "Changing version from $CURRENT_VERSION to $NEW_VERSION build $BUILD on channel $CHANNEL" # In each of the following replacements, grep us run first to confirm the line @@ -89,35 +89,35 @@ log_info "Changing version from $CURRENT_VERSION to $NEW_VERSION build $BUILD on # Set App versions FILE="${ROOT}/${APP}/${APPCONF}" -[ "$DEBUG" ] && log_debug "Set App ${APPCONF} version to ${NEW_VERSION}" +log_debug "Set App ${APPCONF} version to ${NEW_VERSION}" grep -E '^version = .+$' "$FILE" >/dev/null sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set App ${APPCONF} build to ${BUILD}" +log_debug "Set App ${APPCONF} build to ${BUILD}" grep -E '^build = .+$' "$FILE" >/dev/null sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set App ${APPCONF} add-on required version to ${NEW_VERSION}" +log_debug "Set App ${APPCONF} add-on required version to ${NEW_VERSION}" grep -E '^ta_dependency_version = .+$' "$FILE" >/dev/null sed -i.bak -E "s/ta_dependency_version = .+/ta_dependency_version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" FILE="${ROOT}/${APP}/${README}" -[ "$DEBUG" ] && log_debug "Set App ${README} version to ${NEW_VERSION}" +log_debug "Set App ${README} version to ${NEW_VERSION}" grep -E 'App Version:\*\* .+$' "$FILE" >/dev/null sed -i.bak -E "s/App Version:\*\* .+/App Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set App ${APP}/${README} add-on required version to ${NEW_VERSION}" +log_debug "Set App ${APP}/${README} add-on required version to ${NEW_VERSION}" grep -E 'Splunk_TA_paloalto .+$' "$FILE" >/dev/null sed -i.bak -E "s/Splunk_TA_paloalto .+/Splunk_TA_paloalto ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" FILE="${ROOT}/${APP}/${APPMANIFEST}" -[ "$DEBUG" ] && log_debug "Set App ${APPMANIFEST} version to ${NEW_VERSION}" +log_debug "Set App ${APPMANIFEST} version to ${NEW_VERSION}" grep -E '\"version\": .+' "$FILE" >/dev/null sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" +log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" @@ -125,32 +125,32 @@ sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" FILE="${ROOT}/${ADDON}/${APPCONF}" -[ "$DEBUG" ] && log_debug "Set Addon ${APPCONF} version to ${NEW_VERSION}" +log_debug "Set Addon ${APPCONF} version to ${NEW_VERSION}" grep -E '^version = .+$' "$FILE" >/dev/null sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set Addon ${APPCONF} build to ${BUILD}" +log_debug "Set Addon ${APPCONF} build to ${BUILD}" grep -E '^build = .+$' "$FILE" >/dev/null sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" FILE="${ROOT}/${ADDON}/${APPMANIFEST}" -[ "$DEBUG" ] && log_debug "Set Addon ${APPMANIFEST} version to ${NEW_VERSION}" +log_debug "Set Addon ${APPMANIFEST} version to ${NEW_VERSION}" grep -E '\"version\": .+' "$FILE" >/dev/null sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" -[ "$DEBUG" ] && log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" +log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" FILE="${ROOT}/${ADDON}/${README}" -[ "$DEBUG" ] && log_debug "Set Addon ${README} Version to ${NEW_VERSION}" +log_debug "Set Addon ${README} Version to ${NEW_VERSION}" grep -E 'Add-on Version:\*\* .+$' "$FILE" >/dev/null sed -i.bak -E "s/Add-on Version:\*\* .+/Add-on Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" FILE="${ROOT}/${ADDON}/${GLOBALCONFIG}" -[ "$DEBUG" ] && log_debug "Set Addon GlobalConfig Version to ${NEW_VERSION}" +log_debug "Set Addon GlobalConfig Version to ${NEW_VERSION}" grep -E '\"version\": .+' "$FILE" >/dev/null sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\",/" "$FILE" && rm "${FILE}.bak" \ No newline at end of file From 2164015f659e4025b9968069f72b8689a14fac48 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 9 Mar 2022 16:05:32 -0800 Subject: [PATCH 03/17] build: Change branch->filename to use underscore --- scripts/common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/common.sh b/scripts/common.sh index 4d581f54..4b78b53a 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -29,7 +29,7 @@ get_branch () { else BRANCH=$(git rev-parse --abbrev-ref HEAD) fi - BRANCH=${BRANCH//\//-} + BRANCH=${BRANCH//\//_} echo "$BRANCH" } From dff7235004f0e9642d30dafaf5a18103673ce9cc Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 9 Mar 2022 16:05:51 -0800 Subject: [PATCH 04/17] build: Build script can set version during build --- scripts/build.sh | 54 ++++++++++++--- scripts/set-version.sh | 154 ++++++++++++++++++++++++++--------------- 2 files changed, 142 insertions(+), 66 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 1c1e6205..13f43f48 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -7,6 +7,7 @@ ROOT=${SCRIPT_BASE}/.. source "$SCRIPT_BASE/log4bash.sh" # shellcheck source=/dev/null source "$SCRIPT_BASE/common.sh" +log_debug "DEBUG ENABLED" # Exit immediatly if any command exits with a non-zero status set -e @@ -16,19 +17,22 @@ print_usage () { echo "" echo "Usage:" echo "" - echo "build.sh -a [-o filename] [-l]" + echo "build.sh -a [-o filename] [-l] [-v [-r ]]" echo "" echo " -a What to build. Must be either 'app' or 'addon'." echo " -o The filename of the output package" echo " -l Build from local files, not from git-archive" + echo " -v Set the version before building" + echo " -r When setting the version, specify a release channel (see set-version.sh)" echo "" } APP='Splunk_TA_paloalto' -while getopts a:o:lh FLAG; do +while getopts a:o:v:r:lh FLAG; do case $FLAG in a) + WHICHAPP=$OPTARG if [ "$OPTARG" == "app" ]; then APP=SplunkforPaloAltoNetworks elif [ "$OPTARG" == "addon" ]; then @@ -41,6 +45,12 @@ while getopts a:o:lh FLAG; do o) OUTPUT_FILE="$OPTARG" ;; + v) + SET_VERSION="$OPTARG" + ;; + r) + CHANNEL="$OPTARG" + ;; l) BUILD_LOCAL="true" ;; @@ -48,6 +58,10 @@ while getopts a:o:lh FLAG; do print_usage exit 0 ;; + :) + echo "$0: Must supply an argument to -$OPTARG." >&2 + exit 1 + ;; \?) #unrecognized option - show help print_usage exit 1 @@ -60,9 +74,16 @@ rm -rf "${ROOT}/_build/tmp" 2>/dev/null mkdir -p "${ROOT}/_build/tmp" # Get the current version from the app -VERSION=$(get_version "$ROOT/$APP") +if [ "$SET_VERSION" ]; then + log_debug "Using specified version: $SET_VERSION" + VERSION="$SET_VERSION" +else + log_debug "Using version from app.conf" + VERSION=$(get_version "$ROOT/$APP") +fi if [ -z "$BUILD_LOCAL" ]; then + log_debug "Building from git archive" BRANCH=$(get_branch) BUILD=$(get_build) @@ -77,25 +98,36 @@ if [ -z "$BUILD_LOCAL" ]; then tar xzf "${APP}-${VERSION}-${BUILD}-temp.tgz" rm "${APP}-${VERSION}-${BUILD}-temp.tgz" else - BRANCH=no-branch + log_debug "Building from local" + BRANCH=$(get_branch) BUILD=local log_info "Building ${APP} version ${VERSION} build ${BUILD} from branch ${BRANCH}" # Just copy the files, don't use git. Safe during CI, but not anywhere else. - cp -R "${ROOT}/${APP}" "${ROOT}/_build/tmp/" cd "${ROOT}/_build/tmp" + rm -rf "${APP}" >/dev/null + cp -R "${ROOT}/${APP}" "${ROOT}/_build/tmp/" fi # Strip out stuff that SplunkBase doesn't like # such as hidden files and Makefiles -find . -type f -name ".*" -exec rm {} \; +find ${APP} -type f -name ".*" -exec rm {} \; +find ${APP} -type d -name ".*" -exec rm -rf {} \; +find ${APP} -type f -name "*.pyc" -exec rm {} \; find "${APP}/bin" -type f -name "*.py" -exec chmod +x {} \; rm "${APP}/Makefile" rm "${APP}/bin/lib/pandevice/docs/Makefile" rm "${APP}/bin/lib/pandevice/docs/make.bat" rm "${APP}/bin/lib/pan-python/doc/Makefile" rm -rf "${APP}/release" +rm -rf "${APP}/local" + +# Set the version if requested +if [ "$SET_VERSION" ]; then + log_debug "Running set-version.sh..." + LOG_LEVEL=$LOG_LEVEL "$SCRIPT_BASE/set-version.sh" -a "$WHICHAPP" -d ./ "$SET_VERSION" "$CHANNEL" +fi if [ -z "$OUTPUT_FILE" ]; then FILENAME=$(get_build_filename "$APP" "$VERSION" "$BRANCH" "$BUILD") @@ -108,12 +140,16 @@ tar czf "${ROOT}/_build/${FILENAME}" "${APP}" # Set variables for GitHub Actions to pick up in subsequent steps if [ "$GITHUB_ACTIONS" == "true" ]; then - echo ::set-output "name=path::_build/${FILENAME}" - echo ::set-output "name=file::${FILENAME}" + log_debug "Setting GitHub Actions outputs" + echo ::set-output "name=path::_build/$FILENAME" + echo ::set-output "name=file::$FILENAME" fi +log_debug "path: _build/$FILENAME" +log_debug "file: $FILENAME" + # Cleanup cd "${ROOT}" rm -rf "${ROOT}/_build/tmp" -log_success "SplunkBase package is ready." \ No newline at end of file +log_success "SplunkBase package is ready at _build/$FILENAME" \ No newline at end of file diff --git a/scripts/set-version.sh b/scripts/set-version.sh index b736a766..31f8fdbf 100755 --- a/scripts/set-version.sh +++ b/scripts/set-version.sh @@ -16,6 +16,12 @@ README=README.md APPMANIFEST=app.manifest GLOBALCONFIG=appserver/static/js/build/globalConfig.json +# Set default working directory +WORK=$ROOT + +# Set which app to set the version of +WHICHAPP=both + # Exit immediatly if any command exits with a non-zero status set -e @@ -24,31 +30,61 @@ print_usage() { echo "Set the app/add-on version" echo "" echo "Usage:" - echo " set-version.sh [release-channel]" + echo " $(basename "$0") [-d ] [release-channel]" echo "" echo "Release channel can be 'default', 'beta', or 'alpha'." echo "If not specified, the default channel is used." } -# if less than one arguments supplied, display usage +# Process arguments +while getopts a:d:h FLAG; do + case $FLAG in + a) + if [ "$OPTARG" == "app" ]; then + WHICHAPP=app + elif [ "$OPTARG" == "addon" ]; then + WHICHAPP=addon + elif [ "$OPTARG" == "both" ]; then + WHICHAPP=both + else + log_error "Unknown argument: $OPTARG" + exit 1 + fi + ;; + d) + WORK="$OPTARG" + ;; + h) + print_usage + exit 0 + ;; + :) + echo "$0: Must supply an argument to -$OPTARG." >&2 + exit 1 + ;; + \?) #unrecognized option - show help + print_usage + exit 1 + ;; + esac +done + +# Remove getopts arguments +shift "$(($OPTIND -1))" + +# If less than one arguments supplied, display usage if [ $# -lt 1 ] then print_usage exit 1 fi -# check whether user had supplied -h or --help . If yes display usage -if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then - print_usage - exit 0 -fi - TEMP_VERSION=${1/-alpha\./alpha} NEW_VERSION=${TEMP_VERSION/-beta\./beta} CHANNEL=${2:-default} # Get the current version from the app -CURRENT_VERSION=$(grep -o '^version = [0-9a-z.-]*' "$ROOT/$APP/default/app.conf" | awk '{print $3}') +CURRENT_VERSION=$(grep -o '^version = [0-9a-z.-]*' "$WORK/$APP/default/app.conf" | awk '{print $3}') # Generate a build number if [ "$TRAVIS" == "true" ]; then log_debug "Running in TravisCI" @@ -86,71 +122,75 @@ log_info "Changing version from $CURRENT_VERSION to $NEW_VERSION build $BUILD on # exists in the file. If grep fails to find the line, the whole script stops # with a return code of 1. After each grep, sed does the replacement. -# Set App versions -FILE="${ROOT}/${APP}/${APPCONF}" +if [ "$WHICHAPP" = "app" ] || [ "$WHICHAPP" = "both" ]; then + # Set App versions + FILE="${WORK}/${APP}/${APPCONF}" -log_debug "Set App ${APPCONF} version to ${NEW_VERSION}" -grep -E '^version = .+$' "$FILE" >/dev/null -sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${APPCONF} version to ${NEW_VERSION}" + grep -E '^version = .+$' "$FILE" >/dev/null + sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -log_debug "Set App ${APPCONF} build to ${BUILD}" -grep -E '^build = .+$' "$FILE" >/dev/null -sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${APPCONF} build to ${BUILD}" + grep -E '^build = .+$' "$FILE" >/dev/null + sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" -log_debug "Set App ${APPCONF} add-on required version to ${NEW_VERSION}" -grep -E '^ta_dependency_version = .+$' "$FILE" >/dev/null -sed -i.bak -E "s/ta_dependency_version = .+/ta_dependency_version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${APPCONF} add-on required version to ${NEW_VERSION}" + grep -E '^ta_dependency_version = .+$' "$FILE" >/dev/null + sed -i.bak -E "s/ta_dependency_version = .+/ta_dependency_version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -FILE="${ROOT}/${APP}/${README}" + FILE="${WORK}/${APP}/${README}" -log_debug "Set App ${README} version to ${NEW_VERSION}" -grep -E 'App Version:\*\* .+$' "$FILE" >/dev/null -sed -i.bak -E "s/App Version:\*\* .+/App Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${README} version to ${NEW_VERSION}" + grep -E 'App Version:\*\* .+$' "$FILE" >/dev/null + sed -i.bak -E "s/App Version:\*\* .+/App Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -log_debug "Set App ${APP}/${README} add-on required version to ${NEW_VERSION}" -grep -E 'Splunk_TA_paloalto .+$' "$FILE" >/dev/null -sed -i.bak -E "s/Splunk_TA_paloalto .+/Splunk_TA_paloalto ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${APP}/${README} add-on required version to ${NEW_VERSION}" + grep -E 'Splunk_TA_paloalto .+$' "$FILE" >/dev/null + sed -i.bak -E "s/Splunk_TA_paloalto .+/Splunk_TA_paloalto ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -FILE="${ROOT}/${APP}/${APPMANIFEST}" + FILE="${WORK}/${APP}/${APPMANIFEST}" -log_debug "Set App ${APPMANIFEST} version to ${NEW_VERSION}" -grep -E '\"version\": .+' "$FILE" >/dev/null -sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" + log_debug "Set App ${APPMANIFEST} version to ${NEW_VERSION}" + grep -E '\"version\": .+' "$FILE" >/dev/null + sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" -log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" -grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null -sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" + grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null + sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" +fi -# Set Add-on versions +if [ "$WHICHAPP" = "addon" ] || [ "$WHICHAPP" = "both" ]; then + # Set Add-on versions -FILE="${ROOT}/${ADDON}/${APPCONF}" + FILE="${WORK}/${ADDON}/${APPCONF}" -log_debug "Set Addon ${APPCONF} version to ${NEW_VERSION}" -grep -E '^version = .+$' "$FILE" >/dev/null -sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${APPCONF} version to ${NEW_VERSION}" + grep -E '^version = .+$' "$FILE" >/dev/null + sed -i.bak -E "s/version = .+/version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -log_debug "Set Addon ${APPCONF} build to ${BUILD}" -grep -E '^build = .+$' "$FILE" >/dev/null -sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${APPCONF} build to ${BUILD}" + grep -E '^build = .+$' "$FILE" >/dev/null + sed -i.bak -E "s/build = .+/build = ${BUILD}/" "$FILE" && rm "${FILE}.bak" -FILE="${ROOT}/${ADDON}/${APPMANIFEST}" + FILE="${WORK}/${ADDON}/${APPMANIFEST}" -log_debug "Set Addon ${APPMANIFEST} version to ${NEW_VERSION}" -grep -E '\"version\": .+' "$FILE" >/dev/null -sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${APPMANIFEST} version to ${NEW_VERSION}" + grep -E '\"version\": .+' "$FILE" >/dev/null + sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\"/" "$FILE" && rm "${FILE}.bak" -log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" -grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null -sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${APPMANIFEST} development status to ${DEVSTATUS}" + grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null + sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" -FILE="${ROOT}/${ADDON}/${README}" + FILE="${WORK}/${ADDON}/${README}" -log_debug "Set Addon ${README} Version to ${NEW_VERSION}" -grep -E 'Add-on Version:\*\* .+$' "$FILE" >/dev/null -sed -i.bak -E "s/Add-on Version:\*\* .+/Add-on Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" + log_debug "Set Addon ${README} Version to ${NEW_VERSION}" + grep -E 'Add-on Version:\*\* .+$' "$FILE" >/dev/null + sed -i.bak -E "s/Add-on Version:\*\* .+/Add-on Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" -FILE="${ROOT}/${ADDON}/${GLOBALCONFIG}" + FILE="${WORK}/${ADDON}/${GLOBALCONFIG}" -log_debug "Set Addon GlobalConfig Version to ${NEW_VERSION}" -grep -E '\"version\": .+' "$FILE" >/dev/null -sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\",/" "$FILE" && rm "${FILE}.bak" \ No newline at end of file + log_debug "Set Addon GlobalConfig Version to ${NEW_VERSION}" + grep -E '\"version\": .+' "$FILE" >/dev/null + sed -i.bak -E "s/version\": .+/version\": \"${NEW_VERSION}\",/" "$FILE" && rm "${FILE}.bak" +fi \ No newline at end of file From c3f5602e2a3ab814e24d8081247b6c9c398afc20 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 10:58:58 -0800 Subject: [PATCH 05/17] ci: Publish docker image --- .github/workflows/ci.yml | 109 +++++++++++++++++++--------- .github/workflows/pr-appinspect.yml | 97 +++++++++++++++++++++++++ release.config.js | 19 +---- scripts/publish.sh | 12 ++- 4 files changed, 184 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/pr-appinspect.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c227b9e2..db74789c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,5 @@ name: CI/CD -# Trigger the workflow on push or pull request on: push: branches: @@ -10,40 +9,25 @@ on: - alpha - '[0-9]+.x' - '[0-9]+.[0-9]+.x' - pull_request: jobs: - build: - name: Build - if: "! (github.event_name == 'push' && github.ref == 'refs/heads/master')" - runs-on: ubuntu-18.04 + appinspect-addon: + name: AppInspect (Add-on) + runs-on: ubuntu-20.04 + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build Add-on id: build-addon run: scripts/build.sh -a addon - - name: Build App - id: build-app - run: scripts/build.sh -a app - - uses: actions/upload-artifact@v1 - with: - name: SplunkforPaloAltoNetworks-${{ github.run_id }} - path: ${{ steps.build-app.outputs.path }} - - uses: actions/upload-artifact@v1 + - name: Save Add-on Build Artifact + uses: actions/upload-artifact@v1 + if: '! cancelled()' with: name: Splunk_TA_paloalto-${{ github.run_id }} path: ${{ steps.build-addon.outputs.path }} - - appinspect-addon: - name: AppInspect (Add-on) - runs-on: ubuntu-18.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Build Add-on - id: build-addon - run: scripts/build.sh -a addon - name: AppInspect run: scripts/appinspect.sh -a addon -r env: @@ -58,13 +42,21 @@ jobs: appinspect-app: name: AppInspect (App) - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build App id: build-app run: scripts/build.sh -a app + - name: Save App Build Artifact + uses: actions/upload-artifact@v1 + if: '! cancelled()' + with: + name: SplunkforPaloAltoNetworks-${{ github.run_id }} + path: ${{ steps.build-app.outputs.path }} - name: AppInspect run: scripts/appinspect.sh -a app -r env: @@ -79,22 +71,73 @@ jobs: release: name: Release - if: github.event_name == 'push' && github.ref != 'refs/heads/develop' + if: github.ref != 'refs/heads/develop' needs: [appinspect-addon, appinspect-app] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 + outputs: + new_release_published: ${{ steps.semantic.outputs.new_release_published }} + new_release_version: ${{ steps.semantic.outputs.new_release_version }} + new_release_channel: ${{ steps.semantic.outputs.new_release_channel }} steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Create release and publish - id: release - uses: cycjimmy/semantic-release-action@v2 + id: semantic + uses: cycjimmy/semantic-release-action@v3 with: semantic_version: 17.1.1 extra_plugins: | conventional-changelog-conventionalcommits@^4.4.0 - @semantic-release/git@^9.0.0 @semantic-release/exec@^5.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SPLUNK_USER: ${{ secrets.SPLUNK_USER }} SPLUNK_PASS: ${{ secrets.SPLUNK_PASS }} + + docker-build: + name: Docker Build + needs: [release] + if: needs.release.result == 'success' || needs.release.result == 'skipped' + runs-on: ubuntu-20.04 + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Determine docker tags and labels + id: meta + uses: docker/metadata-action@v3 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} + type=ref,event=branch + + - name: Set the version in app.conf + if: needs.release.result == 'success' && needs.release.outputs.new_release_published == 'true' + run: scripts/set-version.sh ${{ needs.release.outputs.new_release_version }} ${{ needs.release.outputs.new_release_channel }} + + - name: Create docker version tag + id: versiontag + if: needs.release.result == 'success' && needs.release.outputs.new_release_published == 'true' + run: echo "::set-output name=versiontag::${{ env.REGISTRY }}/${{ IMAGE_NAME }}:${{ needs.release.outputs.new_release_version }}" + + - name: Login to Container registry + uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: . + file: demo/Dockerfile + push: true + tags: | + ${{ steps.meta.outputs.tags }} + ${{ steps.versiontag.outputs.versiontag }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/pr-appinspect.yml b/.github/workflows/pr-appinspect.yml new file mode 100644 index 00000000..67e8604e --- /dev/null +++ b/.github/workflows/pr-appinspect.yml @@ -0,0 +1,97 @@ +name: PR App Inspect + +on: + pull_request_target: + branches: + - develop + +jobs: + appinspect-addon: + name: AppInspect (Add-on) + runs-on: ubuntu-18.04 + # Remove write permissions + permissions: + contents: read + steps: + # Checkout unsafe code + - name: Checkout PR + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: pr + persist-credentials: false + # Checkout safe code + - name: Checkout build scripts + uses: actions/checkout@v3 + with: + path: tools + # Replace build script in unsafe code with scripts from safe code + - name: Setup build scripts + run: | + rm -rf pr/scripts + mv tools/scripts pr + - name: Build Add-on + id: build-addon + working-directory: pr + run: scripts/build.sh -a addon + - name: Save Add-on Build Artifact + uses: actions/upload-artifact@v1 + if: '! cancelled()' + with: + name: Splunk_TA_paloalto-${{ github.run_id }} + path: ${{ steps.build-addon.outputs.path }} + - name: AppInspect + working-directory: pr + run: scripts/appinspect.sh -a addon -r + env: + SPLUNK_USER: ${{ secrets.SPLUNK_USER }} + SPLUNK_PASS: ${{ secrets.SPLUNK_PASS }} + - name: Save report + uses: actions/upload-artifact@v1 + if: '! cancelled()' + with: + name: Report-Splunk_TA_paloalto-${{ github.run_id }}.html + path: pr/_build/Splunk_TA_paloalto-${{ github.run_id }}.html + + appinspect-app: + name: AppInspect (App) + runs-on: ubuntu-18.04 + permissions: + contents: read + steps: + - name: Checkout PR + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: pr + persist-credentials: false + - name: Checkout build scripts + uses: actions/checkout@v3 + with: + path: tools + - name: Setup build scripts + run: | + rm -rf pr/scripts + mv tools/scripts pr + - name: Build App + id: build-app + working-directory: pr + run: scripts/build.sh -a app + - name: Save App Build Artifact + uses: actions/upload-artifact@v1 + if: '! cancelled()' + with: + name: SplunkforPaloAltoNetworks-${{ github.run_id }} + path: ${{ steps.build-app.outputs.path }} + - name: AppInspect + working-directory: pr + run: scripts/appinspect.sh -a app -r + env: + SPLUNK_USER: ${{ secrets.SPLUNK_USER }} + SPLUNK_PASS: ${{ secrets.SPLUNK_PASS }} + - name: Save report + uses: actions/upload-artifact@v1 + if: '! cancelled()' + with: + name: Report-SplunkforPaloAltoNetworks-${{ github.run_id }}.html + path: pr/_build/SplunkforPaloAltoNetworks-${{ github.run_id }}.html \ No newline at end of file diff --git a/release.config.js b/release.config.js index 0d08632f..48680429 100644 --- a/release.config.js +++ b/release.config.js @@ -91,24 +91,9 @@ var releaseConfig = { '@semantic-release/exec', { prepareCmd: - 'LOG_LEVEL=DEBUG scripts/set-version.sh "${nextRelease.version}" "${nextRelease.channel}"', + 'LOG_LEVEL=DEBUG scripts/build.sh -a app -v "${nextRelease.version}" -r "${nextRelease.channel}" && LOG_LEVEL=DEBUG scripts/build.sh -a addon -v "${nextRelease.version}" -r "${nextRelease.channel}"', publishCmd: - 'scripts/build.sh -a app && scripts/build.sh -a addon && LOG_LEVEL=DEBUG scripts/publish.sh -a app && LOG_LEVEL=DEBUG scripts/publish.sh -a addon', - }, - ], - [ - '@semantic-release/git', - { - assets: [ - 'SplunkforPaloAltoNetworks/default/app.conf', - 'SplunkforPaloAltoNetworks/app.manifest', - 'SplunkforPaloAltoNetworks/README.md', - 'Splunk_TA_paloalto/default/app.conf', - 'Splunk_TA_paloalto/app.manifest', - 'Splunk_TA_paloalto/README.md', - ], - message: - 'chore(release): ${nextRelease.version}\n\n${nextRelease.notes}', + 'LOG_LEVEL=DEBUG scripts/publish.sh -a app -v "${nextRelease.version}" && LOG_LEVEL=DEBUG scripts/publish.sh -a addon -v "${nextRelease.version}"', }, ], [ diff --git a/scripts/publish.sh b/scripts/publish.sh index f1893d02..542ddb25 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -32,9 +32,10 @@ print_usage () { echo "" echo "Usage:" echo "" - echo "publish.sh -a [-f ]" + echo "publish.sh -a [-v | -f ]" echo "" echo " -a What to inspect. Must be either 'app' or 'addon'." + echo " -v Version of spl package to look for in _build directory" echo " -f File to submit for publication" echo "" } @@ -103,7 +104,7 @@ check_status () { APP='' APP_ID='' -while getopts a:f:h FLAG; do +while getopts a:fv:h FLAG; do case $FLAG in a) if [ "$OPTARG" == "app" ]; then @@ -123,6 +124,9 @@ while getopts a:f:h FLAG; do f) FILENAME="$OPTARG" ;; + v) + VERSION="$OPTARG" + ;; h) print_usage exit 0 @@ -145,7 +149,9 @@ CIM_SUPPORTED=$(get_cim_supported "$APP") # Determine the file to publish if [ -z "$FILENAME" ]; then - VERSION=$(get_version "$ROOT/$APP") + if [ -z "$VERSION" ]; then + VERSION=$(get_version "$ROOT/$APP") + fi FILENAME="${ROOT}/_build/$(get_build_filename "$APP" "$VERSION" "$BRANCH" "$BUILD")" fi log_debug "File $FILENAME" From e09790ee1cb481fd8c2dbb0cd0090555072b6b66 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 11:09:40 -0800 Subject: [PATCH 06/17] ci: Fix issues in recent CI changes --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db74789c..87912afc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -122,7 +122,7 @@ jobs: - name: Create docker version tag id: versiontag if: needs.release.result == 'success' && needs.release.outputs.new_release_published == 'true' - run: echo "::set-output name=versiontag::${{ env.REGISTRY }}/${{ IMAGE_NAME }}:${{ needs.release.outputs.new_release_version }}" + run: echo "::set-output name=versiontag::${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.release.outputs.new_release_version }}" - name: Login to Container registry uses: docker/login-action@v1 From 3682c28fb16ff78da46f0c026cf16290c374943e Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 13:26:19 -0800 Subject: [PATCH 07/17] ci: Fix path for PR build upload artifact --- .github/workflows/pr-appinspect.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-appinspect.yml b/.github/workflows/pr-appinspect.yml index 67e8604e..29b8dda7 100644 --- a/.github/workflows/pr-appinspect.yml +++ b/.github/workflows/pr-appinspect.yml @@ -39,7 +39,7 @@ jobs: if: '! cancelled()' with: name: Splunk_TA_paloalto-${{ github.run_id }} - path: ${{ steps.build-addon.outputs.path }} + path: pr/${{ steps.build-addon.outputs.path }} - name: AppInspect working-directory: pr run: scripts/appinspect.sh -a addon -r @@ -82,7 +82,7 @@ jobs: if: '! cancelled()' with: name: SplunkforPaloAltoNetworks-${{ github.run_id }} - path: ${{ steps.build-app.outputs.path }} + path: pr/${{ steps.build-app.outputs.path }} - name: AppInspect working-directory: pr run: scripts/appinspect.sh -a app -r From 4cd040337514e5356f4f466baeada08dc8add85e Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 13:18:20 -0800 Subject: [PATCH 08/17] feat: Deprecate external search from Autofocus per Splunk requirement --- .../default/data/ui/html/external_search.html | 380 ------------------ 1 file changed, 380 deletions(-) delete mode 100644 SplunkforPaloAltoNetworks/default/data/ui/html/external_search.html diff --git a/SplunkforPaloAltoNetworks/default/data/ui/html/external_search.html b/SplunkforPaloAltoNetworks/default/data/ui/html/external_search.html deleted file mode 100644 index 2565f130..00000000 --- a/SplunkforPaloAltoNetworks/default/data/ui/html/external_search.html +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - External Search - - - - - Screen reader users, click here to skip the navigation bar - -
- -
-

External Search

- -
-
-
-
- -
- - -
- - - - - - - - - - From 83f01e4dba06a2e1e7037a87ea046d01a1e83b5d Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 13:51:37 -0800 Subject: [PATCH 09/17] ci: Set version placeholder and fix docker build conditional --- .github/workflows/ci.yml | 5 +++-- Splunk_TA_paloalto/README.md | 1 - Splunk_TA_paloalto/app.manifest | 4 ++-- .../appserver/static/js/build/globalConfig.json | 2 +- Splunk_TA_paloalto/default/app.conf | 4 ++-- SplunkforPaloAltoNetworks/README.md | 2 -- SplunkforPaloAltoNetworks/app.manifest | 4 ++-- SplunkforPaloAltoNetworks/default/app.conf | 6 +++--- scripts/set-version.sh | 17 ----------------- 9 files changed, 13 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87912afc..e1219c0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -97,11 +97,12 @@ jobs: docker-build: name: Docker Build needs: [release] - if: needs.release.result == 'success' || needs.release.result == 'skipped' + # When to run, per https://github.com/actions/runner/issues/491#issuecomment-850884422 + if: always() && (needs.release.result == 'success' || needs.release.result == 'skipped') runs-on: ubuntu-20.04 env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} + IMAGE_NAME: ${{ github.repository_owner }}/splunk-demo steps: - name: Checkout uses: actions/checkout@v3 diff --git a/Splunk_TA_paloalto/README.md b/Splunk_TA_paloalto/README.md index d3c15e4f..506e7d0f 100644 --- a/Splunk_TA_paloalto/README.md +++ b/Splunk_TA_paloalto/README.md @@ -4,7 +4,6 @@ Palo Alto Networks Add-on for Splunk * **Add-on Homepage:** https://splunkbase.splunk.com/app/2757 * **Authors:** Brian Torres-Gil, Paul Nguyen, Garfield Freeman - Palo Alto Networks -* **Add-on Version:** 7.0.3 ### Description ### diff --git a/Splunk_TA_paloalto/app.manifest b/Splunk_TA_paloalto/app.manifest index c99f17c0..543d9481 100644 --- a/Splunk_TA_paloalto/app.manifest +++ b/Splunk_TA_paloalto/app.manifest @@ -5,7 +5,7 @@ "id": { "group": null, "name": "Splunk_TA_paloalto", - "version": "7.0.3" + "version": "0.0.0-develop" }, "author": [ { @@ -22,7 +22,7 @@ "IT Operations", "Security, Fraud & Compliance" ], - "developmentStatus": "Production/Stable" + "developmentStatus": "Alpha" }, "commonInformationModels": { "Authentication":"4.19.0", diff --git a/Splunk_TA_paloalto/appserver/static/js/build/globalConfig.json b/Splunk_TA_paloalto/appserver/static/js/build/globalConfig.json index 7b5aa8a8..9bad25b9 100644 --- a/Splunk_TA_paloalto/appserver/static/js/build/globalConfig.json +++ b/Splunk_TA_paloalto/appserver/static/js/build/globalConfig.json @@ -2,7 +2,7 @@ "meta": { "name": "Splunk_TA_paloalto", "displayName": "Palo Alto Networks Add-on", - "version": "7.0.1", + "version": "0.0.0-develop", "apiVersion": "3.0.0", "restRoot": "Splunk_TA_paloalto", "schemaVersion": "0.0.2" diff --git a/Splunk_TA_paloalto/default/app.conf b/Splunk_TA_paloalto/default/app.conf index 5ee2ce3c..f36a2910 100644 --- a/Splunk_TA_paloalto/default/app.conf +++ b/Splunk_TA_paloalto/default/app.conf @@ -1,13 +1,13 @@ [install] is_configured = false state = enabled -build = 1281195361 +build = 000develop0 splunk_supported = 8.1,8.0 cim_supported = 4.x [launcher] author = Palo Alto Networks -version = 7.0.3 +version = 0.0.0-develop description = The Palo Alto Networks Add-on allows a Splunk Enterprise administrator to collect data from Palo Alto Networks Next-Generation Firewall devices, Panorama, Advanced Endpoint Protection, Aperture SaaS Security, AutoFocus Threat Intelligence, and MineMeld. [ui] diff --git a/SplunkforPaloAltoNetworks/README.md b/SplunkforPaloAltoNetworks/README.md index dd932830..48592bb2 100644 --- a/SplunkforPaloAltoNetworks/README.md +++ b/SplunkforPaloAltoNetworks/README.md @@ -4,8 +4,6 @@ Palo Alto Networks App for Splunk * **App Homepage:** https://splunkbase.splunk.com/app/491 * **Authors:** Brian Torres-Gil, Paul Nguyen, Garfield Freeman - Palo Alto Networks -* **App Version:** 7.0.3 -* **Required Add-on (TA) Version:** Splunk_TA_paloalto 7.0.3 ### Description ### diff --git a/SplunkforPaloAltoNetworks/app.manifest b/SplunkforPaloAltoNetworks/app.manifest index 99603db6..c4de48bf 100644 --- a/SplunkforPaloAltoNetworks/app.manifest +++ b/SplunkforPaloAltoNetworks/app.manifest @@ -5,7 +5,7 @@ "id": { "group": null, "name": "SplunkforPaloAltoNetworks", - "version": "7.0.3" + "version": "0.0.0-develop" }, "author": [ { @@ -19,7 +19,7 @@ "classification": { "intendedAudience": null, "categories": [], - "developmentStatus": "Production/Stable" + "developmentStatus": "Alpha" }, "commonInformationModels": null, "license": { diff --git a/SplunkforPaloAltoNetworks/default/app.conf b/SplunkforPaloAltoNetworks/default/app.conf index 34b40b2f..1fbafddf 100644 --- a/SplunkforPaloAltoNetworks/default/app.conf +++ b/SplunkforPaloAltoNetworks/default/app.conf @@ -5,13 +5,13 @@ label = Palo Alto Networks [launcher] author = splunkapp@paloaltonetworks.com description = The Palo Alto Networks App for Splunk is a set of reports and dashboards which provide visibility into the Palo Alto Networks Next-generation Firewall, Panorama, and Advanced Endpoint Security logs. -version = 7.0.3 +version = 0.0.0-develop [package] id = SplunkforPaloAltoNetworks [install] -build = 1281195361 -ta_dependency_version = 7.0.3 +build = 000develop0 +ta_dependency_version = 0.0.0-develop splunk_supported = 8.1,8.0 cim_supported = 4.x diff --git a/scripts/set-version.sh b/scripts/set-version.sh index 31f8fdbf..29ef6229 100755 --- a/scripts/set-version.sh +++ b/scripts/set-version.sh @@ -12,7 +12,6 @@ ADDON=Splunk_TA_paloalto # Files where version needs to be bumped APPCONF=default/app.conf -README=README.md APPMANIFEST=app.manifest GLOBALCONFIG=appserver/static/js/build/globalConfig.json @@ -138,16 +137,6 @@ if [ "$WHICHAPP" = "app" ] || [ "$WHICHAPP" = "both" ]; then grep -E '^ta_dependency_version = .+$' "$FILE" >/dev/null sed -i.bak -E "s/ta_dependency_version = .+/ta_dependency_version = ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" - FILE="${WORK}/${APP}/${README}" - - log_debug "Set App ${README} version to ${NEW_VERSION}" - grep -E 'App Version:\*\* .+$' "$FILE" >/dev/null - sed -i.bak -E "s/App Version:\*\* .+/App Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" - - log_debug "Set App ${APP}/${README} add-on required version to ${NEW_VERSION}" - grep -E 'Splunk_TA_paloalto .+$' "$FILE" >/dev/null - sed -i.bak -E "s/Splunk_TA_paloalto .+/Splunk_TA_paloalto ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" - FILE="${WORK}/${APP}/${APPMANIFEST}" log_debug "Set App ${APPMANIFEST} version to ${NEW_VERSION}" @@ -182,12 +171,6 @@ if [ "$WHICHAPP" = "addon" ] || [ "$WHICHAPP" = "both" ]; then grep -E '\"developmentStatus\": .+' "$FILE" >/dev/null sed -i.bak -E "s/developmentStatus\": .+/developmentStatus\": \"${DEVSTATUS}\"/" "$FILE" && rm "${FILE}.bak" - FILE="${WORK}/${ADDON}/${README}" - - log_debug "Set Addon ${README} Version to ${NEW_VERSION}" - grep -E 'Add-on Version:\*\* .+$' "$FILE" >/dev/null - sed -i.bak -E "s/Add-on Version:\*\* .+/Add-on Version:** ${NEW_VERSION}/" "$FILE" && rm "${FILE}.bak" - FILE="${WORK}/${ADDON}/${GLOBALCONFIG}" log_debug "Set Addon GlobalConfig Version to ${NEW_VERSION}" From 915a54e04f9f080dd242b0ff4723efc73cdcdbe8 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Thu, 10 Mar 2022 14:38:20 -0800 Subject: [PATCH 10/17] chore(demo): Fix evengen and optimize build --- demo/Dockerfile | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/demo/Dockerfile b/demo/Dockerfile index 28c037c9..0800f521 100644 --- a/demo/Dockerfile +++ b/demo/Dockerfile @@ -1,14 +1,10 @@ -FROM splunk/splunk:8.1.2-debian +FROM splunk/splunk:8.2.5 LABEL authors "Brian Torres-Gil ,Paul Nguyen " USER root -# Build app and add-on -COPY Splunk_TA_paloalto /tmp/splunk/Splunk_TA_paloalto -COPY SplunkforPaloAltoNetworks /tmp/splunk/SplunkforPaloAltoNetworks -COPY scripts /tmp/splunk/scripts -RUN /tmp/splunk/scripts/build.sh -a app -o SplunkforPaloAltoNetworks.tgz -l -RUN /tmp/splunk/scripts/build.sh -a addon -o Splunk_TA_paloalto.tgz -l +# Install GCC to build eventgen +RUN microdnf install gcc-c++ gcc # Download a stable Eventgen RUN wget -qO /tmp/eventgen.tar.gz https://github.com/splunk/eventgen/archive/7.2.1.tar.gz @@ -32,6 +28,13 @@ ENV SPLUNK_APPS_URL "/tmp/splunk/_build/SplunkforPaloAltoNetworks.tgz,/tmp/splun COPY demo/setup_demo.yml /tmp/setup_demo.yml COPY demo/default.yml /tmp/defaults/default.yml +# Build app and add-on +COPY Splunk_TA_paloalto /tmp/splunk/Splunk_TA_paloalto +COPY SplunkforPaloAltoNetworks /tmp/splunk/SplunkforPaloAltoNetworks +COPY scripts /tmp/splunk/scripts +RUN /tmp/splunk/scripts/build.sh -a app -o SplunkforPaloAltoNetworks.tgz -l +RUN /tmp/splunk/scripts/build.sh -a addon -o Splunk_TA_paloalto.tgz -l + # Ports Splunk Web, Splunk Daemon, KVStore, Splunk Indexing Port, Network Input, HTTP Event Collector EXPOSE 8000/tcp 8089/tcp 8191/tcp 9997/tcp 1514 8088/tcp From ac0280c627ea2ce3e3cddcf3b1a7d9a3f2d39ede Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 30 Mar 2022 10:17:29 -0700 Subject: [PATCH 11/17] demo: Fix eventgen not starting --- demo/setup_demo.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/demo/setup_demo.yml b/demo/setup_demo.yml index 59a95333..4b3209b9 100644 --- a/demo/setup_demo.yml +++ b/demo/setup_demo.yml @@ -20,3 +20,5 @@ dest: /opt/splunk/etc/users/demo/ owner: "{{ splunk.user }}" mode: preserve + notify: + - Restart the splunkd service From cfa606a2412cde9b23b1a399efa3b3cbd5ccaa0c Mon Sep 17 00:00:00 2001 From: Iben Rodriguez Date: Wed, 30 Mar 2022 11:07:16 -0700 Subject: [PATCH 12/17] docs: Fix README getting started link PR #248 --- SplunkforPaloAltoNetworks/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SplunkforPaloAltoNetworks/README.md b/SplunkforPaloAltoNetworks/README.md index 48592bb2..ddd855a7 100644 --- a/SplunkforPaloAltoNetworks/README.md +++ b/SplunkforPaloAltoNetworks/README.md @@ -25,7 +25,7 @@ security resources to focus on critical, time-sensitive investigations. ### Documentation ### -**Installation and Getting Started:** http://splunk.paloaltonetworks.com/getting_started.html +**Installation and Getting Started:** http://splunk.paloaltonetworks.com/ **Release Notes:** http://splunk.paloaltonetworks.com/release-notes.html **Support:** http://splunk.paloaltonetworks.com/support.html @@ -44,4 +44,4 @@ From the directory `$SPLUNK_HOME/etc/apps/`, type the following command: **Pan-Python:** [Github] (https://github.com/kevinsteves/pan-python) **PanDevice:** [Github] (https://github.com/PaloAltoNetworks/pandevice) -Copyright (C) 2012-2020 Palo Alto Networks Inc. All Rights Reserved. \ No newline at end of file +Copyright (C) 2012-2020 Palo Alto Networks Inc. All Rights Reserved. From 7776f633ce98aed434f78d516f8b41b7088aad42 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 30 Mar 2022 11:08:12 -0700 Subject: [PATCH 13/17] docs: Update seq diag in contribution guidelines PR #249 --- CONTRIBUTING.md | 80 +++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0dfb3c1..b9296236 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ - [Bug fixes and features](#bug-fixes-and-features) - [Test changes in your branch](#test-changes-in-your-branch) - [Publish a new release (for maintainers)](#publish-a-new-release-for-maintainers) -- [CI/CD Sequence diagram](#cicd-sequence-diagram) +- [CI/CD Release Process](#cicd-release-process) ## How to contribute @@ -96,10 +96,9 @@ directories and reloads them in Splunk when a change is detected. ## Publish a new release (for maintainers) -Requires node and semantic-release npm package - ``` # Test the release process on develop +# (this requires node and semantic-release npm package) semantic-release --dry-run --no-ci --branches=develop # Verify in the output that the next version is set correctly @@ -113,22 +112,15 @@ git push origin master # At this point, GitHub Actions is testing the release # then building it for publication -# There is a manual step here. You'll have to get the build -# from the GitHub Actions artifacts and publish it on SplunkBase -# manually. We can automate this when the SplunkBase API is more mature. - # Now, sync your local with the remote to pull the new -# commits made by the release bot. -git fetch --all --tags -git pull origin master +# tags created in the release process +git fetch --tags git checkout develop -git merge master -git push origin develop # Now you're ready to branch again and work on the next feature. ``` -## CI/CD Sequence diagram +## CI/CD Release Process ```mermaid sequenceDiagram @@ -136,31 +128,47 @@ sequenceDiagram %% See https://mermaid-js.github.io participant G as GitHub - note right of G: Push to master triggers sequence participant A as GH Actions - participant S as SplunkBase participant I as Splunk AppInspect - participant D as Docker Hub + participant S as SplunkBase + participant C as GH Container Registry participant K as GCP GKE - - G->>+D: Triggers demo build - D->>-D: Build demo docker image - G->>+A: Triggers GitHub Action - A->>A: Build App & Add-on - A->>+I: Trigger AppInspect of App and Add-on - I->>-A: AppInspect completed - A->>+I: Request HTML report - I->>-A: Return HTML report - A->>A: Increment version - A->>G: Commit new version to master - A->>G: Create git tag of version - A->>G: Create GH Release w/ release note - A->>A: Build App & Add-on w/ incremented version - A->>S: Publish - A->>-S: Verify Publish + G-)+A: Push Triggers GitHub Action + + %% AppInspect + rect rgb(153,255,170,.2) + note left of I: AppInspect + A->>+I: Trigger AppInspect of App and Add-on + I-->>-A: AppInspect completed + A->>+I: Request HTML report + I-->>-A: Return HTML report + end + + %% Release + rect rgb(217,179,255,.2) + note left of S: Release + A->>A: Determines new version + A->>G: Create GH Release w/ release note + A->>A: Build App & Add-on w/ incremented version + A->>S: Publish release + A->>S: Verify publish + end + + %% Docker build + rect rgb(128,170,255,.2) + note left of C: Docker build + A->>A: Build docker image + A->>-C: Publish docker image + end - K->>+K: Triggers weekly - K->>D: Pull latest docker demo - K->>-K: Restart Demo -``` \ No newline at end of file + %% Demo server + rect rgb(255,221,153,.2) + note right of C: Demo server + loop weekly + K->>+K: Cloud Scheduler triggers Cloud Function + K->>C: Pull latest docker demo + K->>-K: Restart Demo + end + end +``` From f75c8633957157d8e5dec081cbc32807b79b5334 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 30 Mar 2022 11:11:08 -0700 Subject: [PATCH 14/17] chore(demo): Fix reset script and upgrade deps - Change runtime to py3.9 - Change memory 128MB->256MB - Upgrade dependencies - Update code to leverage new deps - Fix README issue - Fix Makefile issue - Fix .gitignore issue PR #250 --- demo/reset-demo-function/.gitignore | 1 + demo/reset-demo-function/Makefile | 8 +- demo/reset-demo-function/README.md | 6 +- demo/reset-demo-function/config.yml.example | 1 + demo/reset-demo-function/main.py | 39 +- demo/reset-demo-function/poetry.lock | 526 ++++++++++++-------- demo/reset-demo-function/pyproject.toml | 15 +- demo/reset-demo-function/requirements.txt | 46 +- 8 files changed, 392 insertions(+), 250 deletions(-) diff --git a/demo/reset-demo-function/.gitignore b/demo/reset-demo-function/.gitignore index 3999f22d..76b51602 100644 --- a/demo/reset-demo-function/.gitignore +++ b/demo/reset-demo-function/.gitignore @@ -1,5 +1,6 @@ ### Config ### config.yml +.envrc ### IDE ### .vscode/ diff --git a/demo/reset-demo-function/Makefile b/demo/reset-demo-function/Makefile index 41b60c90..ceb5b735 100644 --- a/demo/reset-demo-function/Makefile +++ b/demo/reset-demo-function/Makefile @@ -19,11 +19,11 @@ bandit: bandit main.py format: - isort --recursive --atomic reset_demo.py + isort --atomic main.py black . check-format: - isort --recursive --atomic --check-only reset_demo.py + isort --atomic --check-only main.py black --check . sync-deps: @@ -31,8 +31,8 @@ sync-deps: deploy: gcloud functions deploy reset-demo \ - --runtime python37 \ - --memory 128MB \ + --runtime python39 \ + --memory 256MB \ --trigger-topic reset-demo \ --env-vars-file ./config.yml \ --entry-point reset_demo \ No newline at end of file diff --git a/demo/reset-demo-function/README.md b/demo/reset-demo-function/README.md index d70f4080..51eaa3d5 100644 --- a/demo/reset-demo-function/README.md +++ b/demo/reset-demo-function/README.md @@ -24,7 +24,11 @@ Check for security vulnerabilities: Check code formatting: - $ make bandit + $ make check-format + +Format code: + + $ make format See the help for more usage information: diff --git a/demo/reset-demo-function/config.yml.example b/demo/reset-demo-function/config.yml.example index 8bca53fa..756f79fe 100644 --- a/demo/reset-demo-function/config.yml.example +++ b/demo/reset-demo-function/config.yml.example @@ -1,2 +1,3 @@ +GCP_PROJECT: my-project-id CLUSTER_NAME: cluster-1 DEPLOYMENT_NAME: my-app \ No newline at end of file diff --git a/demo/reset-demo-function/main.py b/demo/reset-demo-function/main.py index 13c39b08..bc4daf8c 100644 --- a/demo/reset-demo-function/main.py +++ b/demo/reset-demo-function/main.py @@ -1,12 +1,23 @@ import base64 import datetime +import logging import os +import sys from tempfile import NamedTemporaryFile import google.auth -import kubernetes +import json_logging +import kubernetes.client from google.cloud import container_v1 +# Set up logging +LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO").upper() +json_logging.init_non_web(enable_json=True) +logger = logging.getLogger(__name__) +logger.setLevel(LOG_LEVEL) +logger.addHandler(logging.StreamHandler(sys.stdout)) + +# Collect env vars GCP_PROJECT = os.environ["GCP_PROJECT"] CLUSTER_NAME = os.environ["CLUSTER_NAME"] DEPLOYMENT_NAME = os.environ["DEPLOYMENT_NAME"] @@ -14,11 +25,20 @@ def reset_demo(event, context): # Authenticate to Google using Application Default credentials - credentials, project = google.auth.default() + credentials, project = google.auth.default( + scopes=[ + "https://www.googleapis.com/auth/cloud-platform", + ] + ) # Fetch all clusters in the project cluster_client = container_v1.ClusterManagerClient(credentials=credentials) - response = cluster_client.list_clusters(GCP_PROJECT, "-") + request = container_v1.ListClustersRequest( + parent=f"projects/{GCP_PROJECT}/locations/-" + ) + response = cluster_client.list_clusters(request=request) + + logger.debug(f"Found {len(response.clusters)} clusters") # Get the cluster with the requested name from the list of clusters cluster = next( @@ -26,12 +46,19 @@ def reset_demo(event, context): ) cluster_ip = cluster.endpoint cluster_cert = cluster.master_auth.cluster_ca_certificate + logger.debug(f"cluster_ip: {cluster_ip}") # Configure authentication for Kubernetes API connection k8s_config = kubernetes.client.Configuration() - k8s_config.api_key["authorization"] = credentials.token # GCP Auth Token - k8s_config.api_key_prefix["authorization"] = "Bearer" k8s_config.host = f"https://{cluster_ip}" + k8s_config.verify_ssl = True + if not credentials.valid: + logger.debug("Credentials not valid, refreshing") + credentials.refresh( + google.auth.transport.requests.Request() + ) # Create GCP Auth Token + credentials.apply(k8s_config.api_key) + # Create a temporary file containing the CA cert to validate Kubernetes # cluster TLS certificate with NamedTemporaryFile(delete=False) as cert: @@ -61,4 +88,4 @@ def reset_demo(event, context): if __name__ == "__main__": - reset_demo() + reset_demo({}, {}) diff --git a/demo/reset-demo-function/poetry.lock b/demo/reset-demo-function/poetry.lock index 03375827..76dde35c 100644 --- a/demo/reset-demo-function/poetry.lock +++ b/demo/reset-demo-function/poetry.lock @@ -1,59 +1,44 @@ -[[package]] -name = "appdirs" -version = "1.4.3" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "attrs" -version = "19.3.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.extras] -azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"] -dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"] -docs = ["sphinx", "zope.interface"] -tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] - [[package]] name = "bandit" -version = "1.6.2" +version = "1.7.4" description = "Security oriented static analyser for python code." category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} GitPython = ">=1.0.1" -PyYAML = ">=3.13" -six = ">=1.10.0" +PyYAML = ">=5.3.1" stevedore = ">=1.20.0" +[package.extras] +test = ["coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml", "beautifulsoup4 (>=4.8.0)", "pylint (==1.9.4)"] +toml = ["toml"] +yaml = ["pyyaml"] + [[package]] name = "black" -version = "19.10b0" +version = "22.3.0" description = "The uncompromising code formatter." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.6.2" [package.dependencies] -appdirs = "*" -attrs = ">=18.1.0" -click = ">=6.5" -pathspec = ">=0.6,<1" -regex = "*" -toml = ">=0.9.4" -typed-ast = ">=1.4.0" +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] -d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "cachetools" @@ -81,11 +66,15 @@ python-versions = "*" [[package]] name = "click" -version = "7.1.1" +version = "8.1.0" description = "Composable command line interface toolkit" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -119,59 +108,63 @@ gitdb = ">=4.0.1,<5" [[package]] name = "google-api-core" -version = "1.19.0" +version = "2.7.1" description = "Google API client core library" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [package.dependencies] -google-auth = ">=1.14.0,<2.0dev" -googleapis-common-protos = ">=1.6.0,<2.0dev" -grpcio = {version = ">=1.8.2,<2.0dev", optional = true, markers = "extra == \"grpc\""} -protobuf = ">=3.4.0" -pytz = "*" +google-auth = ">=1.25.0,<3.0dev" +googleapis-common-protos = ">=1.52.0,<2.0dev" +grpcio = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""} +grpcio-status = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""} +protobuf = ">=3.12.0" requests = ">=2.18.0,<3.0.0dev" -six = ">=1.10.0" [package.extras] -grpc = ["grpcio (>=1.8.2,<2.0dev)"] +grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio-status (>=1.33.2,<2.0dev)"] grpcgcp = ["grpcio-gcp (>=0.2.2)"] grpcio-gcp = ["grpcio-gcp (>=0.2.2)"] [[package]] name = "google-auth" -version = "1.28.0" +version = "2.6.2" description = "Google Authentication Library" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" [package.dependencies] -cachetools = ">=2.0.0,<5.0" +cachetools = ">=2.0.0,<6.0" pyasn1-modules = ">=0.2.1" rsa = {version = ">=3.1.4,<5", markers = "python_version >= \"3.6\""} six = ">=1.9.0" [package.extras] -aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)"] +aiohttp = ["requests (>=2.20.0,<3.0.0dev)", "aiohttp (>=3.6.2,<4.0.0dev)"] pyopenssl = ["pyopenssl (>=20.0.0)"] +reauth = ["pyu2f (>=0.1.5)"] [[package]] name = "google-cloud-container" -version = "0.4.0" +version = "2.10.7" description = "Google Container Engine API client library" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [package.dependencies] -google-api-core = {version = ">=1.14.0,<2.0.0dev", extras = ["grpc"]} +google-api-core = {version = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev", extras = ["grpc"]} grpc-google-iam-v1 = ">=0.12.3,<0.13dev" +proto-plus = ">=1.15.0" + +[package.extras] +libcst = ["libcst (>=0.2.5)"] [[package]] name = "googleapis-common-protos" -version = "1.53.0" +version = "1.56.0" description = "Common protobufs used in Google APIs" category = "main" optional = false @@ -198,15 +191,31 @@ grpcio = ">=1.0.0,<2.0.0dev" [[package]] name = "grpcio" -version = "1.28.1" +version = "1.45.0" description = "HTTP/2-based RPC framework" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] six = ">=1.5.2" +[package.extras] +protobuf = ["grpcio-tools (>=1.45.0)"] + +[[package]] +name = "grpcio-status" +version = "1.45.0" +description = "Status proto mapping for gRPC" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +googleapis-common-protos = ">=1.5.5" +grpcio = ">=1.45.0" +protobuf = ">=3.12.0" + [[package]] name = "idna" version = "2.9" @@ -215,33 +224,58 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "importlib-metadata" +version = "4.11.3" +description = "Read metadata from Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +perf = ["ipython"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] + [[package]] name = "isort" -version = "4.3.21" +version = "5.10.1" description = "A Python utility / library to sort Python imports." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6.1,<4.0" [package.extras] -pipfile = ["pipreqs", "requirementslib"] -pyproject = ["toml"] -requirements = ["pipreqs", "pip-api"] -xdg_home = ["appdirs (>=1.4.0)"] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.3,<0.5.0)"] +plugins = ["setuptools"] + +[[package]] +name = "json-logging" +version = "1.3.0" +description = "JSON Python Logging" +category = "main" +optional = false +python-versions = "*" [[package]] name = "kubernetes" -version = "11.0.0" +version = "23.3.0" description = "Kubernetes python client" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] certifi = ">=14.05.14" google-auth = ">=1.0.1" python-dateutil = ">=2.5.3" -pyyaml = ">=3.12" +pyyaml = ">=5.4.1" requests = "*" requests-oauthlib = "*" six = ">=1.9.0" @@ -251,6 +285,14 @@ websocket-client = ">=0.32.0,<0.40.0 || >0.40.0,<0.41.0 || >=0.43.0" [package.extras] adal = ["adal (>=1.0.2)"] +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "oauthlib" version = "3.1.0" @@ -266,11 +308,11 @@ signedtoken = ["cryptography", "pyjwt (>=1.0.0)"] [[package]] name = "pathspec" -version = "0.7.0" +version = "0.9.0" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [[package]] name = "pbr" @@ -280,6 +322,32 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "platformdirs" +version = "2.5.1" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] + +[[package]] +name = "proto-plus" +version = "1.19.6" +description = "Beautiful, Pythonic protocol buffers." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +protobuf = ">=3.12.0" + +[package.extras] +testing = ["google-api-core[grpc] (>=1.22.2)"] + [[package]] name = "protobuf" version = "3.15.6" @@ -321,14 +389,6 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" -[[package]] -name = "pytz" -version = "2019.3" -description = "World timezone definitions, modern and historical" -category = "main" -optional = false -python-versions = "*" - [[package]] name = "pyyaml" version = "5.4.1" @@ -337,14 +397,6 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -[[package]] -name = "regex" -version = "2020.4.4" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "requests" version = "2.25.1" @@ -418,20 +470,28 @@ pbr = ">=2.0.0,<2.1.0 || >2.1.0" six = ">=1.10.0" [[package]] -name = "toml" -version = "0.10.0" -description = "Python Library for Tom's Obvious, Minimal Language" +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" [[package]] name = "typed-ast" -version = "1.4.1" +version = "1.5.2" description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" + +[[package]] +name = "typing-extensions" +version = "4.1.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "dev" +optional = false +python-versions = ">=3.6" [[package]] name = "urllib3" @@ -457,27 +517,52 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] six = "*" +[[package]] +name = "zipp" +version = "3.7.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] + [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "f4b028598b133e25855073964f858e4c794996f5d09240b7c014cba2bdec7232" +content-hash = "2f42790ef0403702eee2d669156d50c0feced23aae102df5adcc64aadec0f3b2" [metadata.files] -appdirs = [ - {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"}, - {file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"}, -] -attrs = [ - {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, - {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, -] bandit = [ - {file = "bandit-1.6.2-py2.py3-none-any.whl", hash = "sha256:336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952"}, - {file = "bandit-1.6.2.tar.gz", hash = "sha256:41e75315853507aa145d62a78a2a6c5e3240fe14ee7c601459d0df9418196065"}, + {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, + {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, ] black = [ - {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, - {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, + {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, + {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, + {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, + {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, + {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, + {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, + {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, + {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, + {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, + {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, + {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, + {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, + {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, + {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, + {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, + {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, + {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, ] cachetools = [ {file = "cachetools-4.0.0-py3-none-any.whl", hash = "sha256:b304586d357c43221856be51d73387f93e2a961598a9b6b6670664746f3b6c6c"}, @@ -492,8 +577,8 @@ chardet = [ {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, ] click = [ - {file = "click-7.1.1-py2.py3-none-any.whl", hash = "sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a"}, - {file = "click-7.1.1.tar.gz", hash = "sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc"}, + {file = "click-8.1.0-py3-none-any.whl", hash = "sha256:19a4baa64da924c5e0cd889aba8e947f280309f1a2ce0947a3e3a7bcb7cc72d6"}, + {file = "click-8.1.0.tar.gz", hash = "sha256:977c213473c7665d3aa092b41ff12063227751c41d7b17165013e10069cc5cd2"}, ] colorama = [ {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, @@ -508,81 +593,128 @@ gitpython = [ {file = "GitPython-3.1.0.tar.gz", hash = "sha256:e426c3b587bd58c482f0b7fe6145ff4ac7ae6c82673fc656f489719abca6f4cb"}, ] google-api-core = [ - {file = "google-api-core-1.19.0.tar.gz", hash = "sha256:ba1ee414c97ee25ea8e62e6525e14026c3e194aed0493085623b8b8bb03e1060"}, - {file = "google_api_core-1.19.0-py2.py3-none-any.whl", hash = "sha256:0919cd91fef23d85bd27d247bd7bde02bd842f0b85fa3364586a13e7d0f34aff"}, + {file = "google-api-core-2.7.1.tar.gz", hash = "sha256:b0fa577e512f0c8e063386b974718b8614586a798c5894ed34bedf256d9dae24"}, + {file = "google_api_core-2.7.1-py3-none-any.whl", hash = "sha256:6be1fc59e2a7ba9f66808bbc22f976f81e4c3e7ab20fa0620ce42686288787d0"}, ] google-auth = [ - {file = "google-auth-1.28.0.tar.gz", hash = "sha256:9bd436d19ab047001a1340720d2b629eb96dd503258c524921ec2af3ee88a80e"}, - {file = "google_auth-1.28.0-py2.py3-none-any.whl", hash = "sha256:dcaba3aa9d4e0e96fd945bf25a86b6f878fcb05770b67adbeb50a63ca4d28a5e"}, + {file = "google-auth-2.6.2.tar.gz", hash = "sha256:60d449f8142c742db760f4c0be39121bc8d9be855555d784c252deaca1ced3f5"}, + {file = "google_auth-2.6.2-py2.py3-none-any.whl", hash = "sha256:3ba4d63cb29c1e6d5ffcc1c0623c03cf02ede6240a072f213084749574e691ab"}, ] google-cloud-container = [ - {file = "google-cloud-container-0.4.0.tar.gz", hash = "sha256:4da874deac3310df8bd76fa20b991b1aecfc3121e2ec35e8409da31f29e7f21f"}, - {file = "google_cloud_container-0.4.0-py2.py3-none-any.whl", hash = "sha256:ec740f5978e74af393e9adc6e4e3767223585c2d5a3bf8967467cb65daf13c09"}, + {file = "google-cloud-container-2.10.7.tar.gz", hash = "sha256:237a1895d8fdd79181097e552c4651a864bb8cc1d66ac406548be3e741144cae"}, + {file = "google_cloud_container-2.10.7-py2.py3-none-any.whl", hash = "sha256:3d9c88aafed9fe8c4117b3dfcae13378794fd911441d6ff9ed984eb6336593f3"}, ] googleapis-common-protos = [ - {file = "googleapis-common-protos-1.53.0.tar.gz", hash = "sha256:a88ee8903aa0a81f6c3cec2d5cf62d3c8aa67c06439b0496b49048fb1854ebf4"}, - {file = "googleapis_common_protos-1.53.0-py2.py3-none-any.whl", hash = "sha256:f6d561ab8fb16b30020b940e2dd01cd80082f4762fa9f3ee670f4419b4b8dbd0"}, + {file = "googleapis-common-protos-1.56.0.tar.gz", hash = "sha256:4007500795bcfc269d279f0f7d253ae18d6dc1ff5d5a73613ffe452038b1ec5f"}, + {file = "googleapis_common_protos-1.56.0-py2.py3-none-any.whl", hash = "sha256:60220c89b8bd5272159bed4929ecdc1243ae1f73437883a499a44a1cbc084086"}, ] grpc-google-iam-v1 = [ {file = "grpc-google-iam-v1-0.12.3.tar.gz", hash = "sha256:0bfb5b56f648f457021a91c0df0db4934b6e0c300bd0f2de2333383fe958aa72"}, ] grpcio = [ - {file = "grpcio-1.28.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:085bbf7fd0070b8d65e84aa32979f17cfe624d27b5ce23955ef770c19d2d9623"}, - {file = "grpcio-1.28.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:f80d10bdf1a306f7063046321fd4efc7732a606acdd4e6259b8a37349079b704"}, - {file = "grpcio-1.28.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:e9439d7b801c86df13c6cbb4c5a7e181c058f3c119d5e119a94a5f3090a8f060"}, - {file = "grpcio-1.28.1-cp27-cp27m-win32.whl", hash = "sha256:271abbe28eb99fa5c70b3f272c0c66b67dab7bb11e1d29d8e616b4e0e099d29a"}, - {file = "grpcio-1.28.1-cp27-cp27m-win_amd64.whl", hash = "sha256:df749ee982ec35ab76d37a1e637b10a92b4573e2b4e1f86a5fa8a1273c40a850"}, - {file = "grpcio-1.28.1-cp27-cp27mu-linux_armv7l.whl", hash = "sha256:0ef6b380a588c2c6b29c6cfa0ba7f5d367beb33d5504bcc68658fa241ad498d2"}, - {file = "grpcio-1.28.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:c6565cc92853af13237b2233f331efdad07339d27fe1f5f74256bfde7dc2f587"}, - {file = "grpcio-1.28.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:97b5612fc5d4bbf0490a2d80bed5eab5b59112ef1640440c1a9ac824bafa6968"}, - {file = "grpcio-1.28.1-cp35-cp35m-linux_armv7l.whl", hash = "sha256:4bef0756b9e0df78e8d67a5b1e0e89b7daf41525d575f74e1f14a993c55b680d"}, - {file = "grpcio-1.28.1-cp35-cp35m-macosx_10_7_intel.whl", hash = "sha256:0c130204ff5de0b9f041bf3126db0d29369d69883592e4b0d3c19868ba0ced7e"}, - {file = "grpcio-1.28.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:70ff2df0c1795c5cf585a72d95bb458838b40bad5653c314b9067ba819e918f9"}, - {file = "grpcio-1.28.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a35f8f4a0334ed8b05db90383aecef8e49923ab430689a4360a74052f3a89cf4"}, - {file = "grpcio-1.28.1-cp35-cp35m-win32.whl", hash = "sha256:f83b0c91796eb42865451a20e82246011078ba067ea0744f7301e12a94ae2e1b"}, - {file = "grpcio-1.28.1-cp35-cp35m-win_amd64.whl", hash = "sha256:c2e53eb253840f05278a8410628419ba7060815f86d48c9d83b6047de21c9956"}, - {file = "grpcio-1.28.1-cp36-cp36m-linux_armv7l.whl", hash = "sha256:16f5523dacae5aaeda4cf900da7e980747f663298c38c18eb4e5317704aa007a"}, - {file = "grpcio-1.28.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3c7864d5ae63b787001b01b376f6315aef1a015aa9c809535235ed0ead907919"}, - {file = "grpcio-1.28.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:c3645887db3309fc87c3db740b977d403fb265ebab292f1f6a926c4661231fd5"}, - {file = "grpcio-1.28.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:16e1edb367763ea08d0994d4635ec05f4f8db9db59c39304b061097e3b93df43"}, - {file = "grpcio-1.28.1-cp36-cp36m-win32.whl", hash = "sha256:5c2e81b6ab9768c43f2ca1c9a4c925823aad79ae95efb351007df4b92ebce592"}, - {file = "grpcio-1.28.1-cp36-cp36m-win_amd64.whl", hash = "sha256:245564713cb4ac7bccb0f11be63781beb62299a44d8ab69031c859dbd9461728"}, - {file = "grpcio-1.28.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f493ac4754717f25ace3614a51dd408a32b8bff3c9c0c85e9356e7e0a120a8c8"}, - {file = "grpcio-1.28.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:3366bd6412c1e73acb1ee27d7f0c7d7dbee118ad8d98c957c8173691b2effeec"}, - {file = "grpcio-1.28.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:4fe081862e58b8fbef0e479aefc9a64f8f17f53074df1085d8c1fe825a6e5df4"}, - {file = "grpcio-1.28.1-cp37-cp37m-win32.whl", hash = "sha256:3893b39a0a17d857dc3a42fdb02a26aa53a59bfce49987187bcc0261647f1f55"}, - {file = "grpcio-1.28.1-cp37-cp37m-win_amd64.whl", hash = "sha256:2e1b01cba26988c811c7fb91a0bca19c9afb776cc3d228993f08d324bdd0510a"}, - {file = "grpcio-1.28.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:181b5078cf568f37915b8a118afcef5fc9f3128c59c38998ed93e7dd793e3928"}, - {file = "grpcio-1.28.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:aafe85a8210dfa1da3c46831b7f00c3735240b7b028eeba339eaea6ffdb593fb"}, - {file = "grpcio-1.28.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:42c6716adf3ec1f608b2b56e885f26dd86e80d2fc1617f51fc92d1b0b649e28e"}, - {file = "grpcio-1.28.1-cp38-cp38-win32.whl", hash = "sha256:505a8d1b4ac571a51f10c4c995d5d4714f03c886604dc3c097ef5fd57bcfcf0b"}, - {file = "grpcio-1.28.1-cp38-cp38-win_amd64.whl", hash = "sha256:0ae207a47ec0ad66eb1f53a27d566674d13a236c62ced409891335318ea9b8c5"}, - {file = "grpcio-1.28.1.tar.gz", hash = "sha256:cbc322c5d5615e67c2a15be631f64e6c2bab8c12505bc7c150948abdaa0bdbac"}, + {file = "grpcio-1.45.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:0d74a159df9401747e57960f0772f4371486e3281919004efa9df8a82985abee"}, + {file = "grpcio-1.45.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:4e6d15bfdfa28e5f6d524dd3b29c7dc129cfc578505b067aa97574490c5b70fe"}, + {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:44615be86e5540a18f5e4ca5a0f428d4b1efb800d255cfd9f902a11daca8fd74"}, + {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b452f715e2cae9e75cb309f59a37f82e5b25f51f0bfc3cd1462de86265cef05"}, + {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db1c45daa35c64f17498af1ba6eb1d0a8d88a8a0b6b322f960ab461e7ef0419e"}, + {file = "grpcio-1.45.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:678a673fe811dad3ed5bd2e2352b79851236e4d718aeaeffc10f372a55954d8d"}, + {file = "grpcio-1.45.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5c8a08aff0af770c977dcede62fbed53ae7b99adbc184d5299d148bb04652f1"}, + {file = "grpcio-1.45.0-cp310-cp310-win32.whl", hash = "sha256:1d764c8a190719301ec6f3b6ddeb48a234604e337d0fbb3184a4ddcda2aca9da"}, + {file = "grpcio-1.45.0-cp310-cp310-win_amd64.whl", hash = "sha256:797f5b750be6ff2905b9d0529a00c1f873d8035a5d01a9801910ace5f0d52a18"}, + {file = "grpcio-1.45.0-cp36-cp36m-linux_armv7l.whl", hash = "sha256:b46772b7eb58c6cb0b468b56d59618694d2c2f2cee2e5b4e83ae9729a46b8af0"}, + {file = "grpcio-1.45.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:2f135e5c8e9acd14f3090fd86dccb9d7c26aea7bfbd4528e8a86ff621d39e610"}, + {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:16603b9544a4af135ce4d594a7396602fbe62d1ccaa484b05cb1814c17a3e559"}, + {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ccba925045c00acc9ce2cc645b6fa9d19767dbb16c9c49921013da412b1d3415"}, + {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_aarch64.whl", hash = "sha256:7262b9d96db79e29049c7eb2b75b03f2b9485fd838209b5ff8e3cca73b2a706c"}, + {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1c1098f35c33b985c312cacea39e2aa66f7ac1462579eed1d3aed2e51fff00d"}, + {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b18c86a9cfbedd0c4e083690fecc82027b3f938100ed0af8db77d52a171eb1e"}, + {file = "grpcio-1.45.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:638364d3603df9e4a1dbc2151b5fe1b491ceecda4e1672be86724e1dfa79c44d"}, + {file = "grpcio-1.45.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8de79eac582431cb6d05ff5652e68089c40aa0e604ec1630fa52ac926bc44f1b"}, + {file = "grpcio-1.45.0-cp36-cp36m-win32.whl", hash = "sha256:6cf5f1827c182ef9b503d7d01e503c1067f4499d45af792d95ccd1d8b0bea30d"}, + {file = "grpcio-1.45.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f1a22744f93b38d393b7a83cb607029ac5e2de680cab39957ffdd116590a178"}, + {file = "grpcio-1.45.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:321f84dbc788481f7a3cd12636a133ba5f4d17e57f1c906de5a22fd709c971b5"}, + {file = "grpcio-1.45.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:a33ed7d3e52ddc839e2f020592a4371d805c2ae820fb63b12525058e1810fe46"}, + {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f9f28d8c5343602e1510d4839e38568bcd0ca6353bd98ad9941787584a371a1d"}, + {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3a40dbb8aac60cf6a86583e2ba74fc2c286f1abc7a3404b25dcd12a49b9f7d8b"}, + {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:b00ce58323dde47d2ea240d10ee745471b9966429c97d9e6567c8d56e02b0372"}, + {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4944f35f1e5ab54804c3e37d24921ecc01908ef871cdce6bd52995ea4f985c"}, + {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc135b77f384a84bac67a37947886986be136356446338d64160a30c85f20c6d"}, + {file = "grpcio-1.45.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:35ae55460514ed404ceaa95533b9a79989691b562faf012fc8fb143d8fd16e47"}, + {file = "grpcio-1.45.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:779db3d00c8da1d3efa942387cb0fea9ac6d50124d656024f82f9faefdd016e3"}, + {file = "grpcio-1.45.0-cp37-cp37m-win32.whl", hash = "sha256:aea67bd3cbf93db552c725bc0b4db0acdc6a284d036d1cc32d638305e0f01fd9"}, + {file = "grpcio-1.45.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7fe3ac700cc5ecba9dc9072c0e6cfd2f964ea9f273ce1111eaa27d13aa20ec32"}, + {file = "grpcio-1.45.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:259c126821fefcda298c020a0d83c4a4edac3cf10b1af12a62d250f8192ea1d1"}, + {file = "grpcio-1.45.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:5d05cd1b2b0975bb000ba97ca465565158dc211616c9bbbef5d1b77871974687"}, + {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6f2e044a715507fd13c70c928cd90daf8d0295c936a81fd9065a24e58ba7cc7d"}, + {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4d37c526b86c46d229f6117df5dca2510de597ab73c5956bc379ca41f8a1db84"}, + {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:6df338b8d2c328ba91a25e28786d10059dea3bc9115fa1ddad30ba5d459e714a"}, + {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:042921a824e90bf2974dbef7d89937096181298294799fb53e5576d9958884c7"}, + {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb23ed6ed84ae312df03e96c7a7cd3aa5f7e3a1ad7066fdb6cd47f1bd334196c"}, + {file = "grpcio-1.45.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:79582ec821ef10162348170a6e912d93ea257c749320a162dfc3a132ef25ac1b"}, + {file = "grpcio-1.45.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14d372ea5a51d5ab991aa6d499a26e5a1e3b3f3af93f41826ea610f8a276c9e"}, + {file = "grpcio-1.45.0-cp38-cp38-win32.whl", hash = "sha256:b54444cf4212935a7b98cd26a30ad3a036389e4fd2ff3e461b176af876c7e20b"}, + {file = "grpcio-1.45.0-cp38-cp38-win_amd64.whl", hash = "sha256:da395720d6e9599c754f862f3f75bc0e8ff29fa55259e082e442a9cc916ffbc3"}, + {file = "grpcio-1.45.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:add03308fa2d434628aeaa445e0c75cdb9535f39128eb949b1483ae83fafade6"}, + {file = "grpcio-1.45.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:250d8f18332f3dbd4db00efa91d33d336e58362e9c80e6946d45ecf5e82d95ec"}, + {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dfca4dfd307b449d0a1e92bc7fbb5224ccf16db384aab412ba6766fc56bdffb6"}, + {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b7f2dc8831045eb0c892bb947e1cba2b1ed639e79a54abff7c4ad90bdd329f78"}, + {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:2355493a9e71f15d9004b2ab87892cb532e9e98db6882fced2912115eb5631af"}, + {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2798e42d62a0296982276d0bab96fc7d6772cd148357154348355304d6216763"}, + {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fe6acb1439127e0bee773f8a9a3ece290cb4cac4fe8d46b10bc8dda250a990c"}, + {file = "grpcio-1.45.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6774272a59b9ee16fb0d4f53e23716953a22bbb3efe12fdf9a4ee3eec2c4f81f"}, + {file = "grpcio-1.45.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52f61fcb17d92b87ba47d54b3c9deae09d4f0216a3ea277b7df4b6c1794e6556"}, + {file = "grpcio-1.45.0-cp39-cp39-win32.whl", hash = "sha256:3992c690228126e5652c7a1f61863c1ebfd71369cf2adb0fce86fee1d82d2d27"}, + {file = "grpcio-1.45.0-cp39-cp39-win_amd64.whl", hash = "sha256:220867a53e53b2e201e98c55061e3053e31c0ce613625087242be684d3e8612a"}, + {file = "grpcio-1.45.0.tar.gz", hash = "sha256:ff2c8b965b0fc25cf281961aa46619c10900543effe3f806ef818231c40aaff3"}, +] +grpcio-status = [ + {file = "grpcio-status-1.45.0.tar.gz", hash = "sha256:4baad8e8ec3c44788e038c24e3d7dc70259e06ba09f40a5b8178538563ba3e5a"}, + {file = "grpcio_status-1.45.0-py3-none-any.whl", hash = "sha256:e21fa1d960f36c790fe6aa648e482442ecfb5c536fc50670b7c43320381377a9"}, ] idna = [ {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, ] +importlib-metadata = [ + {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"}, + {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"}, +] isort = [ - {file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"}, - {file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"}, + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +json-logging = [ + {file = "json-logging-1.3.0.tar.gz", hash = "sha256:60a02a1daa168a08aa0a41eeeda63e92500ab08170491bdd326cf00d17f656f8"}, + {file = "json_logging-1.3.0-py2.py3-none-any.whl", hash = "sha256:5def627a18b9e61690d58016ee5312681b407e3106c80a4be7c787abb8a21355"}, ] kubernetes = [ - {file = "kubernetes-11.0.0-py3-none-any.whl", hash = "sha256:4af81201520977139a143f96123fb789fa351879df37f122916b9b6ed050bbaf"}, - {file = "kubernetes-11.0.0.tar.gz", hash = "sha256:1a2472f8b01bc6aa87e3a34781f859bded5a5c8ff791a53d889a8bd6cc550430"}, + {file = "kubernetes-23.3.0-py2.py3-none-any.whl", hash = "sha256:223ff8f0ece5bc20fb65545f09a2308c5e1e9c0be83ae68504c1b1c6baa38f5b"}, + {file = "kubernetes-23.3.0.tar.gz", hash = "sha256:05c98e4bd92f7091fa0fa58f594490e712c9151144d5f458235663a8909e342a"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] oauthlib = [ {file = "oauthlib-3.1.0-py2.py3-none-any.whl", hash = "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea"}, {file = "oauthlib-3.1.0.tar.gz", hash = "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889"}, ] pathspec = [ - {file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"}, - {file = "pathspec-0.7.0.tar.gz", hash = "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"}, + {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, + {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, ] pbr = [ {file = "pbr-5.4.4-py2.py3-none-any.whl", hash = "sha256:61aa52a0f18b71c5cc58232d2cf8f8d09cd67fcad60b742a60124cb8d6951488"}, {file = "pbr-5.4.4.tar.gz", hash = "sha256:139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b"}, ] +platformdirs = [ + {file = "platformdirs-2.5.1-py3-none-any.whl", hash = "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"}, + {file = "platformdirs-2.5.1.tar.gz", hash = "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d"}, +] +proto-plus = [ + {file = "proto-plus-1.19.6.tar.gz", hash = "sha256:16faf434c79caa569e9e9c5d9ecdb9430a91d69b26a3b9fe761e124dcb9bfc21"}, + {file = "proto_plus-1.19.6-py3-none-any.whl", hash = "sha256:4445815a550e61bf071a46be900cb4c53491c915c11fba5eb93a20c4998f8aab"}, +] protobuf = [ {file = "protobuf-3.15.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1771ef20e88759c4d81db213e89b7a1fc53937968e12af6603c658ee4bcbfa38"}, {file = "protobuf-3.15.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1a66261a402d05c8ad8c1fde8631837307bf8d7e7740a4f3941fc3277c2e1528"}, @@ -639,10 +771,6 @@ python-dateutil = [ {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, ] -pytz = [ - {file = "pytz-2019.3-py2.py3-none-any.whl", hash = "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d"}, - {file = "pytz-2019.3.tar.gz", hash = "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"}, -] pyyaml = [ {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, @@ -674,29 +802,6 @@ pyyaml = [ {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] -regex = [ - {file = "regex-2020.4.4-cp27-cp27m-win32.whl", hash = "sha256:90742c6ff121a9c5b261b9b215cb476eea97df98ea82037ec8ac95d1be7a034f"}, - {file = "regex-2020.4.4-cp27-cp27m-win_amd64.whl", hash = "sha256:24f4f4062eb16c5bbfff6a22312e8eab92c2c99c51a02e39b4eae54ce8255cd1"}, - {file = "regex-2020.4.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:08119f707f0ebf2da60d2f24c2f39ca616277bb67ef6c92b72cbf90cbe3a556b"}, - {file = "regex-2020.4.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c9423a150d3a4fc0f3f2aae897a59919acd293f4cb397429b120a5fcd96ea3db"}, - {file = "regex-2020.4.4-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:c087bff162158536387c53647411db09b6ee3f9603c334c90943e97b1052a156"}, - {file = "regex-2020.4.4-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:1cbe0fa0b7f673400eb29e9ef41d4f53638f65f9a2143854de6b1ce2899185c3"}, - {file = "regex-2020.4.4-cp36-cp36m-win32.whl", hash = "sha256:0ce9537396d8f556bcfc317c65b6a0705320701e5ce511f05fc04421ba05b8a8"}, - {file = "regex-2020.4.4-cp36-cp36m-win_amd64.whl", hash = "sha256:7e1037073b1b7053ee74c3c6c0ada80f3501ec29d5f46e42669378eae6d4405a"}, - {file = "regex-2020.4.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4385f12aa289d79419fede43f979e372f527892ac44a541b5446617e4406c468"}, - {file = "regex-2020.4.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a58dd45cb865be0ce1d5ecc4cfc85cd8c6867bea66733623e54bd95131f473b6"}, - {file = "regex-2020.4.4-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:ccccdd84912875e34c5ad2d06e1989d890d43af6c2242c6fcfa51556997af6cd"}, - {file = "regex-2020.4.4-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:ea4adf02d23b437684cd388d557bf76e3afa72f7fed5bbc013482cc00c816948"}, - {file = "regex-2020.4.4-cp37-cp37m-win32.whl", hash = "sha256:2294f8b70e058a2553cd009df003a20802ef75b3c629506be20687df0908177e"}, - {file = "regex-2020.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:e91ba11da11cf770f389e47c3f5c30473e6d85e06d7fd9dcba0017d2867aab4a"}, - {file = "regex-2020.4.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5635cd1ed0a12b4c42cce18a8d2fb53ff13ff537f09de5fd791e97de27b6400e"}, - {file = "regex-2020.4.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:23069d9c07e115537f37270d1d5faea3e0bdded8279081c4d4d607a2ad393683"}, - {file = "regex-2020.4.4-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c162a21e0da33eb3d31a3ac17a51db5e634fc347f650d271f0305d96601dc15b"}, - {file = "regex-2020.4.4-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:fb95debbd1a824b2c4376932f2216cc186912e389bdb0e27147778cf6acb3f89"}, - {file = "regex-2020.4.4-cp38-cp38-win32.whl", hash = "sha256:2a3bf8b48f8e37c3a40bb3f854bf0121c194e69a650b209628d951190b862de3"}, - {file = "regex-2020.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:5bfed051dbff32fd8945eccca70f5e22b55e4148d2a8a45141a3b053d6455ae3"}, - {file = "regex-2020.4.4.tar.gz", hash = "sha256:295badf61a51add2d428a46b8580309c520d8b26e769868b922750cf3ce67142"}, -] requests = [ {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, @@ -722,42 +827,39 @@ stevedore = [ {file = "stevedore-1.32.0-py2.py3-none-any.whl", hash = "sha256:a4e7dc759fb0f2e3e2f7d8ffe2358c19d45b9b8297f393ef1256858d82f69c9b"}, {file = "stevedore-1.32.0.tar.gz", hash = "sha256:18afaf1d623af5950cc0f7e75e70f917784c73b652a34a12d90b309451b5500b"}, ] -toml = [ - {file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"}, - {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, - {file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"}, +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] typed-ast = [ - {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"}, - {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb"}, - {file = "typed_ast-1.4.1-cp35-cp35m-win32.whl", hash = "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919"}, - {file = "typed_ast-1.4.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01"}, - {file = "typed_ast-1.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75"}, - {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652"}, - {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"}, - {file = "typed_ast-1.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f"}, - {file = "typed_ast-1.4.1-cp36-cp36m-win32.whl", hash = "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1"}, - {file = "typed_ast-1.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa"}, - {file = "typed_ast-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614"}, - {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41"}, - {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b"}, - {file = "typed_ast-1.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298"}, - {file = "typed_ast-1.4.1-cp37-cp37m-win32.whl", hash = "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe"}, - {file = "typed_ast-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355"}, - {file = "typed_ast-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6"}, - {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907"}, - {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d"}, - {file = "typed_ast-1.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d"}, - {file = "typed_ast-1.4.1-cp38-cp38-win32.whl", hash = "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c"}, - {file = "typed_ast-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4"}, - {file = "typed_ast-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34"}, - {file = "typed_ast-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c"}, - {file = "typed_ast-1.4.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072"}, - {file = "typed_ast-1.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91"}, - {file = "typed_ast-1.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d"}, - {file = "typed_ast-1.4.1-cp39-cp39-win32.whl", hash = "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395"}, - {file = "typed_ast-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c"}, - {file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"}, + {file = "typed_ast-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:183b183b7771a508395d2cbffd6db67d6ad52958a5fdc99f450d954003900266"}, + {file = "typed_ast-1.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:676d051b1da67a852c0447621fdd11c4e104827417bf216092ec3e286f7da596"}, + {file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc2542e83ac8399752bc16e0b35e038bdb659ba237f4222616b4e83fb9654985"}, + {file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74cac86cc586db8dfda0ce65d8bcd2bf17b58668dfcc3652762f3ef0e6677e76"}, + {file = "typed_ast-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:18fe320f354d6f9ad3147859b6e16649a0781425268c4dde596093177660e71a"}, + {file = "typed_ast-1.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:31d8c6b2df19a777bc8826770b872a45a1f30cfefcfd729491baa5237faae837"}, + {file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:963a0ccc9a4188524e6e6d39b12c9ca24cc2d45a71cfdd04a26d883c922b4b78"}, + {file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0eb77764ea470f14fcbb89d51bc6bbf5e7623446ac4ed06cbd9ca9495b62e36e"}, + {file = "typed_ast-1.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:294a6903a4d087db805a7656989f613371915fc45c8cc0ddc5c5a0a8ad9bea4d"}, + {file = "typed_ast-1.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:26a432dc219c6b6f38be20a958cbe1abffcc5492821d7e27f08606ef99e0dffd"}, + {file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7407cfcad702f0b6c0e0f3e7ab876cd1d2c13b14ce770e412c0c4b9728a0f88"}, + {file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f30ddd110634c2d7534b2d4e0e22967e88366b0d356b24de87419cc4410c41b7"}, + {file = "typed_ast-1.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8c08d6625bb258179b6e512f55ad20f9dfef019bbfbe3095247401e053a3ea30"}, + {file = "typed_ast-1.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90904d889ab8e81a956f2c0935a523cc4e077c7847a836abee832f868d5c26a4"}, + {file = "typed_ast-1.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bbebc31bf11762b63bf61aaae232becb41c5bf6b3461b80a4df7e791fabb3aca"}, + {file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29dd9a3a9d259c9fa19d19738d021632d673f6ed9b35a739f48e5f807f264fb"}, + {file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:58ae097a325e9bb7a684572d20eb3e1809802c5c9ec7108e85da1eb6c1a3331b"}, + {file = "typed_ast-1.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:da0a98d458010bf4fe535f2d1e367a2e2060e105978873c04c04212fb20543f7"}, + {file = "typed_ast-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33b4a19ddc9fc551ebabca9765d54d04600c4a50eda13893dadf67ed81d9a098"}, + {file = "typed_ast-1.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1098df9a0592dd4c8c0ccfc2e98931278a6c6c53cb3a3e2cf7e9ee3b06153344"}, + {file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c47c3b43fe3a39ddf8de1d40dbbfca60ac8530a36c9b198ea5b9efac75c09e"}, + {file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f290617f74a610849bd8f5514e34ae3d09eafd521dceaa6cf68b3f4414266d4e"}, + {file = "typed_ast-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:df05aa5b241e2e8045f5f4367a9f6187b09c4cdf8578bb219861c4e27c443db5"}, + {file = "typed_ast-1.5.2.tar.gz", hash = "sha256:525a2d4088e70a9f75b08b3f87a51acc9cde640e19cc523c7e41aa355564ae27"}, +] +typing-extensions = [ + {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, + {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, ] urllib3 = [ {file = "urllib3-1.26.5-py2.py3-none-any.whl", hash = "sha256:753a0374df26658f99d826cfe40394a686d05985786d946fbe4165b5148f5a7c"}, @@ -767,3 +869,7 @@ websocket-client = [ {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"}, {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"}, ] +zipp = [ + {file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"}, + {file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"}, +] diff --git a/demo/reset-demo-function/pyproject.toml b/demo/reset-demo-function/pyproject.toml index 7a174a3f..8be7c58a 100644 --- a/demo/reset-demo-function/pyproject.toml +++ b/demo/reset-demo-function/pyproject.toml @@ -1,20 +1,21 @@ [tool.poetry] name = "reset_demo_function" -version = "0.1.1" +version = "0.1.2" description = "Cloud Function to reset the PANW Splunk demo" authors = ["Brian Torres-Gil "] license = "ISC" [tool.poetry.dependencies] python = "^3.7" -google-auth = "^1.13.1" -google-cloud-container = "^0.4.0" -kubernetes = "^11.0.0" +google-auth = "^2.6.2" +google-cloud-container = "^2.10.7" +kubernetes = "^23.3.0" +json-logging = "^1.3.0" [tool.poetry.dev-dependencies] -black = "^19.10b0" -isort = "^4.3.21" -bandit = "^1.6.2" +black = "^22.3.0" +isort = "^5.10.1" +bandit = "^1.7.4" [build-system] requires = ["poetry>=0.12"] diff --git a/demo/reset-demo-function/requirements.txt b/demo/reset-demo-function/requirements.txt index c9460003..95c4b34a 100644 --- a/demo/reset-demo-function/requirements.txt +++ b/demo/reset-demo-function/requirements.txt @@ -1,24 +1,26 @@ -cachetools==4.0.0; python_version >= "3.5" and python_version < "4.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") -certifi==2020.4.5; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" -chardet==3.0.4; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" -google-api-core==1.19.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -google-auth==1.28.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") -google-cloud-container==0.4.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") -googleapis-common-protos==1.53.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -grpc-google-iam-v1==0.12.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -grpcio==1.28.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -idna==2.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" -kubernetes==11.0.0 -oauthlib==3.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -protobuf==3.15.6; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -pyasn1-modules==0.2.8; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" +cachetools==4.0.0; python_version >= "3.5" and python_version < "4.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +certifi==2020.4.5; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +chardet==3.0.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +google-api-core==2.7.1; python_version >= "3.6" +google-auth==2.6.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") +google-cloud-container==2.10.7; python_version >= "3.6" +googleapis-common-protos==1.56.0; python_version >= "3.6" +grpc-google-iam-v1==0.12.3; python_version >= "3.6" +grpcio-status==1.45.0; python_version >= "3.6" +grpcio==1.45.0; python_version >= "3.6" +idna==2.9; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +json-logging==1.3.0 +kubernetes==23.3.0; python_version >= "3.6" +oauthlib==3.1.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +proto-plus==1.19.6; python_version >= "3.6" +protobuf==3.15.6; python_version >= "3.6" +pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" pyasn1==0.4.8; python_version >= "3.5" and python_full_version < "3.0.0" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") or python_version >= "3.5" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version >= "3.6.0" -python-dateutil==2.8.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" -pytz==2019.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -pyyaml==5.4.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -requests-oauthlib==1.3.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -requests==2.23.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" +python-dateutil==2.8.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" +pyyaml==5.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" +requests-oauthlib==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +requests==2.25.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" rsa==4.7.2; python_version >= "3.5" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") -six==1.14.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -urllib3==1.25.8; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" -websocket-client==0.57.0; python_version >= "2.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" +six==1.14.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" +urllib3==1.26.5; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.6" +websocket-client==0.57.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" From 715eebbc1592227132dfad0e106ab28c97f07ea2 Mon Sep 17 00:00:00 2001 From: Brian Torres-Gil Date: Wed, 30 Mar 2022 11:15:45 -0700 Subject: [PATCH 15/17] docs(app/addon): Fix links in app/addon README files --- Splunk_TA_paloalto/README.md | 18 ++++-------------- Splunk_TA_paloalto/README.txt | 1 - SplunkforPaloAltoNetworks/README.md | 18 ++++-------------- 3 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 Splunk_TA_paloalto/README.txt diff --git a/Splunk_TA_paloalto/README.md b/Splunk_TA_paloalto/README.md index 506e7d0f..01ced8fc 100644 --- a/Splunk_TA_paloalto/README.md +++ b/Splunk_TA_paloalto/README.md @@ -23,23 +23,13 @@ Documentation for this add-on is located at: http://splunk.paloaltonetworks.com/ ### Documentation ### -**Installation and Getting Started:** http://splunk.paloaltonetworks.com/getting_started.html -**Release Notes:** http://splunk.paloaltonetworks.com/release-notes.html -**Support:** http://splunk.paloaltonetworks.com/support.html +**Installation and Getting Started:** https://splunk.paloaltonetworks.com +**Release Notes:** https://github.com/PaloAltoNetworks/Splunk-Apps/releases +**Support:** https://splunk.paloaltonetworks.com/support.html -### Install from Git ### - -This app is available on [Splunkbase](http://splunkbase.splunk.com/app/2757) -and [Github](https://github.com/PaloAltoNetworks/Splunk_TA_paloalto). -Optionally, you can clone the github repository to install the app. - -From the directory `$SPLUNK_HOME/etc/apps/`, type the following command: - - git clone https://github.com/PaloAltoNetworks/Splunk_TA_paloalto.git Splunk_TA_paloalto - ### Libraries Included ### **Pan-Python:** [Github] (https://github.com/kevinsteves/pan-python) **PanDevice:** [Github] (https://github.com/PaloAltoNetworks/pandevice) -Copyright (C) 2014-2020 Palo Alto Networks Inc. All Rights Reserved. \ No newline at end of file +Copyright (C) 2014-2022 Palo Alto Networks Inc. All Rights Reserved. \ No newline at end of file diff --git a/Splunk_TA_paloalto/README.txt b/Splunk_TA_paloalto/README.txt deleted file mode 100644 index a81c062c..00000000 --- a/Splunk_TA_paloalto/README.txt +++ /dev/null @@ -1 +0,0 @@ -This is an add-on powered by the Splunk Add-on Builder. diff --git a/SplunkforPaloAltoNetworks/README.md b/SplunkforPaloAltoNetworks/README.md index ddd855a7..dd4c2294 100644 --- a/SplunkforPaloAltoNetworks/README.md +++ b/SplunkforPaloAltoNetworks/README.md @@ -25,23 +25,13 @@ security resources to focus on critical, time-sensitive investigations. ### Documentation ### -**Installation and Getting Started:** http://splunk.paloaltonetworks.com/ -**Release Notes:** http://splunk.paloaltonetworks.com/release-notes.html -**Support:** http://splunk.paloaltonetworks.com/support.html +**Installation and Getting Started:** https://splunk.paloaltonetworks.com/ +**Release Notes:** https://github.com/PaloAltoNetworks/Splunk-Apps/releases +**Support:** https://splunk.paloaltonetworks.com/support.html -### Install from Git ### - -This app is available on [Splunkbase](http://splunkbase.splunk.com/app/491) -and [Github](https://github.com/PaloAltoNetworks/SplunkforPaloAltoNetworks). -Optionally, you can clone the github repository to install the app. - -From the directory `$SPLUNK_HOME/etc/apps/`, type the following command: - - git clone https://github.com/PaloAltoNetworks/SplunkforPaloAltoNetworks.git SplunkforPaloAltoNetworks - ### Libraries Included ### **Pan-Python:** [Github] (https://github.com/kevinsteves/pan-python) **PanDevice:** [Github] (https://github.com/PaloAltoNetworks/pandevice) -Copyright (C) 2012-2020 Palo Alto Networks Inc. All Rights Reserved. +Copyright (C) 2012-2022 Palo Alto Networks Inc. All Rights Reserved. From 92f83af95f1baa14d9aed68f95a44d48f557b7b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sigr=C3=A9?= Date: Thu, 31 Mar 2022 05:18:57 +1100 Subject: [PATCH 16/17] fix(app): Add missing `summariesonly` to web_activity.xml PR #240 --- .../default/data/ui/views/web_activity.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SplunkforPaloAltoNetworks/default/data/ui/views/web_activity.xml b/SplunkforPaloAltoNetworks/default/data/ui/views/web_activity.xml index fc4eb388..c16c1a98 100644 --- a/SplunkforPaloAltoNetworks/default/data/ui/views/web_activity.xml +++ b/SplunkforPaloAltoNetworks/default/data/ui/views/web_activity.xml @@ -1,7 +1,7 @@
- | tstats values(log.flags) AS log.flags, count FROM datamodel=pan_firewall WHERE nodename="log.url" $serial$ $vsys$ $src_ip$ $dest_name$ "$user|s$" $app$ $content$ $category$ $action$ GROUPBY _time log.dest_name log.app:category log.app log.action log.content_type log.vendor_action | rename log.* AS * + | tstats summariesonly=t values(log.flags) AS log.flags, count FROM datamodel=pan_firewall WHERE nodename="log.url" $serial$ $vsys$ $src_ip$ $dest_name$ "$user|s$" $app$ $content$ $category$ $action$ GROUPBY _time log.dest_name log.app:category log.app log.action log.content_type log.vendor_action | rename log.* AS * $time.earliest$ $time.latest$ @@ -307,7 +307,7 @@ file_name=$row.file_name|s$&earliest=$time.earliest$&latest=$time.latest Decrypted Traffic - | tstats values(log.flags) AS log.flags, values(log.user) AS log.user, count FROM datamodel=pan_firewall WHERE nodename="log.url" GROUPBY _time log.src_ip log.dest_name log.category log.app log.action log.content_type log.vendor_action | rename log.* AS * | search flags="decrypted" | table _time src_ip user dest_name category app flags count + | tstats summariesonly=t values(log.flags) AS log.flags, values(log.user) AS log.user, count FROM datamodel=pan_firewall WHERE nodename="log.url" GROUPBY _time log.src_ip log.dest_name log.category log.app log.action log.content_type log.vendor_action | rename log.* AS * | search flags="decrypted" | table _time src_ip user dest_name category app flags count -60m now 1 From 5cc9ea7fa20a7fe5a226e49edc9304de8879e87a Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Wed, 30 Mar 2022 13:24:50 -0500 Subject: [PATCH 17/17] fix(app): Fix `string_typing 'tuple' not callable` error when pulling threats from PAN-OS PR #235 --- SplunkforPaloAltoNetworks/bin/panContentPack.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SplunkforPaloAltoNetworks/bin/panContentPack.py b/SplunkforPaloAltoNetworks/bin/panContentPack.py index a3a20772..9c021ad3 100644 --- a/SplunkforPaloAltoNetworks/bin/panContentPack.py +++ b/SplunkforPaloAltoNetworks/bin/panContentPack.py @@ -166,7 +166,8 @@ def parse_threats(threats_xml): raise e # convert all out of unicode for key in a: - a[key] = string_types(a[key]) + logger.debug(key + ': ' + a[key]) + a[key] = str(a[key]) csv_threats.append(a) logger.info("Found %s threats" % len(csv_threats)) return csv_threats