From 4d9f007727df39da943de7cf8a2c00a480b94468 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Wed, 10 Mar 2021 20:31:39 +0800 Subject: [PATCH] fix: aliyun tag list api --- pkg/multicloud/aliyun/instance.go | 6 ++++-- pkg/multicloud/aliyun/resource_tags.go | 18 +++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pkg/multicloud/aliyun/instance.go b/pkg/multicloud/aliyun/instance.go index 6e45200be2..aff471ddef 100644 --- a/pkg/multicloud/aliyun/instance.go +++ b/pkg/multicloud/aliyun/instance.go @@ -170,8 +170,10 @@ func (self *SRegion) GetInstances(zoneId string, ids []string, offset int, limit } type SAliyunTag struct { - TagKey string - TagValue string + ResourceId string + ResourceType string + TagKey string + TagValue string } func (self *SInstance) GetSecurityGroupIds() ([]string, error) { diff --git a/pkg/multicloud/aliyun/resource_tags.go b/pkg/multicloud/aliyun/resource_tags.go index 568167070f..bed2720e72 100644 --- a/pkg/multicloud/aliyun/resource_tags.go +++ b/pkg/multicloud/aliyun/resource_tags.go @@ -49,25 +49,25 @@ func (self *SRegion) ListTags(serviceType string, resourceType string, resourceI params["RegionId"] = self.RegionId params["ResourceType"] = resourceType params["ResourceId.1"] = resourceId - params["PageSize"] = "50" - var page int = 1 + nextToken := "" for { - params["PageNumber"] = fmt.Sprintf("%d", page) - resp, err := self.tagRequest(serviceType, "DescribeTags", params) + if len(nextToken) > 0 { + params["NextToken"] = nextToken + } + resp, err := self.tagRequest(serviceType, "ListTagResources", params) if err != nil { - return nil, errors.Wrapf(err, "%s DescribeTags %s", serviceType, params) + return nil, errors.Wrapf(err, "%s ListTagResources %s", serviceType, params) } part := []SAliyunTag{} - err = resp.Unmarshal(&part, "Tags", "Tag") + err = resp.Unmarshal(&part, "TagResources", "TagResource") if err != nil { return nil, errors.Wrapf(err, "resp.Unmarshal") } tags = append(tags, part...) - total, _ := resp.Int("TotalCount") - if len(tags) >= int(total) { + nextToken, _ = resp.GetString("NextToken") + if len(nextToken) == 0 { break } - page++ } return tags, nil }