diff --git a/go.mod b/go.mod index ee83b854f8..2aee937789 100644 --- a/go.mod +++ b/go.mod @@ -96,14 +96,14 @@ require ( k8s.io/cri-api v0.22.17 k8s.io/klog/v2 v2.20.0 moul.io/http2curl/v2 v2.3.0 - yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250924031606-a2597eb1f66f + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250926020310-3d004271191d yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1 yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900 yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0 yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 - yunion.io/x/sqlchemy v1.1.3-0.20250923143347-b98e89dbc372 + yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0 yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c ) diff --git a/go.sum b/go.sum index 62a2e63462..8b37cca876 100644 --- a/go.sum +++ b/go.sum @@ -1426,8 +1426,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.20250924031606-a2597eb1f66f h1:aLijaM2lCiOSvU4aMHKmViaHvi7xP3h0WNilHVVxXJg= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250924031606-a2597eb1f66f/go.mod h1:R5iP/4nGCluuekoa30B5hM/49IfPpGHXwFK3yT7m6Vw= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250926020310-3d004271191d h1:ZAYOZuFaAeGFz+LYE2FMXu4fwx/qqfuTww3eJRK/ZzY= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250926020310-3d004271191d/go.mod h1:R5iP/4nGCluuekoa30B5hM/49IfPpGHXwFK3yT7m6Vw= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 h1:msG4SiDSVU7CrXH06WuHlNEZXIooTcmNbfrIGHuIHBU= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= @@ -1445,7 +1445,7 @@ yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0 h1:/vHcYqzQInxqR1jjS+e7A0o yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM= yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 h1:1KJ3YYinydPHpDEQRXdr/T8SYcKZ5Er+m489H+PnaQ4= yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo= -yunion.io/x/sqlchemy v1.1.3-0.20250923143347-b98e89dbc372 h1:8lR9HzYTxSgxcVv6uC2Ogkk1Y3FEEanABfgeleCzhfA= -yunion.io/x/sqlchemy v1.1.3-0.20250923143347-b98e89dbc372/go.mod h1:vCIZpqhZ5Jzaq3tFyrti/vv8BijQKtkzSgNT/uH4H5A= +yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0 h1:L4zE6kTD1PEki1jQnLLBiYnEYFKWa/weoful0Sl4tKw= +yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0/go.mod h1:vCIZpqhZ5Jzaq3tFyrti/vv8BijQKtkzSgNT/uH4H5A= yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c h1:QuLab2kSRECZRxo4Lo2KcYn6XjQFDGaZ1+x0pYDVVwQ= yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng= diff --git a/vendor/modules.txt b/vendor/modules.txt index 9c19805598..2c52668d01 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1900,7 +1900,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.20250924031606-a2597eb1f66f +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250926020310-3d004271191d ## explicit; go 1.24 yunion.io/x/cloudmux/pkg/apis yunion.io/x/cloudmux/pkg/apis/billing @@ -2051,7 +2051,7 @@ yunion.io/x/pkg/utils # yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 ## explicit; go 1.12 yunion.io/x/s3cli -# yunion.io/x/sqlchemy v1.1.3-0.20250923143347-b98e89dbc372 +# yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0 ## explicit; go 1.17 yunion.io/x/sqlchemy yunion.io/x/sqlchemy/backends diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go index 509345ae80..dedab6a2f5 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go @@ -771,32 +771,45 @@ func (self *SAliyunClient) fetchBuckets() error { if err != nil { return errors.Wrap(err, "self.getOssClient") } - result, err := osscli.ListBuckets() - if err != nil { - return errors.Wrap(err, "oss.ListBuckets") - } - - if len(self.ownerId) == 0 { - self.ownerId = result.Owner.ID - } - ret := make([]cloudprovider.ICloudBucket, 0) - for _, bInfo := range result.Buckets { - regionId := bInfo.Location[4:] - region, err := self.getRegionByRegionId(regionId) + + marker := "" + for { + opts := []oss.Option{oss.MaxKeys(100)} + if len(marker) > 0 { + opts = append(opts, oss.Marker(marker)) + } + result, err := osscli.ListBuckets(opts...) if err != nil { - log.Errorf("cannot find bucket's region %s", regionId) - continue + return errors.Wrap(err, "oss.ListBuckets") } - b := SBucket{ - region: region.(*SRegion), - Name: bInfo.Name, - Location: bInfo.Location, - CreationDate: bInfo.CreationDate, - StorageClass: bInfo.StorageClass, + + if len(self.ownerId) == 0 { + self.ownerId = result.Owner.ID } - ret = append(ret, &b) + + for _, bInfo := range result.Buckets { + regionId := bInfo.Location[4:] + region, err := self.getRegionByRegionId(regionId) + if err != nil { + log.Errorf("cannot find bucket's region %s", regionId) + continue + } + b := SBucket{ + region: region.(*SRegion), + Name: bInfo.Name, + Location: bInfo.Location, + CreationDate: bInfo.CreationDate, + StorageClass: bInfo.StorageClass, + } + ret = append(ret, &b) + } + if !result.IsTruncated { + break + } + marker = result.NextMarker } + self.iBuckets = ret return nil } diff --git a/vendor/yunion.io/x/sqlchemy/ascii.go b/vendor/yunion.io/x/sqlchemy/ascii.go index f18d153f64..1c32964af7 100644 --- a/vendor/yunion.io/x/sqlchemy/ascii.go +++ b/vendor/yunion.io/x/sqlchemy/ascii.go @@ -31,6 +31,10 @@ func (c *STableField) IsSearchable() bool { return c.spec.IsSearchable() } +func (c *STableField) GetWidth() int { + return c.spec.GetWidth() +} + func getTableField(f IQueryField) *STableField { if gotypes.IsNil(f) { return nil @@ -47,10 +51,10 @@ func getTableField(f IQueryField) *STableField { } } -func IsFieldText(f IQueryField) bool { +func IsLongFieldText(f IQueryField) bool { tf := getTableField(f) if tf != nil { - return tf.IsText() && tf.IsSearchable() + return tf.IsText() && tf.IsSearchable() && tf.GetWidth() == 0 } return false } diff --git a/vendor/yunion.io/x/sqlchemy/backends/dameng/conditions.go b/vendor/yunion.io/x/sqlchemy/backends/dameng/conditions.go index 5ffc0e9d00..482ca18558 100644 --- a/vendor/yunion.io/x/sqlchemy/backends/dameng/conditions.go +++ b/vendor/yunion.io/x/sqlchemy/backends/dameng/conditions.go @@ -32,7 +32,7 @@ func (t *SDamengEqualsCondition) WhereClause() string { // Equals filter conditions func (dameng *SDamengBackend) Equals(f sqlchemy.IQueryField, v interface{}) sqlchemy.ICondition { // log.Debugf("field %s isFieldText: %v %#v", f.Name(), sqlchemy.IsFieldText(f), f) - if sqlchemy.IsFieldText(f) { + if sqlchemy.IsLongFieldText(f) { c := SDamengEqualsCondition{sqlchemy.NewTupleCondition(f, v)} return &c } else {