Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ciam v1.0.695
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.1073
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.1.55
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.55
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161
Expand Down
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -875,6 +875,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.1073 h1:+nT
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.1073/go.mod h1:D9xdyB3utAtgGwTExSGxHSVQMfVHEUo/bfaBTxjHkao=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107 h1:sUiyGfYHzNpHKJx6DlRu1K8xBEGaWlOQT+8W5Ws0v4U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107/go.mod h1:L1r6mc7XjFlyLlOVqRvPEhjXneHywnyjyv9EoiGBRvM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.1.55 h1:+Ev7tV+pjE/RZqHiopmYPKChF30OjRGn6KS8ubBByq8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.1.55/go.mod h1:EL80jbu+ubwrNnTZHsp+jaWat2fKGkS/B9MYB/42exA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 h1:dIr+MVsZeUBiKZELfJh5HRJdI+BI6lCp5pv/2oXekuk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033/go.mod h1:7oFlNimGSTHFy6JV7W/IZKuJWr+NUjCnGLTvb9MWNrY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148 h1:tPQHJE07DGCJWrQJklrkrF0CasB86M7AEb0PrkXNjAM=
Expand Down Expand Up @@ -981,6 +983,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 h1:BQwUw
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.55 h1:8kT5ktFibG46S7WImjNkHx6N5b6vNFIVxPuj6rDMgb8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.55/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
Expand Down
112 changes: 112 additions & 0 deletions tencentcloud/services/clb/resource_tc_clb_listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,36 @@ func ResourceTencentCloudClbListener() *schema.Resource {
Optional: true,
Description: "Connection idle timeout period (in seconds). It's only available to TCP listeners. Value range: 300-900 for shared and dedicated instances; 300-2000 for LCU-supported CLB instances. It defaults to 900. To set a period longer than 2000 seconds (up to 3600 seconds). Please submit a work order for processing.",
},
"reschedule_target_zero_weight": {
Type: schema.TypeBool,
Computed: true,
Optional: true,
Description: "The rescheduling function, with a weight of 0 as a switch, triggers rescheduling when the weight of the backend server is set to 0. Only supported by TCP/UDP listeners.",
},
"reschedule_unhealthy": {
Type: schema.TypeBool,
Computed: true,
Optional: true,
Description: "Rescheduling function, health check exception switch. Enabling this switch triggers rescheduling when a backend server fails a health check. Supported only by TCP/UDP listeners.",
},
"reschedule_expand_target": {
Type: schema.TypeBool,
Computed: true,
Optional: true,
Description: "The rescheduling function, a switch for scaling backend services, triggers rescheduling when backend servers are added or removed. Only supported by TCP/UDP listeners.",
},
"reschedule_start_time": {
Type: schema.TypeInt,
Computed: true,
Optional: true,
Description: "Reschedule the trigger start time, with a value ranging from 0 to 3600 seconds. Only supported by TCP/UDP listeners.",
},
"reschedule_interval": {
Type: schema.TypeInt,
Computed: true,
Optional: true,
Description: "Rescheduled trigger duration, ranging from 0 to 3600 seconds. Supported only by TCP/UDP listeners.",
},
//computed
"listener_id": {
Type: schema.TypeString,
Expand Down Expand Up @@ -431,6 +461,26 @@ func resourceTencentCloudClbListenerCreate(d *schema.ResourceData, meta interfac
request.IdleConnectTimeout = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("reschedule_target_zero_weight"); ok {
request.RescheduleTargetZeroWeight = helper.Bool(v.(bool))
}

if v, ok := d.GetOkExists("reschedule_unhealthy"); ok {
request.RescheduleUnhealthy = helper.Bool(v.(bool))
}

if v, ok := d.GetOkExists("reschedule_expand_target"); ok {
request.RescheduleExpandTarget = helper.Bool(v.(bool))
}

if v, ok := d.GetOkExists("reschedule_start_time"); ok {
request.RescheduleStartTime = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("reschedule_interval"); ok {
request.RescheduleInterval = helper.IntInt64(v.(int))
}

var response *clb.CreateListenerResponse
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().CreateListener(request)
Expand Down Expand Up @@ -652,6 +702,33 @@ func resourceTencentCloudClbListenerRead(d *schema.ResourceData, meta interface{
_ = d.Set("idle_connect_timeout", instance.IdleConnectTimeout)
}

if instance.RescheduleInterval != nil {
_ = d.Set("reschedule_interval", instance.RescheduleInterval)
}

if instance.RescheduleStartTime != nil {
_ = d.Set("reschedule_start_time", instance.RescheduleStartTime)
}

_ = d.Set("reschedule_target_zero_weight", false)
_ = d.Set("reschedule_unhealthy", false)
_ = d.Set("reschedule_expand_target", false)
if instance.AttrFlags != nil {
for _, item := range instance.AttrFlags {
if item != nil && *item == "RescheduleTargetZeroWeight" {
_ = d.Set("reschedule_target_zero_weight", true)
}

if item != nil && *item == "RescheduleUnhealthy" {
_ = d.Set("reschedule_unhealthy", true)
}

if item != nil && *item == "RescheduleExpandTarget" {
_ = d.Set("reschedule_expand_target", true)
}
}
}

return nil
}

Expand Down Expand Up @@ -777,6 +854,41 @@ func resourceTencentCloudClbListenerUpdate(d *schema.ResourceData, meta interfac
}
}

if d.HasChange("reschedule_target_zero_weight") {
changed = true
if v, ok := d.GetOkExists("reschedule_target_zero_weight"); ok {
request.RescheduleTargetZeroWeight = helper.Bool(v.(bool))
}
}

if d.HasChange("reschedule_unhealthy") {
changed = true
if v, ok := d.GetOkExists("reschedule_unhealthy"); ok {
request.RescheduleUnhealthy = helper.Bool(v.(bool))
}
}

if d.HasChange("reschedule_expand_target") {
changed = true
if v, ok := d.GetOkExists("reschedule_expand_target"); ok {
request.RescheduleExpandTarget = helper.Bool(v.(bool))
}
}

if d.HasChange("reschedule_start_time") {
changed = true
if v, ok := d.GetOkExists("reschedule_start_time"); ok {
request.RescheduleStartTime = helper.IntInt64(v.(int))
}
}

if d.HasChange("reschedule_interval") {
changed = true
if v, ok := d.GetOkExists("reschedule_interval"); ok {
request.RescheduleInterval = helper.IntInt64(v.(int))
}
}

if changed {
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
response, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().ModifyListener(request)
Expand Down
Loading
Loading