@@ -24,7 +24,7 @@ func TestAccRedisCluster_createClusterWithNodeType(t *testing.T) {
24
24
Steps: []resource.TestStep{
25
25
{
26
26
// create cluster with replica count 1
27
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, nodeType: "REDIS_STANDARD_SMALL", zoneDistributionMode: "MULTI_ZONE"}),
27
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, nodeType: "REDIS_STANDARD_SMALL", zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "TUESDAY", maintenanceHours: 2, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
28
28
},
29
29
{
30
30
ResourceName: "google_redis_cluster.test",
@@ -34,7 +34,7 @@ func TestAccRedisCluster_createClusterWithNodeType(t *testing.T) {
34
34
},
35
35
{
36
36
// clean up the resource
37
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: false, nodeType: "REDIS_STANDARD_SMALL", zoneDistributionMode: "MULTI_ZONE"}),
37
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: false, nodeType: "REDIS_STANDARD_SMALL", zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "TUESDAY", maintenanceHours: 2, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
38
38
},
39
39
},
40
40
})
@@ -83,7 +83,7 @@ func TestAccRedisCluster_updateReplicaCount(t *testing.T) {
83
83
Steps: []resource.TestStep{
84
84
{
85
85
// create cluster with replica count 1
86
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE"}),
86
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
87
87
},
88
88
{
89
89
ResourceName: "google_redis_cluster.test",
@@ -93,7 +93,7 @@ func TestAccRedisCluster_updateReplicaCount(t *testing.T) {
93
93
},
94
94
{
95
95
// update replica count to 2
96
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 2, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE"}),
96
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 2, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
97
97
},
98
98
{
99
99
ResourceName: "google_redis_cluster.test",
@@ -103,7 +103,7 @@ func TestAccRedisCluster_updateReplicaCount(t *testing.T) {
103
103
},
104
104
{
105
105
// update replica count to 0
106
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 0, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE"}),
106
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 0, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
107
107
},
108
108
{
109
109
ResourceName: "google_redis_cluster.test",
@@ -113,7 +113,7 @@ func TestAccRedisCluster_updateReplicaCount(t *testing.T) {
113
113
},
114
114
{
115
115
// clean up the resource
116
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 0, shardCount: 3, deletionProtectionEnabled: false, zoneDistributionMode: "MULTI_ZONE"}),
116
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 0, shardCount: 3, deletionProtectionEnabled: false, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
117
117
},
118
118
},
119
119
})
@@ -132,7 +132,7 @@ func TestAccRedisCluster_updateShardCount(t *testing.T) {
132
132
Steps: []resource.TestStep{
133
133
{
134
134
// create cluster with shard count 3
135
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE"}),
135
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 3, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
136
136
},
137
137
{
138
138
ResourceName: "google_redis_cluster.test",
@@ -142,7 +142,7 @@ func TestAccRedisCluster_updateShardCount(t *testing.T) {
142
142
},
143
143
{
144
144
// update shard count to 5
145
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 5, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE"}),
145
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 5, deletionProtectionEnabled: true, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
146
146
},
147
147
{
148
148
ResourceName: "google_redis_cluster.test",
@@ -152,7 +152,7 @@ func TestAccRedisCluster_updateShardCount(t *testing.T) {
152
152
},
153
153
{
154
154
// clean up the resource
155
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 5, deletionProtectionEnabled: false, zoneDistributionMode: "MULTI_ZONE"}),
155
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, replicaCount: 1, shardCount: 5, deletionProtectionEnabled: false, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
156
156
},
157
157
},
158
158
})
@@ -175,6 +175,11 @@ func TestAccRedisCluster_updateRedisConfigs(t *testing.T) {
175
175
name: name,
176
176
shardCount: 3,
177
177
zoneDistributionMode: "MULTI_ZONE",
178
+ maintenanceDay: "MONDAY",
179
+ maintenanceHours: 1,
180
+ maintenanceMinutes: 0,
181
+ maintenanceSeconds: 0,
182
+ maintenanceNanos: 0,
178
183
redisConfigs: map[string]string{
179
184
"maxmemory-policy": "volatile-ttl",
180
185
}}),
@@ -191,6 +196,11 @@ func TestAccRedisCluster_updateRedisConfigs(t *testing.T) {
191
196
name: name,
192
197
shardCount: 3,
193
198
zoneDistributionMode: "MULTI_ZONE",
199
+ maintenanceDay: "MONDAY",
200
+ maintenanceHours: 1,
201
+ maintenanceMinutes: 0,
202
+ maintenanceSeconds: 0,
203
+ maintenanceNanos: 0,
194
204
redisConfigs: map[string]string{
195
205
"maxmemory-policy": "allkeys-lru",
196
206
"maxmemory-clients": "90%",
@@ -204,7 +214,7 @@ func TestAccRedisCluster_updateRedisConfigs(t *testing.T) {
204
214
},
205
215
{
206
216
// remove all redis configs
207
- Config: createOrUpdateRedisCluster(&ClusterParams{name: name, shardCount: 3, zoneDistributionMode: "MULTI_ZONE"}),
217
+ Config: createOrUpdateRedisCluster(&ClusterParams{name: name, shardCount: 3, zoneDistributionMode: "MULTI_ZONE", maintenanceDay: "MONDAY", maintenanceHours: 1, maintenanceMinutes: 0, maintenanceSeconds: 0, maintenanceNanos: 0 }),
208
218
},
209
219
210
220
},
@@ -260,6 +270,11 @@ type ClusterParams struct {
260
270
redisConfigs map[string]string
261
271
zoneDistributionMode string
262
272
zone string
273
+ maintenanceDay string
274
+ maintenanceHours int
275
+ maintenanceMinutes int
276
+ maintenanceSeconds int
277
+ maintenanceNanos int
263
278
}
264
279
265
280
func createOrUpdateRedisCluster(params *ClusterParams) string {
@@ -278,6 +293,23 @@ func createOrUpdateRedisCluster(params *ClusterParams) string {
278
293
`, params.zoneDistributionMode, params.zone)
279
294
}
280
295
296
+ maintenancePolicyBlock := ``
297
+ if params.maintenanceDay != "" {
298
+ maintenancePolicyBlock = fmt.Sprintf(`
299
+ maintenance_policy {
300
+ weekly_maintenance_window {
301
+ day = "%s"
302
+ start_time {
303
+ hours = %d
304
+ minutes = %d
305
+ seconds = %d
306
+ nanos = %d
307
+ }
308
+ }
309
+ }
310
+ `, params.maintenanceDay, params.maintenanceHours, params.maintenanceMinutes, params.maintenanceSeconds, params.maintenanceNanos)
311
+ }
312
+
281
313
return fmt.Sprintf(`
282
314
resource "google_redis_cluster" "test" {
283
315
provider = google-beta
@@ -293,6 +325,7 @@ resource "google_redis_cluster" "test" {
293
325
redis_configs = {
294
326
%s
295
327
}
328
+ %s
296
329
%s
297
330
depends_on = [
298
331
google_network_connectivity_service_connection_policy.default
@@ -324,7 +357,7 @@ resource "google_compute_network" "producer_net" {
324
357
name = "%s"
325
358
auto_create_subnetworks = false
326
359
}
327
- `, params.name, params.replicaCount, params.shardCount, params.nodeType, params.deletionProtectionEnabled, strBuilder.String(), zoneDistributionConfigBlock, params.name, params.name, params.name)
360
+ `, params.name, params.replicaCount, params.shardCount, params.nodeType, params.deletionProtectionEnabled, strBuilder.String(), zoneDistributionConfigBlock, maintenancePolicyBlock, params.name, params.name, params.name)
328
361
}
329
362
330
363
<% end -%>
0 commit comments