From d4469ffde409bc54078d48905463d10c6eaf7fc7 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Wed, 4 Nov 2020 16:46:46 +0800 Subject: [PATCH 1/6] networks: list: make bgp_type available --- pkg/compute/models/networks.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index 89d3ebf251..809aae8de8 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -121,7 +121,7 @@ type SNetwork struct { IsAutoAlloc tristate.TriState `nullable:"true" list:"user" get:"user" update:"user" create:"optional"` // 线路类型 - BgpType string `width:"64" charset:"utf8" nullable:"false" get:"user" update:"user" create:"optional"` + BgpType string `width:"64" charset:"utf8" nullable:"false" list:"user" get:"user" update:"user" create:"optional"` } func (manager *SNetworkManager) GetContextManagers() [][]db.IModelManager { From 51dafd29e75938c264a3b4048e2748c70df72604 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Wed, 4 Nov 2020 16:31:40 +0800 Subject: [PATCH 2/6] networks: make filter by bgp types available --- pkg/apis/compute/network.go | 3 +++ pkg/compute/models/networks.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pkg/apis/compute/network.go b/pkg/apis/compute/network.go index aaf3409693..55c8585ffe 100644 --- a/pkg/apis/compute/network.go +++ b/pkg/apis/compute/network.go @@ -117,6 +117,9 @@ type NetworkListInput struct { // filter by Host schedtag HostSchedtagId string `json:"host_schedtag_id"` + + // filter by BGP types + BgpType []string `json:"bgp_type"` } type NetworkResourceInfoBase struct { diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index 809aae8de8..cc8d300b0c 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -2018,6 +2018,9 @@ func (manager *SNetworkManager) ListItemFilter( if len(input.AllocPolicy) > 0 { q = q.In("alloc_policy", input.AllocPolicy) } + if len(input.BgpType) > 0 { + q = q.In("bgp_type", input.BgpType) + } if input.IsAutoAlloc != nil { if *input.IsAutoAlloc { From 6464597c978f19681101e0649b444e14771bafd4 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Wed, 4 Nov 2020 16:31:49 +0800 Subject: [PATCH 3/6] climc: network-list with multiple --bgp-type args --- pkg/mcclient/options/network.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/mcclient/options/network.go b/pkg/mcclient/options/network.go index 5f43145235..87d77fef78 100644 --- a/pkg/mcclient/options/network.go +++ b/pkg/mcclient/options/network.go @@ -43,6 +43,8 @@ type NetworkListOptions struct { GuestIpStart []string `help:"search by guest_ip_start"` GuestIpEnd []string `help:"search by guest_ip_end"` + + BgpType []string `help:"filter by bgp_type"` } func (opts *NetworkListOptions) GetContextId() string { From 73d750e1c7c9017754023a49fb166a1b86078036 Mon Sep 17 00:00:00 2001 From: lvyangyang Date: Wed, 4 Nov 2020 17:16:11 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=E5=9F=9F=E5=90=8D=E6=AD=A3=E5=88=99?= =?UTF-8?q?=E6=A0=A1=E9=AA=8Cdnsrecord=20name=EF=BC=8C=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E5=9F=9F=E5=90=8D=E5=8F=96punycode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/dns_recordsets.go | 6 ++++++ pkg/multicloud/aliyun/dns_domain.go | 3 +++ pkg/multicloud/qcloud/dnspod_domain.go | 3 +++ 3 files changed, 12 insertions(+) diff --git a/pkg/compute/models/dns_recordsets.go b/pkg/compute/models/dns_recordsets.go index c87bb91d2d..e2ff757bf9 100644 --- a/pkg/compute/models/dns_recordsets.go +++ b/pkg/compute/models/dns_recordsets.go @@ -23,6 +23,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" "yunion.io/x/pkg/tristate" + "yunion.io/x/pkg/util/regutils" "yunion.io/x/pkg/utils" "yunion.io/x/sqlchemy" @@ -120,6 +121,11 @@ func (manager *SDnsRecordSetManager) ValidateCreateData(ctx context.Context, use return input, err } input.Name = strings.ToLower(input.Name) + if input.Name != "*" && input.Name != "@" { + if !regutils.MatchDomainName(input.Name) { + return input, httperrors.NewInputParameterError("invalid domain name %s", input.Name) + } + } if len(input.DnsZoneId) == 0 { return input, httperrors.NewMissingParameterError("dns_zone_id") } diff --git a/pkg/multicloud/aliyun/dns_domain.go b/pkg/multicloud/aliyun/dns_domain.go index f3fdddc585..e5efc5dabc 100644 --- a/pkg/multicloud/aliyun/dns_domain.go +++ b/pkg/multicloud/aliyun/dns_domain.go @@ -249,6 +249,9 @@ func (self *SDomain) GetId() string { } func (self *SDomain) GetName() string { + if len(self.PunyCode) > 0 { + return self.PunyCode + } return self.DomainName } diff --git a/pkg/multicloud/qcloud/dnspod_domain.go b/pkg/multicloud/qcloud/dnspod_domain.go index c4f6f718c8..c3df5b0a3b 100644 --- a/pkg/multicloud/qcloud/dnspod_domain.go +++ b/pkg/multicloud/qcloud/dnspod_domain.go @@ -173,6 +173,9 @@ func (self *SDomian) GetId() string { } func (self *SDomian) GetName() string { + if len(self.Punycode) > 0 { + return self.Punycode + } return self.Name } From 47d358ecb1d04a35b299e2ddb5b9315b42a9a99c Mon Sep 17 00:00:00 2001 From: Shaohui Liu Date: Wed, 4 Nov 2020 18:10:03 +0800 Subject: [PATCH 5/6] Fix a typo: ProviderFactor -> ProviderFactory --- pkg/cloudprovider/cloudprovider.go | 16 ++++++++-------- pkg/multicloud/aliyun/provider/provider.go | 2 +- pkg/multicloud/aws/provider/provider.go | 2 +- pkg/multicloud/azure/provider/provider.go | 2 +- pkg/multicloud/ctyun/provider/provider.go | 2 +- pkg/multicloud/google/provider/provider.go | 2 +- pkg/multicloud/huawei/provider/provider.go | 2 +- pkg/multicloud/openstack/provider/provider.go | 2 +- pkg/multicloud/qcloud/provider/provider.go | 2 +- pkg/multicloud/ucloud/provider/provider.go | 2 +- pkg/multicloud/zstack/provider/provider.go | 2 +- 11 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/cloudprovider/cloudprovider.go b/pkg/cloudprovider/cloudprovider.go index 6420ad0bb8..a893e0d009 100644 --- a/pkg/cloudprovider/cloudprovider.go +++ b/pkg/cloudprovider/cloudprovider.go @@ -698,34 +698,34 @@ func (factory *SPremiseBaseProviderFactory) NeedSyncSkuFromCloud() bool { return false } -type SPublicCloudBaseProviderFactor struct { +type SPublicCloudBaseProviderFactory struct { baseProviderFactory } -func (factory *SPublicCloudBaseProviderFactor) IsPublicCloud() bool { +func (factory *SPublicCloudBaseProviderFactory) IsPublicCloud() bool { return true } -func (factory *SPublicCloudBaseProviderFactor) IsSupportPrepaidResources() bool { +func (factory *SPublicCloudBaseProviderFactory) IsSupportPrepaidResources() bool { return true } -func (factory *SPublicCloudBaseProviderFactor) NeedSyncSkuFromCloud() bool { +func (factory *SPublicCloudBaseProviderFactory) NeedSyncSkuFromCloud() bool { return false } -type SPrivateCloudBaseProviderFactor struct { +type SPrivateCloudBaseProviderFactory struct { baseProviderFactory } -func (factory *SPrivateCloudBaseProviderFactor) IsPublicCloud() bool { +func (factory *SPrivateCloudBaseProviderFactory) IsPublicCloud() bool { return false } -func (factory *SPrivateCloudBaseProviderFactor) IsSupportPrepaidResources() bool { +func (factory *SPrivateCloudBaseProviderFactory) IsSupportPrepaidResources() bool { return false } -func (factory *SPrivateCloudBaseProviderFactor) NeedSyncSkuFromCloud() bool { +func (factory *SPrivateCloudBaseProviderFactory) NeedSyncSkuFromCloud() bool { return true } diff --git a/pkg/multicloud/aliyun/provider/provider.go b/pkg/multicloud/aliyun/provider/provider.go index 40127b9aac..18dc2955ef 100644 --- a/pkg/multicloud/aliyun/provider/provider.go +++ b/pkg/multicloud/aliyun/provider/provider.go @@ -28,7 +28,7 @@ import ( ) type SAliyunProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SAliyunProviderFactory) GetId() string { diff --git a/pkg/multicloud/aws/provider/provider.go b/pkg/multicloud/aws/provider/provider.go index 0acd6f4d03..22eab27490 100644 --- a/pkg/multicloud/aws/provider/provider.go +++ b/pkg/multicloud/aws/provider/provider.go @@ -28,7 +28,7 @@ import ( ) type SAwsProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SAwsProviderFactory) GetId() string { diff --git a/pkg/multicloud/azure/provider/provider.go b/pkg/multicloud/azure/provider/provider.go index 2556c70550..4837e0392d 100644 --- a/pkg/multicloud/azure/provider/provider.go +++ b/pkg/multicloud/azure/provider/provider.go @@ -31,7 +31,7 @@ import ( ) type SAzureProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SAzureProviderFactory) GetId() string { diff --git a/pkg/multicloud/ctyun/provider/provider.go b/pkg/multicloud/ctyun/provider/provider.go index 86ac0edf75..872e944d58 100644 --- a/pkg/multicloud/ctyun/provider/provider.go +++ b/pkg/multicloud/ctyun/provider/provider.go @@ -29,7 +29,7 @@ import ( ) type SCtyunProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SCtyunProviderFactory) GetId() string { diff --git a/pkg/multicloud/google/provider/provider.go b/pkg/multicloud/google/provider/provider.go index d337bc3ac4..2d4b4ccd07 100644 --- a/pkg/multicloud/google/provider/provider.go +++ b/pkg/multicloud/google/provider/provider.go @@ -30,7 +30,7 @@ import ( ) type SGoogleProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SGoogleProviderFactory) GetId() string { diff --git a/pkg/multicloud/huawei/provider/provider.go b/pkg/multicloud/huawei/provider/provider.go index 4b1472f8f1..683f2d34f9 100644 --- a/pkg/multicloud/huawei/provider/provider.go +++ b/pkg/multicloud/huawei/provider/provider.go @@ -29,7 +29,7 @@ import ( ) type SHuaweiProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SHuaweiProviderFactory) GetId() string { diff --git a/pkg/multicloud/openstack/provider/provider.go b/pkg/multicloud/openstack/provider/provider.go index a78245af78..406d91d809 100644 --- a/pkg/multicloud/openstack/provider/provider.go +++ b/pkg/multicloud/openstack/provider/provider.go @@ -30,7 +30,7 @@ import ( ) type SOpenStackProviderFactory struct { - cloudprovider.SPrivateCloudBaseProviderFactor + cloudprovider.SPrivateCloudBaseProviderFactory } var EndpointTypes = []string{"admin", "internal", "public"} diff --git a/pkg/multicloud/qcloud/provider/provider.go b/pkg/multicloud/qcloud/provider/provider.go index 5682632f76..8d98e41ede 100644 --- a/pkg/multicloud/qcloud/provider/provider.go +++ b/pkg/multicloud/qcloud/provider/provider.go @@ -31,7 +31,7 @@ import ( ) type SQcloudProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SQcloudProviderFactory) GetId() string { diff --git a/pkg/multicloud/ucloud/provider/provider.go b/pkg/multicloud/ucloud/provider/provider.go index 59bd77ed33..38c2df0c52 100644 --- a/pkg/multicloud/ucloud/provider/provider.go +++ b/pkg/multicloud/ucloud/provider/provider.go @@ -30,7 +30,7 @@ import ( // tag:finished type SUcloudProviderFactory struct { - cloudprovider.SPublicCloudBaseProviderFactor + cloudprovider.SPublicCloudBaseProviderFactory } func (self *SUcloudProviderFactory) GetId() string { diff --git a/pkg/multicloud/zstack/provider/provider.go b/pkg/multicloud/zstack/provider/provider.go index b0521c94c4..da7682db92 100644 --- a/pkg/multicloud/zstack/provider/provider.go +++ b/pkg/multicloud/zstack/provider/provider.go @@ -28,7 +28,7 @@ import ( ) type SZStackProviderFactory struct { - cloudprovider.SPrivateCloudBaseProviderFactor + cloudprovider.SPrivateCloudBaseProviderFactory } func (self *SZStackProviderFactory) GetId() string { From 97ed3403878a5f81ed38fb3a9a441d4105d0f10e Mon Sep 17 00:00:00 2001 From: zhaoxiangchun <1422928955@qq.com> Date: Wed, 4 Nov 2020 18:17:26 +0800 Subject: [PATCH 6/6] commonalert bugfix --- pkg/monitor/models/metric.go | 4 ++-- pkg/monitor/models/unifiedmonitor.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/monitor/models/metric.go b/pkg/monitor/models/metric.go index 39e4c3fa33..8306ffb39e 100644 --- a/pkg/monitor/models/metric.go +++ b/pkg/monitor/models/metric.go @@ -436,8 +436,8 @@ func (manager *SMetricMeasurementManager) reloadCache() error { if err := db.FetchModelObjects(manager, q, &objs); err != nil { return errors.Wrap(err, "Fetch all measurements") } - for _, obj := range objs { - manager.measurementsCache.set(obj.Name, &obj) + for i, obj := range objs { + manager.measurementsCache.set(obj.Name, &objs[i]) } return nil } diff --git a/pkg/monitor/models/unifiedmonitor.go b/pkg/monitor/models/unifiedmonitor.go index 4943074e3d..747347f040 100644 --- a/pkg/monitor/models/unifiedmonitor.go +++ b/pkg/monitor/models/unifiedmonitor.go @@ -362,7 +362,7 @@ func setDefaultValue(query *monitor.AlertQuery, inputQuery *monitor.MetricInputQ }) } } - if metricMeasurement.ResType == hostconsts.TELEGRAF_TAG_ONECLOUD_RES_TYPE { + if metricMeasurement != nil && metricMeasurement.ResType == hostconsts.TELEGRAF_TAG_ONECLOUD_RES_TYPE { query.Model.Tags = append(query.Model.Tags, monitor.MetricQueryTag{ Key: hostconsts.TELEGRAF_TAG_KEY_RES_TYPE, Operator: "=",