@@ -617,20 +617,27 @@ func (s *VolcengineRdsMysqlInstanceService) ModifyResource(resourceData *schema.
617
617
618
618
// Parameters
619
619
if resourceData .HasChange ("parameters" ) {
620
+ modifiedParams , _ , _ , _ := ve .GetSetDifference ("parameters" , resourceData , parameterHash , false )
621
+
620
622
parameterCallback := ve.Callback {
621
623
Call : ve.SdkCall {
622
624
Action : "ModifyDBInstanceParameters" ,
623
625
ContentType : ve .ContentTypeJson ,
624
- ConvertMode : ve .RequestConvertInConvert ,
625
- Convert : map [string ]ve.RequestConvert {
626
- "parameters" : {
627
- ConvertType : ve .ConvertJsonObjectArray ,
628
- ForceGet : true ,
629
- },
630
- },
626
+ ConvertMode : ve .RequestConvertIgnore ,
631
627
BeforeCall : func (d * schema.ResourceData , client * ve.SdkClient , call ve.SdkCall ) (bool , error ) {
632
- if len (* call . SdkParam ) > 0 {
628
+ if modifiedParams != nil && len (modifiedParams . List () ) > 0 {
633
629
(* call .SdkParam )["InstanceId" ] = d .Id ()
630
+ (* call .SdkParam )["Parameters" ] = make ([]map [string ]interface {}, 0 )
631
+ for _ , v := range modifiedParams .List () {
632
+ paramMap , ok := v .(map [string ]interface {})
633
+ if ! ok {
634
+ return false , fmt .Errorf ("Parameter is not map " )
635
+ }
636
+ (* call .SdkParam )["Parameters" ] = append ((* call .SdkParam )["Parameters" ].([]map [string ]interface {}), map [string ]interface {}{
637
+ "ParameterName" : paramMap ["parameter_name" ],
638
+ "ParameterValue" : paramMap ["parameter_value" ],
639
+ })
640
+ }
634
641
return true , nil
635
642
}
636
643
return false , nil
@@ -645,7 +652,6 @@ func (s *VolcengineRdsMysqlInstanceService) ModifyResource(resourceData *schema.
645
652
},
646
653
},
647
654
}
648
-
649
655
callbacks = append (callbacks , parameterCallback )
650
656
}
651
657
0 commit comments