From 27a9fab7cb074b2c78b3181cd5ee428b4a2d93ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Fri, 12 Jan 2024 15:53:29 +0800 Subject: [PATCH] fix(region): huawei disk refresh (#19238) --- go.mod | 2 +- go.sum | 4 ++-- pkg/compute/guestdrivers/managedvirtual.go | 4 ++++ pkg/webconsole/session/resolve_sshinfo.go | 2 +- vendor/modules.txt | 2 +- .../huawei/elasticcache_instance.go | 3 ++- .../pkg/multicloud/huawei/instance.go | 2 ++ .../cloudmux/pkg/multicloud/qcloud/monitor.go | 20 +++++++++---------- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index f167a47c59..ba2d5b04dc 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( k8s.io/client-go v0.19.3 k8s.io/cluster-bootstrap v0.19.3 moul.io/http2curl/v2 v2.3.0 - yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240111122145-cb7fc83612a1 + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240112065144-a608acb9c8fc yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19 yunion.io/x/log v1.0.1-0.20230411060016-feb3f46ab361 diff --git a/go.sum b/go.sum index 37c3cd9a41..d2a4d8911a 100644 --- a/go.sum +++ b/go.sum @@ -1201,8 +1201,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240111122145-cb7fc83612a1 h1:owTUaCPLsoqJJpiqmWGEi942k1BOIbz2lg5QBfgbgHQ= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240111122145-cb7fc83612a1/go.mod h1:aj1gR9PPb6eqqKOwvANe26CoZFY8ydmXy0fuvgKYXH0= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240112065144-a608acb9c8fc h1:0BoVUB6SY4X1Y81wS64NSvrtFcZ2bFjDVQQmRaGxzY8= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240112065144-a608acb9c8fc/go.mod h1:aj1gR9PPb6eqqKOwvANe26CoZFY8ydmXy0fuvgKYXH0= yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug= yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= diff --git a/pkg/compute/guestdrivers/managedvirtual.go b/pkg/compute/guestdrivers/managedvirtual.go index 8499e5c070..49323559cb 100644 --- a/pkg/compute/guestdrivers/managedvirtual.go +++ b/pkg/compute/guestdrivers/managedvirtual.go @@ -681,6 +681,10 @@ func (drv *SManagedVirtualizedGuestDriver) RemoteDeployGuestForCreate(ctx contex if ret >= expect { // 有可能自定义镜像里面也有磁盘,会导致返回的磁盘多于创建时的磁盘 return true, nil } + err = iVM.Refresh() + if err != nil { + log.Warningf("refresh vm %s error: %v", guest.Name, err) + } return false, nil }, 10) if err != nil { diff --git a/pkg/webconsole/session/resolve_sshinfo.go b/pkg/webconsole/session/resolve_sshinfo.go index 81a0c7082d..542cf0533e 100644 --- a/pkg/webconsole/session/resolve_sshinfo.go +++ b/pkg/webconsole/session/resolve_sshinfo.go @@ -75,7 +75,7 @@ func resolveServerIPPortById(ctx context.Context, s *mcclient.ClientSession, id if err != nil { return "", 0, nil, errors.Wrap(err, "Unmarshal guest network info") } - if len(ip) > 0 && ip != gn.EipAddr && ip != gn.IpAddr && ip != gn.Ip6Addr { + if len(ip) > 0 && ip != gn.EipAddr && ip != gn.IpAddr && ip != gn.Ip6Addr && ip != guestDetails.Eip { return "", 0, nil, errors.Wrapf(httperrors.ErrInputParameter, "ip %s not match with server", ip) } guestNicDetails = &gn diff --git a/vendor/modules.txt b/vendor/modules.txt index 1407735d70..57d9ddd528 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1465,7 +1465,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240111122145-cb7fc83612a1 +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240112065144-a608acb9c8fc ## explicit; go 1.18 yunion.io/x/cloudmux/pkg/apis yunion.io/x/cloudmux/pkg/apis/billing diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/elasticcache_instance.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/elasticcache_instance.go index 8f1fdda06f..c0b643bd48 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/elasticcache_instance.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/elasticcache_instance.go @@ -419,7 +419,8 @@ func (self *SRegion) CreateElasticcache(opts *cloudprovider.SCloudElasticCacheIn "vpc_id": opts.VpcId, "subnet_id": opts.NetworkId, "product_id": opts.InstanceType, - "zone_codes": opts.ZoneIds, + "spec_code": opts.InstanceType, + "az_codes": opts.ZoneIds, "no_password_access": true, "enable_publicip": false, } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/instance.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/instance.go index 75fcafd4d6..70855dcd92 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/instance.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/instance.go @@ -241,6 +241,8 @@ func (self *SInstance) Refresh() error { if err != nil { return err } + self.OSExtendedVolumesVolumesAttached = nil + self.SecurityGroups = nil return jsonutils.Update(self, vm) } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/monitor.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/monitor.go index 08d3526e93..53e4094727 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/monitor.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/monitor.go @@ -201,35 +201,35 @@ func (self *SQcloudClient) GetRedisMetrics(opts *cloudprovider.MetricListOptions ret := []cloudprovider.MetricValues{} for metricType, metricNames := range map[cloudprovider.TMetricType]map[string]string{ cloudprovider.REDIS_METRIC_TYPE_CPU_USAGE: { - "CpuUsMin": "", + "CpuUtil": "", }, cloudprovider.REDIS_METRIC_TYPE_MEM_USAGE: { - "StorageUsMin": "", + "MemUtil": "", }, cloudprovider.REDIS_METRIC_TYPE_NET_BPS_RX: { - "InFlowMin": "", + "InFlow": "", }, cloudprovider.REDIS_METRIC_TYPE_NET_BPS_TX: { - "OutFlowMin": "", + "OutFlow": "", }, cloudprovider.REDIS_METRIC_TYPE_USED_CONN: { - "ConnectionsMin": "", + "Connections": "", }, cloudprovider.REDIS_METRIC_TYPE_OPT_SES: { - "QpsMin": "", + "Commands": "", }, cloudprovider.REDIS_METRIC_TYPE_CACHE_KEYS: { - "KeysMin": "", + "Keys": "", }, cloudprovider.REDIS_METRIC_TYPE_CACHE_EXP_KEYS: { - "ExpiredKeysMin": "", + "Expired": "", }, cloudprovider.REDIS_METRIC_TYPE_DATA_MEM_USAGE: { - "StorageMin": "", + "MemUsed": "", }, } { for metricName, tag := range metricNames { - metrics, err := self.GetMonitorData("QCE/REDIS", metricName, opts.StartTime, opts.EndTime, opts.RegionExtId, "instanceid", opts.ResourceIds) + metrics, err := self.GetMonitorData("QCE/REDIS_MEM", metricName, opts.StartTime, opts.EndTime, opts.RegionExtId, "instanceid", opts.ResourceIds) if err != nil { log.Errorf("GetMonitorData error: %v", err) continue