Skip to content

Commit 4323b27

Browse files
Terraform Team Automationjotruon
authored andcommitted
Bug Fix - oci_mysql_mysql_configuration is missing resource discovery
1 parent 1b331bd commit 4323b27

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

internal/integrationtest/mysql_mysql_configuration_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ func TestMysqlMysqlConfigurationResource_basic(t *testing.T) {
293293

294294
func(s *terraform.State) (err error) {
295295
resId, err = acctest.FromInstanceState(s, resourceName, "id")
296+
// Test case to ensure resource discovery works properly
296297
if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
297298
if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
298299
return errExport

internal/service/mysql/mysql_export.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
)
88

99
func init() {
10+
exportMysqlMysqlConfigurationHints.RequireResourceRefresh = true
11+
exportMysqlMysqlConfigurationHints.ProcessDiscoveredResourcesFn = filterMysqlConfigurations
1012
exportMysqlMysqlBackupHints.RequireResourceRefresh = true
1113
exportMysqlMysqlBackupHints.ProcessDiscoveredResourcesFn = filterMysqlBackups
1214
exportMysqlMysqlDbSystemHints.ProcessDiscoveredResourcesFn = processMysqlDbSystem
@@ -49,7 +51,37 @@ func processMysqlDbSystem(ctx *tf_export.ResourceDiscoveryContext, resources []*
4951
return resources, nil
5052
}
5153

54+
// exclude default configurations
55+
func filterMysqlConfigurations(ctx *tf_export.ResourceDiscoveryContext, resources []*tf_export.OCIResource) ([]*tf_export.OCIResource, error) {
56+
results := []*tf_export.OCIResource{}
57+
58+
// Filter out Mysql Backups that are automatically created. We cannot operate on "Automatic" backups.
59+
for _, configuration := range resources {
60+
configurationType, exists := configuration.SourceAttributes["type"]
61+
62+
if exists && configurationType.(string) == "DEFAULT" {
63+
continue
64+
}
65+
66+
results = append(results, configuration)
67+
}
68+
69+
return results, nil
70+
}
71+
5272
// Hints for discovering and exporting this resource to configuration and state files
73+
74+
var exportMysqlMysqlConfigurationHints = &tf_export.TerraformResourceHints{
75+
ResourceClass: "oci_mysql_mysql_configuration",
76+
DatasourceClass: "oci_mysql_mysql_configurations",
77+
DatasourceItemsAttr: "configurations",
78+
ResourceAbbreviation: "mysql_configuration",
79+
RequireResourceRefresh: true,
80+
DiscoverableLifecycleStates: []string{
81+
string(oci_mysql.ConfigurationLifecycleStateActive),
82+
},
83+
}
84+
5385
var exportMysqlHeatWaveClusterHints = &tf_export.TerraformResourceHints{
5486
ResourceClass: "oci_mysql_heat_wave_cluster",
5587
DatasourceClass: "oci_mysql_heat_wave_cluster",
@@ -94,6 +126,7 @@ var exportMysqlChannelHints = &tf_export.TerraformResourceHints{
94126

95127
var mysqlResourceGraph = tf_export.TerraformResourceGraph{
96128
"oci_identity_compartment": {
129+
{TerraformResourceHints: exportMysqlMysqlConfigurationHints},
97130
{TerraformResourceHints: exportMysqlMysqlBackupHints},
98131
{TerraformResourceHints: exportMysqlMysqlDbSystemHints},
99132
{TerraformResourceHints: exportMysqlChannelHints},

website/docs/guides/resource_discovery.html.markdown

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,8 @@ monitoring
758758
* oci\_monitoring\_alarm
759759

760760
mysql
761-
761+
762+
* oci\_mysql\_mysql\_configuration
762763
* oci\_mysql\_heat\_wave\_cluster
763764
* oci\_mysql\_mysql\_backup
764765
* oci\_mysql\_mysql\_db\_system

0 commit comments

Comments
 (0)