diff --git a/mongodbatlas/fw_resource_mongodbatlas_database_user.go b/mongodbatlas/fw_resource_mongodbatlas_database_user.go index f7806fa6d2..d04bc2180f 100644 --- a/mongodbatlas/fw_resource_mongodbatlas_database_user.go +++ b/mongodbatlas/fw_resource_mongodbatlas_database_user.go @@ -3,7 +3,6 @@ package mongodbatlas import ( "context" "errors" - "fmt" "net/http" "regexp" @@ -391,9 +390,14 @@ func newTFDatabaseUserModel(ctx context.Context, model *tfDatabaseUserModel, dbU return nil, diagnostic } - id := fmt.Sprintf("%s-%s-%s", dbUser.GroupID, dbUser.Username, dbUser.DatabaseName) + // ID is encoded to preserve format defined in previous versions. + encodedID := encodeStateID(map[string]string{ + "project_id": dbUser.GroupID, + "username": dbUser.Username, + "auth_database_name": dbUser.DatabaseName, + }) databaseUserModel := &tfDatabaseUserModel{ - ID: types.StringValue(id), + ID: types.StringValue(encodedID), ProjectID: types.StringValue(dbUser.GroupID), AuthDatabaseName: types.StringValue(dbUser.DatabaseName), Username: types.StringValue(dbUser.Username), diff --git a/mongodbatlas/fw_resource_mongodbatlas_database_user_test.go b/mongodbatlas/fw_resource_mongodbatlas_database_user_test.go index 408083c510..d7b7dab857 100644 --- a/mongodbatlas/fw_resource_mongodbatlas_database_user_test.go +++ b/mongodbatlas/fw_resource_mongodbatlas_database_user_test.go @@ -600,12 +600,9 @@ func testAccCheckMongoDBAtlasDatabaseUserImportStateIDFunc(resourceName string) return "", fmt.Errorf("not found: %s", resourceName) } - projectID, username, authDatabaseName, err := splitDatabaseUserImportID(rs.Primary.ID) - if err != nil { - return "", fmt.Errorf("error splitting database User info from ID: %s", rs.Primary.ID) - } + ids := decodeStateID(rs.Primary.ID) - return fmt.Sprintf("%s-%s-%s", projectID, username, authDatabaseName), nil + return fmt.Sprintf("%s-%s-%s", ids["project_id"], ids["username"], ids["auth_database_name"]), nil } }