@@ -237,10 +237,10 @@ resolution and up to nine fractional digits.`,
237
237
"memcache_version" : {
238
238
Type : schema .TypeString ,
239
239
Optional : true ,
240
- ValidateFunc : verify .ValidateEnum ([]string {"MEMCACHE_1_5" , "" }),
240
+ ValidateFunc : verify .ValidateEnum ([]string {"MEMCACHE_1_5" , "MEMCACHE_1_6_15" , " " }),
241
241
Description : `The major version of Memcached software. If not provided, latest supported version will be used.
242
242
Currently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically
243
- determined by our system based on the latest supported minor version. Default value: "MEMCACHE_1_5" Possible values: ["MEMCACHE_1_5"]` ,
243
+ determined by our system based on the latest supported minor version. Default value: "MEMCACHE_1_5" Possible values: ["MEMCACHE_1_5", "MEMCACHE_1_6_15" ]` ,
244
244
Default : "MEMCACHE_1_5" ,
245
245
},
246
246
"region" : {
@@ -613,12 +613,6 @@ func resourceMemcacheInstanceUpdate(d *schema.ResourceData, meta interface{}) er
613
613
} else if v , ok := d .GetOkExists ("node_count" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , nodeCountProp )) {
614
614
obj ["nodeCount" ] = nodeCountProp
615
615
}
616
- memcacheVersionProp , err := expandMemcacheInstanceMemcacheVersion (d .Get ("memcache_version" ), d , config )
617
- if err != nil {
618
- return err
619
- } else if v , ok := d .GetOkExists ("memcache_version" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , memcacheVersionProp )) {
620
- obj ["memcacheVersion" ] = memcacheVersionProp
621
- }
622
616
maintenancePolicyProp , err := expandMemcacheInstanceMaintenancePolicy (d .Get ("maintenance_policy" ), d , config )
623
617
if err != nil {
624
618
return err
@@ -648,10 +642,6 @@ func resourceMemcacheInstanceUpdate(d *schema.ResourceData, meta interface{}) er
648
642
updateMask = append (updateMask , "nodeCount" )
649
643
}
650
644
651
- if d .HasChange ("memcache_version" ) {
652
- updateMask = append (updateMask , "memcacheVersion" )
653
- }
654
-
655
645
if d .HasChange ("maintenance_policy" ) {
656
646
updateMask = append (updateMask , "maintenancePolicy" )
657
647
}
@@ -697,6 +687,52 @@ func resourceMemcacheInstanceUpdate(d *schema.ResourceData, meta interface{}) er
697
687
return err
698
688
}
699
689
}
690
+ d .Partial (true )
691
+
692
+ if d .HasChange ("memcache_version" ) {
693
+ obj := make (map [string ]interface {})
694
+
695
+ memcacheVersionProp , err := expandMemcacheInstanceMemcacheVersion (d .Get ("memcache_version" ), d , config )
696
+ if err != nil {
697
+ return err
698
+ } else if v , ok := d .GetOkExists ("memcache_version" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , memcacheVersionProp )) {
699
+ obj ["memcacheVersion" ] = memcacheVersionProp
700
+ }
701
+
702
+ url , err := tpgresource .ReplaceVars (d , config , "{{MemcacheBasePath}}projects/{{project}}/locations/{{region}}/instances/{{name}}:upgrade" )
703
+ if err != nil {
704
+ return err
705
+ }
706
+
707
+ // err == nil indicates that the billing_project value was found
708
+ if bp , err := tpgresource .GetBillingProject (d , config ); err == nil {
709
+ billingProject = bp
710
+ }
711
+
712
+ res , err := transport_tpg .SendRequest (transport_tpg.SendRequestOptions {
713
+ Config : config ,
714
+ Method : "POST" ,
715
+ Project : billingProject ,
716
+ RawURL : url ,
717
+ UserAgent : userAgent ,
718
+ Body : obj ,
719
+ Timeout : d .Timeout (schema .TimeoutUpdate ),
720
+ })
721
+ if err != nil {
722
+ return fmt .Errorf ("Error updating Instance %q: %s" , d .Id (), err )
723
+ } else {
724
+ log .Printf ("[DEBUG] Finished updating Instance %q: %#v" , d .Id (), res )
725
+ }
726
+
727
+ err = MemcacheOperationWaitTime (
728
+ config , res , project , "Updating Instance" , userAgent ,
729
+ d .Timeout (schema .TimeoutUpdate ))
730
+ if err != nil {
731
+ return err
732
+ }
733
+ }
734
+
735
+ d .Partial (false )
700
736
701
737
return resourceMemcacheInstanceRead (d , meta )
702
738
}
0 commit comments