Skip to content

Commit 2b0533d

Browse files
tongyimingmikatong
andauthored
fix: support query cvm images by instance_type (#1174)
* fix: support query cvm images by instance_type * fix: update doc * fix: clear tmp file * fix: merge Co-authored-by: mikatong <mikatong@tencent.com>
1 parent 8405436 commit 2b0533d

File tree

12 files changed

+3705
-802
lines changed

12 files changed

+3705
-802
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ require (
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.283
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
36-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443
37-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385
36+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.445
37+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.199

go.sum

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,10 +496,13 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430 h1:mGlG
496496
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
497497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.438 h1:tz7YTepMgtehsPI7nTXEZ6W9eOaXR0rvLMtqwHDzhZ8=
498498
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.438/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
499-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443 h1:5kS48/GyzW49t4eB8dkNAoDGMeVLEadfTrB1Wpr07qw=
500499
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
500+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.445 h1:ExpnqUQjuvmanxIARSyUyqCYIdL5wW+IL+e0FADmjdk=
501+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.445/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
501502
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385 h1:8bwloRxRwSADSK48KxaUeO9JHmmgniNGJbA7Or/HUEk=
502503
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385/go.mod h1:PMxA0L4o8Fbx/6+ju1cAMAU7x2bV4C6e/LTqVe745yM=
504+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445 h1:Bh7XD0ypNMHYyBOM8hhKsSu+y0VVKUnJVS+YKKhfpGg=
505+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445/go.mod h1:jMDD351efCFpT1+KVFbcpu6SbmP4TYmp4qkoCfr63nQ=
503506
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359 h1:cNKqelPgUxrJkLY0Azd2QHr/UMYOPPnmqs88clt2akk=
504507
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359/go.mod h1:GlTYjlrf8EKEMu+Z2MXfaM2/nHGUBBF/huBBJqGyGwI=
505508
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335 h1:D8qrelkK5udv8RzJJIABMzItGIyaZoYnxEVeIsYqiNw=

tencentcloud/data_source_tc_image.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func dataSourceTencentCloudImageRead(d *schema.ResourceData, meta interface{}) e
115115
var images []*cvm.Image
116116
var errRet error
117117
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
118-
images, errRet = cvmService.DescribeImagesByFilter(ctx, filter)
118+
images, errRet = cvmService.DescribeImagesByFilter(ctx, filter, "")
119119
if errRet != nil {
120120
return retryError(errRet, InternalError)
121121
}

tencentcloud/data_source_tc_images.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ func dataSourceTencentCloudImages() *schema.Resource {
5555
ValidateFunc: validateNotEmpty,
5656
Description: "A string to apply with fuzzy match to the os_name attribute on the image list returned by TencentCloud, conflict with 'image_name_regex'.",
5757
},
58+
"instance_type": {
59+
Type: schema.TypeString,
60+
Optional: true,
61+
Description: "Instance type, such as `S1.SMALL1`.",
62+
},
5863
"result_output_file": {
5964
Type: schema.TypeString,
6065
Optional: true,
@@ -229,10 +234,15 @@ func dataSourceTencentCloudImagesRead(d *schema.ResourceData, meta interface{})
229234
osName = v.(string)
230235
}
231236

237+
var instanceType string
238+
if v, ok := d.GetOk("instance_type"); ok {
239+
instanceType = v.(string)
240+
}
241+
232242
var images []*cvm.Image
233243
err = resource.Retry(readRetryTimeout, func() *resource.RetryError {
234244
var e error
235-
images, e = cvmService.DescribeImagesByFilter(ctx, filter)
245+
images, e = cvmService.DescribeImagesByFilter(ctx, filter, instanceType)
236246
if e != nil {
237247
return retryError(e, InternalError)
238248
}

tencentcloud/data_source_tc_images_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ func TestAccTencentCloudDataSourceImagesBase(t *testing.T) {
4040
resource.TestCheckResourceAttrSet("data.tencentcloud_images.foo", "images.#"),
4141
),
4242
},
43+
{
44+
Config: testAccTencentCloudDataSourceImagesBaseWithInstanceType,
45+
Check: resource.ComposeTestCheckFunc(
46+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_images.foo"),
47+
resource.TestCheckResourceAttrSet("data.tencentcloud_images.foo", "images.#"),
48+
),
49+
},
4350
},
4451
})
4552
}
@@ -69,3 +76,9 @@ data "tencentcloud_images" "foo" {
6976
image_name_regex = "^CentOS\\s+7\\.5\\s+64\\w*"
7077
}
7178
`
79+
80+
const testAccTencentCloudDataSourceImagesBaseWithInstanceType = `
81+
data "tencentcloud_images" "foo" {
82+
instance_type = "S1.SMALL1"
83+
}
84+
`

tencentcloud/service_tencentcloud_cvm.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,7 @@ func (me *CvmService) DescribeImageById(ctx context.Context, keyId string, isDel
11181118
return
11191119
}
11201120

1121-
func (me *CvmService) DescribeImagesByFilter(ctx context.Context, filters map[string][]string) (images []*cvm.Image, errRet error) {
1121+
func (me *CvmService) DescribeImagesByFilter(ctx context.Context, filters map[string][]string, instanceType string) (images []*cvm.Image, errRet error) {
11221122
logId := getLogId(ctx)
11231123

11241124
request := cvm.NewDescribeImagesRequest()
@@ -1133,7 +1133,9 @@ func (me *CvmService) DescribeImagesByFilter(ctx context.Context, filters map[st
11331133
}
11341134
request.Filters = append(request.Filters, &filter)
11351135
}
1136-
1136+
if instanceType != "" {
1137+
request.InstanceType = helper.String(instanceType)
1138+
}
11371139
var offset uint64 = 0
11381140
var pageSize uint64 = 100
11391141
images = make([]*cvm.Image, 0)

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)