Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
1f746b4
Revert "Add version validation (#5791)"
Dec 9, 2024
3f9bd32
Merge remote-tracking branch 'upstream/master'
Dec 10, 2024
4390282
Merge remote-tracking branch 'upstream/master'
Dec 12, 2024
636109d
Merge remote-tracking branch 'upstream/master'
Feb 10, 2025
4d04e19
Merge remote-tracking branch 'upstream/master'
Feb 17, 2025
288cb25
Merge remote-tracking branch 'upstream/master'
Mar 25, 2025
0228024
Merge remote-tracking branch 'upstream/master'
Apr 23, 2025
afd8519
Merge remote-tracking branch 'upstream/master'
May 7, 2025
084160d
Merge remote-tracking branch 'upstream/master'
Jun 5, 2025
248d0a9
Merge remote-tracking branch 'upstream/master'
Jun 6, 2025
67fa34e
Merge remote-tracking branch 'upstream/master'
Jun 9, 2025
5019c3d
Merge remote-tracking branch 'upstream/master'
Jun 12, 2025
93b840a
Merge remote-tracking branch 'upstream/master'
Jun 13, 2025
acdf31b
Merge remote-tracking branch 'upstream/master'
Jun 16, 2025
71bb105
Merge remote-tracking branch 'upstream/master'
Jun 24, 2025
db5c91e
Merge remote-tracking branch 'upstream/master'
Jun 26, 2025
14a4c83
Merge remote-tracking branch 'upstream/master'
Jul 3, 2025
bc12c2c
Merge remote-tracking branch 'upstream/master'
Jul 8, 2025
c8ea1fd
Merge remote-tracking branch 'upstream/master'
Jul 16, 2025
ffcebaf
Merge remote-tracking branch 'upstream/master'
Jul 28, 2025
5d733db
Merge remote-tracking branch 'upstream/master'
Sep 11, 2025
11d29d3
Merge remote-tracking branch 'upstream/master'
Oct 9, 2025
9e01f8d
Include hidden and beta to fetch version capability endpoint
Oct 8, 2025
ce7fbaa
Add hidden and beta optional params
Oct 9, 2025
9c9a5e7
Update test
Oct 10, 2025
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
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Expand Down
22 changes: 19 additions & 3 deletions ibm/service/database/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {
Expand Down
14 changes: 7 additions & 7 deletions ibm/service/database/resource_ibm_database_mongodb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
},
Expand Down Expand Up @@ -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"
Expand All @@ -205,15 +205,15 @@ func testAccCheckIBMDatabaseInstanceMongodbVersion6(databaseResourceGroup string
service = "databases-for-mongodb"
plan = "standard"
location = "%[3]s"
version = "6.0"
version = "7.0"
service_endpoints = "private"

}
`, databaseResourceGroup, name, acc.Region())
}

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"
Expand All @@ -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"
}
Expand Down
10 changes: 9 additions & 1 deletion ibm/service/database/validators.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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)
}
Expand Down
15 changes: 11 additions & 4 deletions ibm/service/database/validators_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
{
Expand Down Expand Up @@ -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{
{
Expand All @@ -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
}{
{
Expand Down Expand Up @@ -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])
}
Expand Down
Loading