mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 10:46:58 +08:00
fix: 1. image header details should skip "properties" field 2.
cloudprovider details nil pointer panic
This commit is contained in:
@@ -73,6 +73,12 @@ type SCloudproviderUsage struct {
|
||||
// 负载均衡器数量
|
||||
// example: 2
|
||||
LoadbalancerCount int `json:"loadbalancer_count"`
|
||||
// 数据库实例数量
|
||||
// example: 2
|
||||
DBInstanceCount int `json:"dbinstance_count"`
|
||||
// 弹性缓存实例数量
|
||||
// example: 2
|
||||
ElasticcacheCount int `json:"elasticcache_count"`
|
||||
// 项目数量
|
||||
ProjectCount int `json:"project_count"`
|
||||
// 同步区域数量
|
||||
|
||||
@@ -263,7 +263,25 @@ func (self *SCloudprovider) getSnapshotCount() (int, error) {
|
||||
}
|
||||
|
||||
func (self *SCloudprovider) getLoadbalancerCount() (int, error) {
|
||||
return LoadbalancerManager.Query().Equals("manager_id", self.Id).CountWithError()
|
||||
vpcs := VpcManager.Query("id", "manager_id").SubQuery()
|
||||
q := LoadbalancerManager.Query()
|
||||
q = q.Join(vpcs, sqlchemy.Equals(q.Field("vpc_id"), vpcs.Field("id")))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("manager_id"), self.Id))
|
||||
return q.CountWithError()
|
||||
}
|
||||
|
||||
func (self *SCloudprovider) getDBInstanceCount() (int, error) {
|
||||
q := DBInstanceManager.Query()
|
||||
q = q.Filter(sqlchemy.Equals(q.Field("manager_id"), self.Id))
|
||||
return q.CountWithError()
|
||||
}
|
||||
|
||||
func (self *SCloudprovider) getElasticcacheCount() (int, error) {
|
||||
vpcs := VpcManager.Query("id", "manager_id").SubQuery()
|
||||
q := ElasticcacheManager.Query()
|
||||
q = q.Join(vpcs, sqlchemy.Equals(q.Field("vpc_id"), vpcs.Field("id")))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("manager_id"), self.Id))
|
||||
return q.CountWithError()
|
||||
}
|
||||
|
||||
func (self *SCloudprovider) getExternalProjectCount() (int, error) {
|
||||
@@ -805,6 +823,8 @@ func (self *SCloudprovider) getUsage() api.SCloudproviderUsage {
|
||||
usage.EipCount, _ = self.getEipCount()
|
||||
usage.SnapshotCount, _ = self.getSnapshotCount()
|
||||
usage.LoadbalancerCount, _ = self.getLoadbalancerCount()
|
||||
usage.DBInstanceCount, _ = self.getDBInstanceCount()
|
||||
usage.ElasticcacheCount, _ = self.getElasticcacheCount()
|
||||
usage.ProjectCount, _ = self.getExternalProjectCount()
|
||||
usage.SyncRegionCount, _ = self.getSyncRegionCount()
|
||||
|
||||
|
||||
@@ -312,6 +312,9 @@ func (self *SImage) GetExtraDetailsHeaders(ctx context.Context, userCred mcclien
|
||||
details := ImageManager.FetchCustomizeColumns(ctx, userCred, query, []interface{}{self}, nil, false)
|
||||
extra := jsonutils.Marshal(details[0]).(*jsonutils.JSONDict)
|
||||
for _, k := range extra.SortedKeys() {
|
||||
if k == "properties" {
|
||||
continue
|
||||
}
|
||||
val, _ := extra.GetString(k)
|
||||
if len(val) > 0 {
|
||||
headers[fmt.Sprintf("%s%s", modules.IMAGE_META, k)] = val
|
||||
|
||||
Reference in New Issue
Block a user