Skip to content

Commit

Permalink
Removing redis version validation (#522)
Browse files Browse the repository at this point in the history
* Added some comments to explain the difference between public data-source/resource names and the files/method names

* Removed redis_version validation and (hopefully) sped up the related test
  • Loading branch information
JohnSharpe authored Jun 11, 2024
1 parent 3dd231b commit d1047e3
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 28 deletions.
2 changes: 1 addition & 1 deletion docs/resources/rediscloud_active_active_subscription.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ The following arguments are supported:
* `payment_method` (Optional) The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **(Changes to) this attribute are ignored after creation.**
* `payment_method_id` - (Optional) A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types
* `cloud_provider` - (Optional) The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**
* `redis_version` - (Optional) Either 'default' or 'latest'. If specified, the Redis Version defines the cluster version. Default: 'default'. **Modifying this attribute will force creation of a new resource.**
* `redis_version` - (Optional) If specified, the Redis Version defines the cluster version. **Modifying this attribute will force creation of a new resource.**
* `creation_plan` - (Required) A creation plan object, documented below. Ignored after creation.

The `creation_plan` block supports:
Expand Down
2 changes: 1 addition & 1 deletion docs/resources/rediscloud_subscription.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ The following arguments are supported:
* `payment_method` (Optional) The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **(Changes to) this attribute are ignored after creation.**
* `payment_method_id` - (Optional) A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types
* `memory_storage` - (Optional) Memory storage preference: either ‘ram’ or a combination of ‘ram-and-flash’. Default: ‘ram’. **Modifying this attribute will force creation of a new resource.**
* `redis_version` - (Optional) Either 'default' or 'latest'. If specified, the Redis Version defines the cluster version. Default: 'default'. **Modifying this attribute will force creation of a new resource.**
* `redis_version` - (Optional) If specified, the Redis Version defines the cluster version. **Modifying this attribute will force creation of a new resource.**
* `allowlist` - (Optional) An allowlist object, documented below
* `cloud_provider` - (Required) A cloud provider object, documented below. **Modifying this attribute will force creation of a new resource.**
* `creation_plan` - (Required) A creation plan object, documented below
Expand Down
47 changes: 28 additions & 19 deletions provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,40 @@ func New(version string) func() *schema.Provider {
},
},
DataSourcesMap: map[string]*schema.Resource{
"rediscloud_cloud_account": dataSourceRedisCloudCloudAccount(),
"rediscloud_data_persistence": dataSourceRedisCloudDataPersistence(),
"rediscloud_subscription": dataSourceRedisCloudProSubscription(),
"rediscloud_database": dataSourceRedisCloudProDatabase(),
"rediscloud_database_modules": dataSourceRedisCloudDatabaseModules(),
"rediscloud_payment_method": dataSourceRedisCloudPaymentMethod(),
"rediscloud_regions": dataSourceRedisCloudRegions(),
"rediscloud_essentials_plan": dataSourceRedisCloudEssentialsPlan(),
"rediscloud_essentials_subscription": dataSourceRedisCloudEssentialsSubscription(),
"rediscloud_essentials_database": dataSourceRedisCloudEssentialsDatabase(),
"rediscloud_subscription_peerings": dataSourceRedisCloudSubscriptionPeerings(),
"rediscloud_active_active_subscription": dataSourceRedisCloudActiveActiveSubscription(),
"rediscloud_cloud_account": dataSourceRedisCloudCloudAccount(),
"rediscloud_data_persistence": dataSourceRedisCloudDataPersistence(),
// Note the difference in public data-source name and the file/method name.
// This is to help the developer relate their changes to what they would see happening in the Redis Console.
// <default> == flexible == pro
"rediscloud_subscription": dataSourceRedisCloudProSubscription(),
"rediscloud_database": dataSourceRedisCloudProDatabase(),
"rediscloud_database_modules": dataSourceRedisCloudDatabaseModules(),
"rediscloud_payment_method": dataSourceRedisCloudPaymentMethod(),
"rediscloud_regions": dataSourceRedisCloudRegions(),
"rediscloud_essentials_plan": dataSourceRedisCloudEssentialsPlan(),
"rediscloud_essentials_subscription": dataSourceRedisCloudEssentialsSubscription(),
"rediscloud_essentials_database": dataSourceRedisCloudEssentialsDatabase(),
"rediscloud_subscription_peerings": dataSourceRedisCloudSubscriptionPeerings(),
"rediscloud_active_active_subscription": dataSourceRedisCloudActiveActiveSubscription(),
// Note the difference in public data-source name and the file/method name.
// active_active_subscription_database == active_active_database
"rediscloud_active_active_subscription_database": dataSourceRedisCloudActiveActiveDatabase(),
"rediscloud_acl_rule": dataSourceRedisCloudAclRule(),
"rediscloud_acl_role": dataSourceRedisCloudAclRole(),
"rediscloud_acl_user": dataSourceRedisCloudAclUser(),
},
ResourcesMap: map[string]*schema.Resource{
"rediscloud_cloud_account": resourceRedisCloudCloudAccount(),
"rediscloud_essentials_subscription": resourceRedisCloudEssentialsSubscription(),
"rediscloud_essentials_database": resourceRedisCloudEssentialsDatabase(),
"rediscloud_subscription": resourceRedisCloudProSubscription(),
"rediscloud_subscription_database": resourceRedisCloudProDatabase(),
"rediscloud_subscription_peering": resourceRedisCloudSubscriptionPeering(),
"rediscloud_active_active_subscription": resourceRedisCloudActiveActiveSubscription(),
"rediscloud_cloud_account": resourceRedisCloudCloudAccount(),
"rediscloud_essentials_subscription": resourceRedisCloudEssentialsSubscription(),
"rediscloud_essentials_database": resourceRedisCloudEssentialsDatabase(),
// Note the difference in public resource name and the file/method name.
// <default> == flexible == pro
"rediscloud_subscription": resourceRedisCloudProSubscription(),
"rediscloud_subscription_database": resourceRedisCloudProDatabase(),
"rediscloud_subscription_peering": resourceRedisCloudSubscriptionPeering(),
"rediscloud_active_active_subscription": resourceRedisCloudActiveActiveSubscription(),
// Note the difference in public resource name and the file/method name.
// active_active_subscription_database == active_active_database
"rediscloud_active_active_subscription_database": resourceRedisCloudActiveActiveDatabase(),
"rediscloud_active_active_subscription_regions": resourceRedisCloudActiveActiveSubscriptionRegions(),
"rediscloud_active_active_subscription_peering": resourceRedisCloudActiveActiveSubscriptionPeering(),
Expand Down
4 changes: 1 addition & 3 deletions provider/resource_rediscloud_active_active_subscription.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func resourceRedisCloudActiveActiveSubscription() *schema.Resource {
},
},
"redis_version": {
Description: "Version of Redis to create, either 'default' or 'latest'. Defaults to 'default'",
Description: "Version of Redis to create",
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Expand All @@ -176,8 +176,6 @@ func resourceRedisCloudActiveActiveSubscription() *schema.Resource {

return true
},
ValidateDiagFunc: validation.ToDiagFunc(
validation.StringMatch(regexp.MustCompile("^(default|latest)$"), "must be 'default' or 'latest'")),
},
"pricing": {
Description: "Pricing details totalled over this Subscription",
Expand Down
4 changes: 1 addition & 3 deletions provider/resource_rediscloud_pro_subscription.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ func resourceRedisCloudProSubscription() *schema.Resource {
},
},
"redis_version": {
Description: "Version of Redis to create, either 'default' or 'latest'. Defaults to 'default'",
Description: "Version of Redis to create",
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Expand All @@ -313,8 +313,6 @@ func resourceRedisCloudProSubscription() *schema.Resource {

return true
},
ValidateDiagFunc: validation.ToDiagFunc(
validation.StringMatch(regexp.MustCompile("^(default|latest)$"), "must be 'default' or 'latest'")),
},
"pricing": {
Description: "Pricing details totalled over this Subscription",
Expand Down
1 change: 0 additions & 1 deletion provider/resource_rediscloud_pro_subscription_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,6 @@ func TestAccResourceRedisCloudProSubscription_RedisVersion(t *testing.T) {
),
},
{
Config: fmt.Sprintf(testAccResourceRedisCloudProSubscriptionWithRedisVersion, testCloudAccountName, name, ""),
ResourceName: "rediscloud_subscription.test",
ImportState: true,
ImportStateVerify: true,
Expand Down

0 comments on commit d1047e3

Please sign in to comment.