Cloud foundry PCF:如何找到您拥有开发人员特权的所有空间的列表

Cloud foundry PCF:如何找到您拥有开发人员特权的所有空间的列表,cloud-foundry,pivotal-web-services,Cloud Foundry,Pivotal Web Services,如果您不是Pivotal Cloud Foundry的管理员,您将如何查找或列出您拥有开发人员特权的所有组织/空间?是否有一个命令或菜单来获取它,而不是进入每个空间并验证它?这里有一个脚本,它将转储当前登录用户所属的组织和空间名称 快速的解释。它将调用/v2/spacesapi,该api已进行筛选,仅显示当前登录用户可以看到的空间(如果您使用具有管理员访问权限的用户运行,它将列出所有组织和空间)。然后,我们对结果进行迭代&获取空间的organization\u url字段和cf curl以获得组

如果您不是Pivotal Cloud Foundry的管理员,您将如何查找或列出您拥有开发人员特权的所有组织/空间?是否有一个命令或菜单来获取它,而不是进入每个空间并验证它?

这里有一个脚本,它将转储当前登录用户所属的组织和空间名称

快速的解释。它将调用
/v2/spaces
api,该api已进行筛选,仅显示当前登录用户可以看到的空间(如果您使用具有管理员访问权限的用户运行,它将列出所有组织和空间)。然后,我们对结果进行迭代&获取空间的
organization\u url
字段和
cf curl
以获得组织名称(有一个hashmap来缓存结果)

此脚本需要bash4+来支持hashmap。如果你没有,你可以删除该部分,它只会稍微慢一点。它也是,当然还有cf cli

希望有帮助

#!/usr/bin/env bash
#
# List all spaces available to the current user
#
set -e

function load_all_pages {
    URL="$1"
    DATA=""
    until [ "$URL" == "null" ]; do
        RESP=$(cf curl "$URL")
        DATA+=$(echo "$RESP" | jq .resources)
        URL=$(echo "$RESP" | jq -r .next_url)
    done
    # dump the data
    echo "$DATA" | jq .[] | jq -s
}

function load_all_spaces {
    load_all_pages "/v2/spaces"
}

function main {
    declare -A ORGS  # cache org name lookups

    # load all the spaces & properly paginate
    SPACES=$(load_all_spaces)

    # filter out the name & org_url
    SPACES_DATA=$(echo "$SPACES" | jq -rc '.[].entity | {"name": .name, "org_url": .organization_url}')

    printf "Org\tSpace\n"
    for SPACE_JSON in $SPACES_DATA; do
        SPACE_NAME=$(echo "$SPACE_JSON" | jq -r '.name')
        # take the org_url and look up the org name, cache responses for speed
        ORG_URL=$(echo "$SPACE_JSON" | jq -r '.org_url')
        ORG_NAME="${ORGS[$ORG_URL]}"
        if [ "$ORG_NAME" == "" ]; then
            ORG_NAME=$(cf curl "$ORG_URL" | jq -r '.entity.name')
            ORGS[$ORG_URL]="$ORG_NAME"
        fi
        printf "$ORG_NAME\t$SPACE_NAME\n"
    done
}

main "$@"