@@ -173,18 +173,6 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
173173 if _ , ok := d .GetOk ("encrypt" ); ok {
174174 request .Encrypt = helper .String ("ENCRYPT" )
175175 }
176- if v , ok := d .GetOk ("tags" ); ok {
177- tags := v .(map [string ]interface {})
178- request .Tags = make ([]* cbs.Tag , 0 , len (tags ))
179- for key , value := range tags {
180- tag := cbs.Tag {
181- Key : helper .String (key ),
182- Value : helper .String (value .(string )),
183- }
184- request .Tags = append (request .Tags , & tag )
185- }
186- }
187-
188176 chargeType := d .Get ("charge_type" ).(string )
189177 request .DiskChargeType = & chargeType
190178
@@ -239,6 +227,14 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
239227 if err != nil {
240228 return err
241229 }
230+ if tags := helper .GetTags (d , "tags" ); len (tags ) > 0 {
231+ tcClient := meta .(* TencentCloudClient ).apiV3Conn
232+ tagService := & TagService {client : tcClient }
233+ resourceName := BuildTagResourceName ("cvm" , "volume" , tcClient .Region , d .Id ())
234+ if err := tagService .ModifyTags (ctx , resourceName , tags , nil ); err != nil {
235+ return err
236+ }
237+ }
242238
243239 return resourceTencentCloudCbsStorageRead (d , meta )
244240}
@@ -279,7 +275,6 @@ func resourceTencentCloudCbsStorageRead(d *schema.ResourceData, meta interface{}
279275 _ = d .Set ("storage_name" , storage .DiskName )
280276 _ = d .Set ("project_id" , storage .Placement .ProjectId )
281277 _ = d .Set ("encrypt" , storage .Encrypt )
282- _ = d .Set ("tags" , flattenCbsTagsMapping (storage .Tags ))
283278 _ = d .Set ("storage_status" , storage .DiskState )
284279 _ = d .Set ("attached" , storage .Attached )
285280 _ = d .Set ("charge_type" , storage .DiskChargeType )
@@ -289,6 +284,15 @@ func resourceTencentCloudCbsStorageRead(d *schema.ResourceData, meta interface{}
289284 _ = d .Set ("prepaid_renew_flag" , storage .RenewFlag )
290285 }
291286
287+ tcClient := meta .(* TencentCloudClient ).apiV3Conn
288+ tagService := & TagService {client : tcClient }
289+ tags , err := tagService .DescribeResourceTags (ctx , "cvm" , "volume" , tcClient .Region , d .Id ())
290+ if err != nil {
291+ return err
292+ }
293+
294+ _ = d .Set ("tags" , tags )
295+
292296 return nil
293297}
294298
@@ -417,13 +421,13 @@ func resourceTencentCloudCbsStorageUpdate(d *schema.ResourceData, meta interface
417421 }
418422
419423 if d .HasChange ("tags" ) {
420- oldInterface , newInterface := d . GetChange ( "tags" )
421- replaceTags , deleteTags := diffTags ( oldInterface .( map [ string ] interface {}), newInterface .( map [ string ] interface {}) )
422- tagService := TagService {
423- client : meta .( * TencentCloudClient ). apiV3Conn ,
424- }
425- region := meta .( * TencentCloudClient ). apiV3Conn . Region
426- resourceName := fmt . Sprintf ( "qcs:: cvm:%s:uin/: volume/%s " , region , storageId )
424+
425+ oldValue , newValue := d . GetChange ( "tags" )
426+ replaceTags , deleteTags := diffTags ( oldValue .( map [ string ] interface {}), newValue .( map [ string ] interface {}))
427+
428+ tcClient := meta .( * TencentCloudClient ). apiV3Conn
429+ tagService := & TagService { client : tcClient }
430+ resourceName := BuildTagResourceName ( " cvm" , " volume" , tcClient . Region , d . Id () )
427431 err := tagService .ModifyTags (ctx , resourceName , replaceTags , deleteTags )
428432 if err != nil {
429433 return err
0 commit comments