From 3982f7fb19a8df5ce2ee8a3dc1218988833f9b6e Mon Sep 17 00:00:00 2001 From: TangBin Date: Tue, 7 Jan 2020 20:03:27 +0800 Subject: [PATCH 1/5] azure skus sync fix --- pkg/compute/models/skus.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index 8eb7a4304e..2e701ad135 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -1125,6 +1125,7 @@ func (self *SServerSku) PerformDisable(ctx context.Context, userCred mcclient.To func (self *SServerSku) syncWithCloudSku(ctx context.Context, userCred mcclient.TokenCredential, extSku SServerSku) error { _, err := db.Update(self, func() error { + self.ZoneId = extSku.ZoneId self.PrepaidStatus = extSku.PrepaidStatus self.PostpaidStatus = extSku.PostpaidStatus return nil From 8607d25035d2bc98a5c473eb8e7dec2af0aec176 Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 8 Jan 2020 10:46:34 +0800 Subject: [PATCH 2/5] network create GuestIpPrefix fix --- pkg/compute/models/networks.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index c12748c167..e40d82d86e 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -1262,6 +1262,8 @@ func (manager *SNetworkManager) ValidateCreateData(ctx context.Context, userCred startIp = iprange.StartIp().StepUp() endIp = iprange.EndIp().StepDown() input.GuestIpMask = int64(prefix.MaskLen) + // 根据掩码得到合法的GuestIpPrefix + input.GuestIpPrefix = prefix.String() } else { startIp, err = netutils.NewIPV4Addr(input.GuestIpStart) if err != nil { From 61f72fbbfdaca498fed6066aa6fd83b9271891fd Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 8 Jan 2020 10:56:32 +0800 Subject: [PATCH 3/5] huawei network default gateway fix --- pkg/multicloud/huawei/network.go | 6 +++--- pkg/multicloud/huawei/wire.go | 22 +++++++--------------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/pkg/multicloud/huawei/network.go b/pkg/multicloud/huawei/network.go index e7306eb6ba..c9acda04e8 100644 --- a/pkg/multicloud/huawei/network.go +++ b/pkg/multicloud/huawei/network.go @@ -122,9 +122,9 @@ func (self *SNetwork) GetIpMask() int8 { func (self *SNetwork) GetGateway() string { pref, _ := netutils.NewIPV4Prefix(self.CIDR) - endIp := pref.Address.BroadcastAddr(pref.MaskLen) // 255 - endIp = endIp.StepDown() // 254 - return endIp.String() + startIp := pref.Address.NetAddr(pref.MaskLen) // 0 + startIp = startIp.StepUp() // 1 + return startIp.String() } func (self *SNetwork) GetServerType() string { diff --git a/pkg/multicloud/huawei/wire.go b/pkg/multicloud/huawei/wire.go index 4bdec1a225..9320c82384 100644 --- a/pkg/multicloud/huawei/wire.go +++ b/pkg/multicloud/huawei/wire.go @@ -16,11 +16,12 @@ package huawei import ( "fmt" - "net" "time" "yunion.io/x/jsonutils" "yunion.io/x/log" + "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/util/netutils" "yunion.io/x/onecloud/pkg/cloudprovider" ) @@ -160,22 +161,13 @@ func (self *SWire) getNetworkById(networkId string) *SNetwork { } func getDefaultGateWay(cidr string) (string, error) { - ip, _, err := net.ParseCIDR(cidr) + pref, err := netutils.NewIPV4Prefix(cidr) if err != nil { - return "", err + return "", errors.Wrap(err, "getDefaultGateWay.NewIPV4Prefix") } - - ipv4 := ip.To4() - if ipv4 == nil || len(ip.String()) == net.IPv6len { - return "", fmt.Errorf("ipv6 is not supported currently") - } - - if ipv4[3] != 0 { - return "", fmt.Errorf("the last byte of ip address must be zero. e.g 192.168.0.0/16") - } - - ipv4[3] = 1 - return ipv4.String(), nil + startIp := pref.Address.NetAddr(pref.MaskLen) // 0 + startIp = startIp.StepUp() // 1 + return startIp.String(), nil } // https://support.huaweicloud.com/api-vpc/zh-cn_topic_0020090590.html From 7b8d617b5ba248e290c68a1a8332a71d772ad14e Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 8 Jan 2020 10:57:31 +0800 Subject: [PATCH 4/5] ctyun default gateway fix --- pkg/multicloud/ctyun/network.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/multicloud/ctyun/network.go b/pkg/multicloud/ctyun/network.go index 6e3a682c9e..a416b18887 100644 --- a/pkg/multicloud/ctyun/network.go +++ b/pkg/multicloud/ctyun/network.go @@ -115,9 +115,9 @@ func (self *SNetwork) GetIpMask() int8 { func (self *SNetwork) GetGateway() string { pref, _ := netutils.NewIPV4Prefix(self.CIDR) - endIp := pref.Address.BroadcastAddr(pref.MaskLen) // 255 - endIp = endIp.StepDown() // 254 - return endIp.String() + startIp := pref.Address.NetAddr(pref.MaskLen) // 0 + startIp = startIp.StepUp() // 1 + return startIp.String() } func (self *SNetwork) GetServerType() string { From 3e9c68abad548ad86468a6cd340e9d6a106f7a3a Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 8 Jan 2020 11:04:58 +0800 Subject: [PATCH 5/5] huawei redis sync fix --- pkg/multicloud/huawei/elasticcache_instance.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/multicloud/huawei/elasticcache_instance.go b/pkg/multicloud/huawei/elasticcache_instance.go index a1e697c276..e014f380f3 100644 --- a/pkg/multicloud/huawei/elasticcache_instance.go +++ b/pkg/multicloud/huawei/elasticcache_instance.go @@ -200,7 +200,12 @@ func (self *SElasticcache) GetArchType() string { } func (self *SElasticcache) GetNodeType() string { - return "" + // single(单副本) | double(双副本) + if strings.Contains(self.ResourceSpecCode, "single") { + return "single" + } else { + return "double" + } } func (self *SElasticcache) GetEngine() string {