mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): refactor huawei api for support organization (#19067)
This commit is contained in:
@@ -590,6 +590,9 @@ func (drv *SManagedVirtualizedGuestDriver) RemoteDeployGuestForCreate(ctx contex
|
||||
if err == nil || !options.Options.EnableAutoSwitchServerSku {
|
||||
return iVM, err
|
||||
}
|
||||
if errors.Cause(err) != cloudprovider.ErrInvalidSku {
|
||||
return iVM, err
|
||||
}
|
||||
skus, e := models.ServerSkuManager.GetSkus(host.GetProviderName(), guest.VcpuCount, guest.VmemSize)
|
||||
if e != nil {
|
||||
return iVM, errors.Wrapf(e, "GetSkus")
|
||||
|
||||
@@ -102,7 +102,7 @@ type SElasticcache struct {
|
||||
CapacityMB int `nullable:"false" list:"user" create:"optional" json:"capacity_mb"`
|
||||
|
||||
// 对应Sku
|
||||
LocalCategory string `width:"16" charset:"ascii" nullable:"false" list:"user" create:"optional" json:"local_category"`
|
||||
LocalCategory string `width:"16" charset:"ascii" nullable:"true" list:"user" create:"optional" json:"local_category"`
|
||||
|
||||
// 类型
|
||||
// single(单副本) | double(双副本) | readone (单可读) | readthree (3可读) | readfive(5只读)
|
||||
@@ -212,22 +212,23 @@ func (manager *SElasticcacheManager) FetchCustomizeColumns(
|
||||
virtRows := manager.SVirtualResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
|
||||
manRows := manager.SManagedResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
|
||||
regRows := manager.SCloudregionResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
|
||||
vpcRows := manager.SVpcResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
|
||||
zoneRows := manager.SZoneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
|
||||
|
||||
netIds := make([]string, len(objs))
|
||||
cacheIds := make([]string, len(objs))
|
||||
vpcIds := make([]string, len(objs))
|
||||
zoneIds := []string{}
|
||||
for i := range rows {
|
||||
rows[i] = api.ElasticcacheDetails{
|
||||
VirtualResourceDetails: virtRows[i],
|
||||
VpcResourceInfo: vpcRows[i],
|
||||
ZoneResourceInfoBase: zoneRows[i].ZoneResourceInfoBase,
|
||||
}
|
||||
rows[i].ManagedResourceInfo = manRows[i]
|
||||
rows[i].CloudregionResourceInfo = regRows[i]
|
||||
netIds[i] = objs[i].(*SElasticcache).NetworkId
|
||||
cacheIds[i] = objs[i].(*SElasticcache).Id
|
||||
cache := objs[i].(*SElasticcache)
|
||||
netIds[i] = cache.NetworkId
|
||||
cacheIds[i] = cache.Id
|
||||
vpcIds[i] = cache.VpcId
|
||||
|
||||
sz := strings.Split(objs[i].(*SElasticcache).SlaveZones, ",")
|
||||
for j := range sz {
|
||||
@@ -237,8 +238,15 @@ func (manager *SElasticcacheManager) FetchCustomizeColumns(
|
||||
}
|
||||
}
|
||||
|
||||
vpcs := make(map[string]SVpc)
|
||||
err := db.FetchStandaloneObjectsByIds(VpcManager, vpcIds, vpcs)
|
||||
if err != nil {
|
||||
log.Errorf("FetchStandaloneObjectsByIds fail %s", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
networks := make(map[string]SNetwork)
|
||||
err := db.FetchStandaloneObjectsByIds(NetworkManager, netIds, &networks)
|
||||
err = db.FetchStandaloneObjectsByIds(NetworkManager, netIds, &networks)
|
||||
if err != nil {
|
||||
log.Errorf("FetchStandaloneObjectsByIds fail %s", err)
|
||||
return rows
|
||||
@@ -248,6 +256,11 @@ func (manager *SElasticcacheManager) FetchCustomizeColumns(
|
||||
if net, ok := networks[netIds[i]]; ok {
|
||||
rows[i].Network = net.Name
|
||||
}
|
||||
if vpc, ok := vpcs[vpcIds[i]]; ok {
|
||||
rows[i].Vpc = vpc.Name
|
||||
rows[i].VpcExtId = vpc.ExternalId
|
||||
rows[i].IsDefaultVpc = vpc.IsDefault
|
||||
}
|
||||
}
|
||||
|
||||
if len(fields) == 0 || fields.Contains("secgroups") || fields.Contains("secgroup") {
|
||||
|
||||
@@ -354,11 +354,15 @@ func (self *SVpcPeeringConnection) syncRemove(ctx context.Context, userCred mccl
|
||||
return self.RealDelete(ctx, userCred)
|
||||
}
|
||||
|
||||
func (self *SVpcPeeringConnection) SyncWithCloudPeerConnection(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudVpcPeeringConnection, provider *SCloudprovider) error {
|
||||
func (self *SVpcPeeringConnection) SyncWithCloudPeerConnection(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudVpcPeeringConnection) error {
|
||||
vpc, err := self.GetVpc()
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "GetVpc")
|
||||
}
|
||||
provider := vpc.GetCloudprovider()
|
||||
if provider == nil {
|
||||
return errors.Wrapf(cloudprovider.ErrNotFound, "cloudprovider for vpc %s", vpc.Name)
|
||||
}
|
||||
_, err = db.Update(self, func() error {
|
||||
self.Status = ext.GetStatus()
|
||||
self.ExternalId = ext.GetGlobalId()
|
||||
|
||||
@@ -1742,7 +1742,7 @@ func (svpc *SVpc) SyncVpcPeeringConnections(
|
||||
|
||||
if !xor {
|
||||
for i := 0; i < len(commondb); i += 1 {
|
||||
err = commondb[i].SyncWithCloudPeerConnection(ctx, userCred, commonext[i], provider)
|
||||
err = commondb[i].SyncWithCloudPeerConnection(ctx, userCred, commonext[i])
|
||||
if err != nil {
|
||||
result.UpdateError(err)
|
||||
continue
|
||||
|
||||
@@ -90,7 +90,7 @@ func (self *VpcPeeringConnectionCreateTask) OnInit(ctx context.Context, obj db.I
|
||||
}
|
||||
|
||||
iPeerConnection.Refresh()
|
||||
err = peer.SyncWithCloudPeerConnection(ctx, self.GetUserCred(), iPeerConnection, nil)
|
||||
err = peer.SyncWithCloudPeerConnection(ctx, self.GetUserCred(), iPeerConnection)
|
||||
if err != nil {
|
||||
self.taskFailed(ctx, peer, errors.Wrapf(err, "SyncWithCloudPeerConnection"))
|
||||
return
|
||||
|
||||
@@ -69,7 +69,7 @@ func (self *VpcPeeringConnectionSyncstatusTask) OnInit(ctx context.Context, obj
|
||||
return
|
||||
}
|
||||
|
||||
err = peer.SyncWithCloudPeerConnection(ctx, self.UserCred, ipeer, nil)
|
||||
err = peer.SyncWithCloudPeerConnection(ctx, self.UserCred, ipeer)
|
||||
if err != nil {
|
||||
self.taskFail(ctx, peer, errors.Wrapf(err, "SyncWithCloudPeerConnection(ctx, self.UserCred, %s, nil)", jsonutils.Marshal(ipeer).String()))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user