我正在考虑编写一个unix shell脚本来列出Cloud Foundry中与之关联的orgs和space。但是有问题,因为我们可以在定位之后列出与组织关联的空间。
我不能使用以下方法一次定位2个Orgs: 对于我在Org1 Org2;做cf target -o $ i;完成
因此,如果我将所有组织放在文本文件中并且像这样:
for cat Orgs.txt
;做cf space $ i;完成了
请提出您的意见。谢谢!
答案 0 :(得分:4)
cf org
命令将显示有关组织的信息,包括空格,因此无需单独定位每个组织:
$ cf target
API endpoint: https://api.local.pcfdev.io
API version: 2.65.0
User: admin
No org or space targeted, use 'cf target -o ORG -s SPACE'
$ cf org pcfdev-org
Getting info for org pcfdev-org as admin...
OK
pcfdev-org:
domains: local.pcfdev.io, tcp.local.pcfdev.io
quota: default (102400M memory limit, unlimited instance memory limit, 100 routes, -1 services, paid services allowed, unlimited app instance limit, unlimited route ports)
spaces: pcfdev-space
space quotas:
我认为你可以简单地遍历orgs列表,获取每个orgs的空格,然后做一些字符串替换,在空格列表前面加上适当的组织名称:
$ for org in $( cf orgs | tail +4 ); do \
cf org "$org" | grep spaces | sed "s/spaces/$org/"; \
done
demos: spring-cloud, services, chaos-engineering
pcfdev-org: pcfdev-space
system: system
我查看了CF CLI plugins列表,但我没有发现任何提供的信息比您提出的更多信息。我能找到的最近的是Usage Report plugin。
答案 1 :(得分:0)
除了Clayton发表的精彩答案外,您还可以使用cf curl
。
例如:cf curl /v2/spaces | jq .resources[].entity.name
这将直接查询空间API,并确保您是否针对组织。它将显示当前用户可见的所有空间。您可以选择使用q
属性对此进行更多过滤。更多关于文档的内容。
http://apidocs.cloudfoundry.org/253/spaces/list_all_spaces.html
jq位是可选的,但只过滤掉空格名称。
最后注意,结果是分页的,因此如果您有超过50个,则需要运行多个请求或增加results-per-page
值。