PCF:如何找到您拥有开发者权限的所有空间的列表
PCF: How to find the list of all the spaces where you have Developer privileges
如果您不是 Pivotal Cloud Foundry 的管理员,您将如何查找或列出您拥有开发者权限的所有 orgs/spaces?有没有命令或菜单来获取它,而不是进入每个 space 并验证它?
这是一个脚本,它将转储当前登录用户所属的组织和 space 名称。
快速解释。它将调用 /v2/spaces
api,它已经过滤为仅显示当前登录用户可以看到的 space(如果您 运行 与具有管理员权限的用户访问,它将列出所有组织和 spaces)。然后我们遍历结果并获取 space 的 organization_url
字段和 cf curl
以获取组织名称(有一个 hashmap 来缓存结果)。
此脚本需要 Bash 4+ 才能支持哈希图。如果你没有那个,你可以删除那个部分,它只会慢一点。它还requires jq
,当然还有cf cli。
希望对您有所帮助!
#!/usr/bin/env bash
#
# List all spaces available to the current user
#
set -e
function load_all_pages {
URL=""
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 "$@"
如果您不是 Pivotal Cloud Foundry 的管理员,您将如何查找或列出您拥有开发者权限的所有 orgs/spaces?有没有命令或菜单来获取它,而不是进入每个 space 并验证它?
这是一个脚本,它将转储当前登录用户所属的组织和 space 名称。
快速解释。它将调用 /v2/spaces
api,它已经过滤为仅显示当前登录用户可以看到的 space(如果您 运行 与具有管理员权限的用户访问,它将列出所有组织和 spaces)。然后我们遍历结果并获取 space 的 organization_url
字段和 cf curl
以获取组织名称(有一个 hashmap 来缓存结果)。
此脚本需要 Bash 4+ 才能支持哈希图。如果你没有那个,你可以删除那个部分,它只会慢一点。它还requires jq
,当然还有cf cli。
希望对您有所帮助!
#!/usr/bin/env bash
#
# List all spaces available to the current user
#
set -e
function load_all_pages {
URL=""
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 "$@"