需要在Cloud Foundry中列出组织和空间

时间:2017-04-19 06:14:49

标签: shell unix cloud cloudfoundry

我正在考虑编写一个unix shell脚本来列出Cloud Foundry中与之关联的orgs和space。但是有问题,因为我们可以在定位之后列出与组织关联的空间。

我不能使用以下方法一次定位2个Orgs: 对于我在Org1 Org2;做cf target -o $ i;完成

因此,如果我将所有组织放在文本文件中并且像这样:

for cat Orgs.txt;做cf space $ i;完成了

请提出您的意见。谢谢!

2 个答案:

答案 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值。