Skip to content

Commit 4b4e323

Browse files
committed
fix(crs): [119900225] Processing the change from a single-AZ instance to a multi-AZ instance
1 parent 021604c commit 4b4e323

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

tencentcloud/services/crs/resource_tc_redis_instance.go

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,13 +1181,40 @@ func resourceRedisNodeSetModify(ctx context.Context, service *RedisService, d *s
11811181
ZoneId: helper.IntUint64(zoneId),
11821182
})
11831183
}
1184-
err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
1185-
_, err := service.UpgradeInstance(ctx, d.Id(), memSize, shardNum, redisReplicaCount+len(adds), addNodes)
1186-
if err != nil {
1187-
return tccommon.RetryError(err, redis.FAILEDOPERATION_UNKNOWN)
1184+
if redisReplicaCount+len(adds) == 0 && len(adds) == 1 {
1185+
// Processing the change from a single-AZ instance to a multi-AZ instance
1186+
request := redis.NewModifyInstanceAvailabilityZonesRequest()
1187+
if v, ok := d.GetOkExists("wait_switch"); ok {
1188+
request.SwitchOption = helper.IntInt64(v.(int))
1189+
} else {
1190+
request.SwitchOption = helper.IntInt64(2)
11881191
}
1189-
return nil
1190-
})
1192+
request.InstanceId = &id
1193+
request.NodeSet = append(request.NodeSet,
1194+
&redis.RedisNodeInfo{
1195+
NodeType: helper.IntInt64(1),
1196+
ZoneId: helper.IntUint64(adds[0]),
1197+
},
1198+
&redis.RedisNodeInfo{
1199+
NodeType: helper.IntInt64(0),
1200+
ZoneId: helper.IntUint64(int(*info.ZoneId)),
1201+
})
1202+
err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
1203+
_, err := service.client.UseRedisClient().ModifyInstanceAvailabilityZones(request)
1204+
if err != nil {
1205+
return tccommon.RetryError(err, redis.INTERNALERROR)
1206+
}
1207+
return nil
1208+
})
1209+
} else {
1210+
err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
1211+
_, err := service.UpgradeInstance(ctx, d.Id(), memSize, shardNum, redisReplicaCount+len(adds), addNodes)
1212+
if err != nil {
1213+
return tccommon.RetryError(err, redis.FAILEDOPERATION_UNKNOWN)
1214+
}
1215+
return nil
1216+
})
1217+
}
11911218
if err != nil {
11921219
return err
11931220
}

0 commit comments

Comments
 (0)