#!/usr/bin/env bash # vim:ts=4:sts=4:sw=4:et # # Author: Hari Sekhon # Date: 2020-08-13 19:38:39 +0100 (Thu, 13 Aug 2020) # # https://github.com/HariSekhon/DevOps-Bash-tools # # License: see accompanying Hari Sekhon LICENSE file # # If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish # # https://www.linkedin.com/in/HariSekhon # set -euo pipefail [ -n "${DEBUG:-}" ] && set -x srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck disable=SC1090,SC1091 . "$srcdir/lib/utils.sh" # shellcheck disable=SC1090,SC1091 . "$srcdir/lib/gcp.sh" # shellcheck disable=SC2034,SC2154 usage_description=" Lists GCP Big Data resources deployed in the current GCP Project Lists in this order: - Dataproc clusters (all regions) - Dataproc jobs (all regions) - Dataflow jobs (all regions) - PubSub topics - Cloud IOT registries (all regions) Environment variables of regions to shortcut scanning all regions, comma or space separated: GCE_REGIONS - for Dataproc clusters and jobs IOT_REGIONS - for Cloud IOT registries Can optionally specify a project id using the first argument, otherwise uses currently configured project $gcp_info_formatting_help " # used by usage() in lib/utils.sh # shellcheck disable=SC2034 usage_args="[]" help_usage "$@" check_bin gcloud if [ $# -gt 0 ]; then project_id="$1" shift || : export CLOUDSDK_CORE_PROJECT="$project_id" fi # shellcheck disable=SC1090,SC1091 type is_service_enabled &>/dev/null || . "$srcdir/gcp_service_apis.sh" >/dev/null # Dataproc clusters cat <&1 | sed 's/.*{//; s/}//; s/,/ /g' || :)}" iot_regions="${iot_regions//,/ }" if is_service_enabled cloudiot.googleapis.com; then for region in $iot_regions; do gcp_info "Cloud IOT registries: $region" gcloud iot registries list --region="$region" done else echo "Cloud IOT API ( cloudiot.googleapis.com) is not enabled, skipping..." fi