From 55094be4c27f6ea7842f2fda20d57f7ac1430502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Thu, 20 Dec 2018 20:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0cloudaccount=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/cloudaccounts.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/cloudaccounts.go b/pkg/compute/models/cloudaccounts.go index b879a96343..44d60cde38 100644 --- a/pkg/compute/models/cloudaccounts.go +++ b/pkg/compute/models/cloudaccounts.go @@ -527,7 +527,21 @@ func (manager *SCloudaccountManager) FetchCloudaccountByIdOrName(accountId strin } func (self *SCloudaccount) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSONDict { - extra.Add(jsonutils.Marshal(self.GetCloudproviders()), "accounts") + providers := self.GetCloudproviders() + extra.Add(jsonutils.Marshal(providers), "accounts") + projectIds := []string{} + for i := 0; i < len(providers); i++ { + if len(providers[i].ProjectId) > 0 && !utils.IsInStringArray(providers[i].ProjectId, projectIds) { + projectIds = append(projectIds, providers[i].ProjectId) + } + } + projects := jsonutils.NewArray() + for _, projectId := range projectIds { + if proj, _ := db.TenantCacheManager.FetchTenantById(context.Background(), projectId); proj != nil { + projects.Add(jsonutils.Marshal(map[string]string{"tenant_id": projectId, "telnet": proj.Name})) + } + } + extra.Add(projects, "projects") return extra }