2017-04-19 64 views
1

我正在考慮編寫一個unix shell腳本來列出Cloud Foundry中與其關聯的組織和空間。但是有問題,因爲我們只能在與目標關聯後才能列出與組織相關的空間。需要列出Cloud Foundry中的組織和空間

我無法一次使用2個Orgs組織: 對於我在Org1 Org2;做cf目標-o $ i;做

因此,如果我把所有的機構單位在一個文本文件,像這樣:

因爲我在cat Orgs.txt;做cf空格$我;完成

請建議您的意見。謝謝!

回答

2

cf org命令將顯示有關的組織,包括空間信息,所以這是不必要的定位的每個單獨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: 

我想你可以簡單地遍歷機構單位名單,讓每個空間,並做一些字符串替換用適當的組織名稱前面加上空格名單:

$ 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名單看​​,但我沒有發現任何不W提供比你問的更多的信息。最近我能很快找到的是Usage Report plugin

+0

非常感謝您的建議! – duraja

0

除了克萊頓出版的正確答案,您可以使用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的值。

+0

非常感謝您的建議! – duraja