diff --git a/go.mod b/go.mod index ef81411ff7..d580649ac2 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/IBM-Cloud/power-go-client v1.13.0 github.com/IBM/appconfiguration-go-admin-sdk v0.5.1 github.com/IBM/appid-management-go-sdk v0.0.0-20210908164609-dd0e0eaf732f - github.com/IBM/cloud-databases-go-sdk v0.8.0 + github.com/IBM/cloud-databases-go-sdk v0.8.1 github.com/IBM/cloud-db2-go-sdk v0.2.4 github.com/IBM/cloudant-go-sdk v0.8.0 github.com/IBM/code-engine-go-sdk v0.0.0-20241217191651-e1821f8c58c3 diff --git a/go.sum b/go.sum index c4bb807946..a4ff2ae689 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/IBM/appconfiguration-go-admin-sdk v0.5.1 h1:EAotl3yQ/u5u/uBryySJMm0CO github.com/IBM/appconfiguration-go-admin-sdk v0.5.1/go.mod h1:ikqhyFenxA/QgGh4vItBNjPes0NcI+teRof+z7pzLYM= github.com/IBM/appid-management-go-sdk v0.0.0-20210908164609-dd0e0eaf732f h1:4c1kqY4GqmkQ+tO03rneDb74Tv7BhTj8jDiDB1p8mdM= github.com/IBM/appid-management-go-sdk v0.0.0-20210908164609-dd0e0eaf732f/go.mod h1:d22kTYY7RYBWcQlZpqrSdshpB/lJ16viWS5Sbjtlc8s= -github.com/IBM/cloud-databases-go-sdk v0.8.0 h1:uMFqhnc/roVTzfCaUsJ23eaHKjChhGpM1F7Mpxik0bo= -github.com/IBM/cloud-databases-go-sdk v0.8.0/go.mod h1:JYucI1PdwqbAd8XGdDAchxzxRP7bxOh1zUnseovHKsc= +github.com/IBM/cloud-databases-go-sdk v0.8.1 h1:ULQ5L8V/9z79/qS185LqbIK2LD4kMtk3Hdhp4lFMVcw= +github.com/IBM/cloud-databases-go-sdk v0.8.1/go.mod h1:JYucI1PdwqbAd8XGdDAchxzxRP7bxOh1zUnseovHKsc= github.com/IBM/cloud-db2-go-sdk v0.2.4 h1:kCiFoKav2FVrZqukoSAp0ivH8xBZDYipFBNkiyAXDw0= github.com/IBM/cloud-db2-go-sdk v0.2.4/go.mod h1:U1E6eRDEL5zWTE+aP9zWRC1DyaXB29a0kkTvhlCT9Wc= github.com/IBM/cloudant-go-sdk v0.8.0 h1:XzaqZFy5fm1Q9+iK52X5zRW39SHaahT9pf5SRgVTsTY= diff --git a/ibm/service/database/deployment.go b/ibm/service/database/deployment.go index 220b66e317..9039d39c80 100644 --- a/ibm/service/database/deployment.go +++ b/ibm/service/database/deployment.go @@ -15,7 +15,14 @@ import ( TODO Move other deployment api endpoints in here */ -func getDeploymentCapability(capabilityId string, deploymentId string, platform string, location string, meta interface{}) (*clouddatabasesv5.Capability, error) { +type DeploymentCapabilityOptions struct { + Platform string + Location string + IncludeHidden *bool + IncludeBeta *bool +} + +func getDeploymentCapability(capabilityId string, deploymentId string, options DeploymentCapabilityOptions, meta interface{}) (*clouddatabasesv5.Capability, error) { cloudDatabasesClient, err := meta.(conns.ClientSession).CloudDatabasesV5() if err != nil { return nil, err @@ -24,9 +31,18 @@ func getDeploymentCapability(capabilityId string, deploymentId string, platform getDeploymentCapabilityOptions := &clouddatabasesv5.GetDeploymentCapabilityOptions{ ID: core.StringPtr(deploymentId), CapabilityID: core.StringPtr(capabilityId), - TargetPlatform: core.StringPtr(fmt.Sprintf("target_platform=%s", platform)), - TargetLocation: core.StringPtr(fmt.Sprintf("target_location=%s", location)), + TargetPlatform: core.StringPtr(fmt.Sprintf("target_platform=%s", options.Platform)), + TargetLocation: core.StringPtr(fmt.Sprintf("target_location=%s", options.Location)), + } + + if options.IncludeHidden != nil { + getDeploymentCapabilityOptions.IncludeHidden = core.BoolPtr(*options.IncludeHidden) } + + if options.IncludeBeta != nil { + getDeploymentCapabilityOptions.IncludeBeta = core.BoolPtr(*options.IncludeBeta) + } + getDeploymentCapabilityResponse, response, err := cloudDatabasesClient.GetDeploymentCapability(getDeploymentCapabilityOptions) if getDeploymentCapabilityResponse == nil || getDeploymentCapabilityResponse.Capability == nil { diff --git a/ibm/service/database/resource_ibm_database_mongodb_test.go b/ibm/service/database/resource_ibm_database_mongodb_test.go index ee4aa05352..ff2c2a26a7 100644 --- a/ibm/service/database/resource_ibm_database_mongodb_test.go +++ b/ibm/service/database/resource_ibm_database_mongodb_test.go @@ -115,7 +115,7 @@ func TestAccIBMDatabaseInstanceMongodbImport(t *testing.T) { } func TestAccIBMDatabaseInstanceMongodbUpgrade(t *testing.T) { - // IMPORTANT NOTE: The version in testAccCheckIBMDatabaseInstanceMongodbVersionUpgrade will have to be updated when versions deprecate etc. Currently mongo standard can only upgrade to version 7.0 + // IMPORTANT NOTE: The version in testAccCheckIBMDatabaseInstanceMongodbVersionUpgrade will have to be updated when versions deprecate etc. Currently mongo standard can only upgrade to version 8.0 t.Parallel() databaseResourceGroup := "default" var databaseInstanceOne string @@ -136,7 +136,7 @@ func TestAccIBMDatabaseInstanceMongodbUpgrade(t *testing.T) { resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "standard"), resource.TestCheckResourceAttr(name, "location", acc.Region()), - resource.TestCheckResourceAttr(name, "version", "6.0"), + resource.TestCheckResourceAttr(name, "version", "7.0"), ), }, { @@ -147,7 +147,7 @@ func TestAccIBMDatabaseInstanceMongodbUpgrade(t *testing.T) { resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "standard"), resource.TestCheckResourceAttr(name, "location", acc.Region()), - resource.TestCheckResourceAttr(name, "version", "7.0"), + resource.TestCheckResourceAttr(name, "version", "8.0"), ), }, }, @@ -193,7 +193,7 @@ func testAccCheckIBMDatabaseInstanceMongodbBasic(databaseResourceGroup string, n } func testAccCheckIBMDatabaseInstanceMongodbVersion6(databaseResourceGroup string, name string) string { - // IMPORTANT NOTE: The version will have to be updated when version 6 is no longer available. Currently mongo standard can only upgrade to version 7.0 + // IMPORTANT NOTE: The version will have to be updated when version 6 is no longer available. Currently mongo standard can only upgrade to version 8.0 return fmt.Sprintf(` data "ibm_resource_group" "test_acc" { name = "%[1]s" @@ -205,7 +205,7 @@ func testAccCheckIBMDatabaseInstanceMongodbVersion6(databaseResourceGroup string service = "databases-for-mongodb" plan = "standard" location = "%[3]s" - version = "6.0" + version = "7.0" service_endpoints = "private" } @@ -213,7 +213,7 @@ func testAccCheckIBMDatabaseInstanceMongodbVersion6(databaseResourceGroup string } func testAccCheckIBMDatabaseInstanceMongodbVersionUpgrade(databaseResourceGroup string, name string) string { - // IMPORTANT NOTE: The version will have to be updated when version 6.0 is no longer available. Currently mongo standard can only upgrade to version 7.0 + // IMPORTANT NOTE: The version will have to be updated when version 6.0 is no longer available. Currently mongo standard can only upgrade to version 8.0 return fmt.Sprintf(` data "ibm_resource_group" "test_acc" { name = "%[1]s" @@ -225,7 +225,7 @@ func testAccCheckIBMDatabaseInstanceMongodbVersionUpgrade(databaseResourceGroup service = "databases-for-mongodb" plan = "standard" location = "%[3]s" - version = "7.0" + version = "8.0" version_upgrade_skip_backup = true service_endpoints = "private" } diff --git a/ibm/service/database/validators.go b/ibm/service/database/validators.go index 1b9ecb1ef6..4ab96151e3 100644 --- a/ibm/service/database/validators.go +++ b/ibm/service/database/validators.go @@ -8,6 +8,7 @@ import ( "log" "github.com/IBM/cloud-databases-go-sdk/clouddatabasesv5" + "github.com/IBM/go-sdk-core/v5/core" ) /* TODO move other validators in here */ @@ -107,7 +108,14 @@ func (v *Version) getAllowedVersionsList() []string { var fetchDeploymentVersionFn = fetchDeploymentVersion func fetchDeploymentVersion(instanceId string, location string, meta interface{}) *Version { - capability, err := getDeploymentCapability(versions, instanceId, classicPlatform, location, meta) + options := DeploymentCapabilityOptions{ + Platform: classicPlatform, + Location: location, + IncludeHidden: core.BoolPtr(true), + IncludeBeta: core.BoolPtr(true), + } + + capability, err := getDeploymentCapability(versions, instanceId, options, meta) if err != nil { log.Fatalf("Error fetching deployment versions: %v", err) } diff --git a/ibm/service/database/validators_test.go b/ibm/service/database/validators_test.go index 5186c4e698..a3275154b6 100644 --- a/ibm/service/database/validators_test.go +++ b/ibm/service/database/validators_test.go @@ -240,7 +240,7 @@ func TestGetAllowedVersionsList(t *testing.T) { type MockMeta struct{} -func MockGetDeploymentCapability(capability string, instanceID string, platform string, location string, meta interface{}) (*clouddatabasesv5.Capability, error) { +func MockGetDeploymentCapability(capability string, instanceID string, options DeploymentCapabilityOptions, meta interface{}) (*clouddatabasesv5.Capability, error) { return &clouddatabasesv5.Capability{ Versions: []clouddatabasesv5.VersionsCapabilityItem{ { @@ -275,7 +275,7 @@ func MockGetDeploymentCapability(capability string, instanceID string, platform }, nil } -func MockGetDeploymentCapabilityNoTransitions(capability string, instanceID string, platform string, location string, meta interface{}) (*clouddatabasesv5.Capability, error) { +func MockGetDeploymentCapabilityNoTransitions(capability string, instanceID string, options DeploymentCapabilityOptions, meta interface{}) (*clouddatabasesv5.Capability, error) { return &clouddatabasesv5.Capability{ Versions: []clouddatabasesv5.VersionsCapabilityItem{ { @@ -297,7 +297,7 @@ func TestValidateVersion(t *testing.T) { oldVersion string upgradeVersion string skipBackup bool - mockCapabilityFunc func(capability string, instanceID string, platform string, location string, meta interface{}) (*clouddatabasesv5.Capability, error) + mockCapabilityFunc func(capability string, instanceID string, options DeploymentCapabilityOptions, meta interface{}) (*clouddatabasesv5.Capability, error) expectedError string }{ { @@ -348,7 +348,14 @@ func TestValidateVersion(t *testing.T) { for _, tc := range tests { t.Run(tc.description, func(t *testing.T) { fetchDeploymentVersionFn = func(instanceID string, location string, meta interface{}) *Version { - capability, err := tc.mockCapabilityFunc(versions, instanceID, classicPlatform, location, meta) + options := DeploymentCapabilityOptions{ + Platform: classicPlatform, + Location: location, + IncludeHidden: core.BoolPtr(true), + IncludeBeta: core.BoolPtr(true), + } + + capability, err := tc.mockCapabilityFunc(versions, instanceID, options, meta) require.NoError(t, err) return expandVersion(capability.Versions[0]) }