network/wire/vpc增加zone/region信息

This commit is contained in:
Qiu Jian
2018-09-15 10:48:28 +08:00
parent 8c2250517f
commit 876fadd6a8
4 changed files with 104 additions and 5 deletions
-3
View File
@@ -150,9 +150,6 @@ func fetchIVMinfo(desc SAliyunVMCreateConfig, iVM cloudprovider.ICloudVM, guestI
}
data.Add(jsonutils.NewString("root"), "account")
data.Add(jsonutils.NewString(encpasswd), "key")
} else {
data.Add(jsonutils.NewString(""), "account")
data.Add(jsonutils.NewString(""), "key")
}
if len(desc.OsDistribution) > 0 {
+52
View File
@@ -734,6 +734,30 @@ func isExitNetworkInfo(netConfig *SNetworkConfig) bool {
return false
}
func (self *SNetwork) getZone() *SZone {
wire := self.GetWire()
if wire != nil {
return wire.GetZone()
}
return nil
}
func (self *SNetwork) getVpc() *SVpc {
wire := self.GetWire()
if wire != nil {
return wire.getVpc()
}
return nil
}
func (self *SNetwork) getRegion() *SCloudregion {
wire := self.GetWire()
if wire != nil {
return wire.getRegion()
}
return nil
}
func (self *SNetwork) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSONDict {
wire := self.GetWire()
extra.Add(jsonutils.NewString(wire.Name), "wire")
@@ -747,6 +771,34 @@ func (self *SNetwork) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSOND
extra.Add(jsonutils.NewInt(int64(self.GetBaremetalNicsCount())), "bm_vnics")
extra.Add(jsonutils.NewInt(int64(self.GetGroupNicsCount())), "group_vnics")
extra.Add(jsonutils.NewInt(int64(self.GetReservedNicsCount())), "reserve_vnics")
zone := self.getZone()
if zone != nil {
extra.Add(jsonutils.NewString(zone.GetId()), "zone_id")
extra.Add(jsonutils.NewString(zone.GetName()), "zone")
if len(zone.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(zone.GetExternalId()), "zone_external_id")
}
}
region := self.getRegion()
if region != nil {
extra.Add(jsonutils.NewString(region.GetId()), "region_id")
extra.Add(jsonutils.NewString(region.GetName()), "region")
if len(region.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(region.GetExternalId()), "region_external_id")
}
}
vpc := self.getVpc()
if vpc != nil {
extra.Add(jsonutils.NewString(vpc.GetId()), "vpc_id")
extra.Add(jsonutils.NewString(vpc.GetName()), "vpc")
if len(vpc.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(vpc.GetExternalId()), "vpc_external_id")
}
}
return extra
}
+6 -1
View File
@@ -124,7 +124,12 @@ func (self *SVpc) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSONDict
extra.Add(jsonutils.NewInt(int64(self.GetWireCount())), "wire_count")
extra.Add(jsonutils.NewInt(int64(self.GetNetworkCount())), "network_count")
region := self.GetRegion()
extra.Add(jsonutils.NewString(region.GetName()), "region")
if region != nil {
extra.Add(jsonutils.NewString(region.GetName()), "region")
if len(region.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(region.GetExternalId()), "region_external_id")
}
}
return extra
}
+46 -1
View File
@@ -38,7 +38,7 @@ type SWire struct {
VpcId string `wdith:"36" charset:"ascii" nullable:"false" list:"admin" create:"admin_required"`
}
func (manager *SWireManager) GetContextManager() []db.IModelManager {
func (manager *SWireManager) GetGContextManager() []db.IModelManager {
return []db.IModelManager{ZoneManager, VpcManager}
}
@@ -561,3 +561,48 @@ func (manager *SWireManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
return q, err
}
func (self *SWire) getRegion() *SCloudregion {
zone := self.GetZone()
if zone != nil {
return zone.GetRegion()
}
return nil
}
func (self *SWire) GetCustomizeColumns(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) *jsonutils.JSONDict {
extra := self.SStandaloneResourceBase.GetCustomizeColumns(ctx, userCred, query)
return self.getMoreDetails(extra)
}
func (self *SWire) GetExtraDetails(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) *jsonutils.JSONDict {
extra := self.SStandaloneResourceBase.GetExtraDetails(ctx, userCred, query)
return self.getMoreDetails(extra)
}
func (self *SWire) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSONDict {
extra.Add(jsonutils.NewInt(int64(self.NetworkCount())), "networks")
zone := self.GetZone()
if zone != nil {
extra.Add(jsonutils.NewString(zone.GetName()), "zone")
if len(zone.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(zone.GetExternalId()), "zone_external_id")
}
}
region := self.getRegion()
if region != nil {
extra.Add(jsonutils.NewString(region.GetId()), "region_id")
extra.Add(jsonutils.NewString(region.GetName()), "region")
if len(region.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(region.GetExternalId()), "region_external_id")
}
}
vpc := self.getVpc()
if vpc != nil {
extra.Add(jsonutils.NewString(vpc.GetName()), "vpc")
if len(vpc.GetExternalId()) > 0 {
extra.Add(jsonutils.NewString(vpc.GetExternalId()), "vpc_external_id")
}
}
return extra
}