Skip to content

Commit fa1e4a2

Browse files
committed
Add retries parameter to checks
Introduced a `retries` field in multiple resource checks to define the number of retries before marking a check as down. Updated both the schema definitions and corresponding documentation to support this change. This ensures enhanced flexibility and robustness in monitoring configurations.
1 parent 7e77703 commit fa1e4a2

20 files changed

+73
-0
lines changed

bin/terraform-provider-rmon

49.3 KB
Binary file not shown.

docs/resources/check_dns.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ resource "rmon_check_dns" "example" {
5252
- `description` (String) Description of the CheckDns.
5353
- `enabled` (Boolean) Enabled state of the Check DNS.
5454
- `interval` (Number) Interval in seconds between checks.
55+
- `retries`: (Number) Number of retries before check is marked down.
5556
- `ip` (String) IP address or domain name for check.
5657
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
5758
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.

docs/resources/check_http.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ EOF
6060
- `header_req` (String) Send headers to server. In JSON.
6161
- `ignore_ssl_error` (Boolean) Ignore TLS/SSL error.
6262
- `interval` (Number) Interval in seconds between checks.
63+
- `retries`: (Number) Number of retries before check is marked down.
6364
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
6465
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
6566
- `slack_channel_id` (Number) Slack channel ID for alerts.

docs/resources/check_ping.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ resource "rmon_check_ping" "example" {
4949
- `description` (String) Description of the Check Ping.
5050
- `enabled` (Boolean) Enabled state of the Check Ping.
5151
- `interval` (Number) Interval in seconds between checks.
52+
- `retries`: (Number) Number of retries before check is marked down.
5253
- `ip` (String) IP address or domain name for Ping check.
5354
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
5455
- `packet_size` (Number) Packet size in bytes.

docs/resources/check_rabbitmq.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ resource "rmon_check_rabbitmq" "example" {
5656
- `description` (String) Description of the Check RabbitMQ.
5757
- `enabled` (Boolean) Enabled state of the Check RabbitMQ.
5858
- `interval` (Number) Interval in seconds between checks.
59+
- `retries`: (Number) Number of retries before check is marked down.
5960
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
6061
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
6162
- `port` (Number) RabbitMQ server port.

docs/resources/check_smtp.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ resource "rmon_check_smtp" "example" {
5656
- `enabled` (Boolean) Enabled state of the Check SMTP.
5757
- `ignore_ssl_error` (Boolean) Ignore TLS/SSL error.
5858
- `interval` (Number) Interval in seconds between checks.
59+
- `retries`: (Number) Number of retries before check is marked down.
5960
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
6061
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.
6162
- `port` (Number) SMTP server port.

docs/resources/check_tcp.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ resource "rmon_check_tcp" "example" {
5151
- `check_timeout` (Number) Answer timeout in seconds.
5252
- `description` (String) Description of the Check TCP.
5353
- `enabled` (Boolean) Enabled state of the Check TCP.
54+
- `retries`: (Number) Number of retries before check is marked down.
5455
- `interval` (Number) Interval in seconds between checks.
5556
- `mm_channel_id` (Number) Mattermost channel ID for alerts.
5657
- `pd_channel_id` (Number) PagerDuty channel ID for alerts.

rmon/check_fields.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ const (
2222
UrlField = "url"
2323
UserNameField = "username"
2424
VhostField = "vhost"
25+
RetriesField = "retries"
2526
)

rmon/resource_rmon_check_dns.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@ func resourceCheckDns() *schema.Resource {
134134
"txt",
135135
}, false),
136136
},
137+
RetriesField: {
138+
Type: schema.TypeInt,
139+
Optional: true,
140+
Description: "Number of retries before check is marked down.",
141+
ValidateFunc: validation.IntAtLeast(0),
142+
Default: 3,
143+
},
137144
},
138145
}
139146
}
@@ -162,6 +169,7 @@ func resourceCheckDnsCreate(ctx context.Context, d *schema.ResourceData, m inter
162169
IPField: d.Get(IPField),
163170
ResolverField: d.Get(ResolverField),
164171
RecordTypeField: d.Get(RecordTypeField),
172+
RetriesField: d.Get(RetriesField).(int),
165173
}
166174

167175
resp, err := client.doRequest("POST", "/api/v1.0/rmon/check/dns", server)
@@ -220,6 +228,7 @@ func resourceCheckDnsRead(ctx context.Context, d *schema.ResourceData, m interfa
220228
d.Set(IPField, result[IPField])
221229
d.Set(ResolverField, result[ResolverField])
222230
d.Set(RecordTypeField, result[RecordTypeField])
231+
d.Set(RetriesField, result[RetriesField])
223232

224233
return nil
225234
}
@@ -249,6 +258,7 @@ func resourceCheckDnsUpdate(ctx context.Context, d *schema.ResourceData, m inter
249258
IPField: d.Get(IPField),
250259
ResolverField: d.Get(ResolverField),
251260
RecordTypeField: d.Get(RecordTypeField),
261+
RetriesField: d.Get(RetriesField).(int),
252262
}
253263

254264
_, err := client.doRequest("PUT", fmt.Sprintf("/api/v1.0/rmon/check/dns/%s", id), server)

rmon/resource_rmon_check_http.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,13 @@ func resourceCheckHttp() *schema.Resource {
148148
Description: "Send headers to server. In JSON.",
149149
ValidateFunc: validation.StringIsJSON,
150150
},
151+
RetriesField: {
152+
Type: schema.TypeInt,
153+
Optional: true,
154+
Description: "Number of retries before check is marked down.",
155+
ValidateFunc: validation.IntAtLeast(0),
156+
Default: 3,
157+
},
151158
},
152159
}
153160
}
@@ -179,6 +186,7 @@ func resourceCheckHttpCreate(ctx context.Context, d *schema.ResourceData, m inte
179186
BodyField: d.Get(BodyField),
180187
BodyRequestField: d.Get(BodyRequestField),
181188
HeaderRequestField: d.Get(HeaderRequestField),
189+
RetriesField: d.Get(RetriesField).(int),
182190
}
183191

184192
resp, err := client.doRequest("POST", "/api/v1.0/rmon/check/http", server)
@@ -240,6 +248,7 @@ func resourceCheckHttpRead(ctx context.Context, d *schema.ResourceData, m interf
240248
d.Set(BodyField, result[BodyField])
241249
d.Set(BodyRequestField, result[BodyRequestField])
242250
d.Set(HeaderRequestField, result[HeaderRequestField])
251+
d.Set(RetriesField, result[RetriesField])
243252

244253
return nil
245254
}
@@ -272,6 +281,7 @@ func resourceCheckHttpUpdate(ctx context.Context, d *schema.ResourceData, m inte
272281
BodyField: d.Get(BodyField),
273282
BodyRequestField: d.Get(BodyRequestField),
274283
HeaderRequestField: d.Get(HeaderRequestField),
284+
RetriesField: d.Get(RetriesField).(int),
275285
}
276286

277287
if d.HasChange(PortField) {

0 commit comments

Comments
 (0)