hashicorp / terraform-provider-awscc

Terraform AWS Cloud Control provider
https://registry.terraform.io/providers/hashicorp/awscc/latest/docs
Mozilla Public License 2.0
261 stars 120 forks source link

awscc_dms_data_provider DMS doesn't support aurora_postgresql database │ engine #1636

Open kstephensontm opened 6 months ago

kstephensontm commented 6 months ago

Community Note

Terraform CLI and Terraform AWS Cloud Control Provider Version

Affected Resource(s)

Terraform Configuration Files

Please include all Terraform configurations required to reproduce the bug. Bug reports without a functional reproduction may be closed without investigation.

# Copy-paste your Terraform configurations here - for large Terraform configs,
# please use a service like Dropbox and share a link to the ZIP file. For
# security, you can also encrypt the files using our GPG public key: https://keybase.io/hashicorp

Debug Output

Panic Output

resource "awscc_dms_data_provider" "dms_data_provider_target" { data_provider_name = "sc-postgresql2" engine = "aurora_postgresql" settings = { postgre_sql_settings = { database_name = "pssql" port = 5432 server_name = "postgres-default-1.blah.us-west-2.rds.amazonaws.com" ssl_mode = "none" } } }

│ Error: AWS SDK Go Service Operation Incomplete │ │ with awscc_dms_data_provider.dms_data_provider_target, │ on dms-schema-conversion.tf line 39, in resource "awscc_dms_data_provider" "dms_data_provider_target": │ 39: resource "awscc_dms_data_provider" "dms_data_provider_target" { │ │ Waiting for Cloud Control API service CreateResource operation completion returned: waiter │ state transitioned to FAILED. StatusMessage: DMS doesn't support aurora_postgresql database │ engine. Choose another database engine and try again. (Service: DatabaseMigration, Status │ Code: 400, Request ID: a5033be9-0e1c-457a-bd9a-e751af7e224f). ErrorCode: InvalidRequest

Expected Behavior

Create an aurora postgres data provider.

Actual Behavior

Errors that the data provider postrgres aurora doesn't exist.

Steps to Reproduce

  1. terraform apply

Important Factoids

no

References

https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/resources/dms_data_provider

wellsiau-aws commented 6 months ago

@kstephensontm , thank you for reporting this issue.

according to the enumeration from here the right way to specify the engine is as aurora-postgresql.

I realize that Cloudformation documentation also has some inconsistency

Could you try this again using : aurora-postgresql

quixoticmonk commented 6 months ago

@wellsiau-aws I did try this today. The API expects us to use aurora_postgresql

 Error: Invalid Attribute Value Match
│
│   with awscc_dms_data_provider.dms_data_provider_source,
│   on main.tf line 3, in resource "awscc_dms_data_provider" "dms_data_provider_source":
│    3:   engine = "aurora-postgresql"
│
│ Attribute engine value must be one of: ["postgres" "mysql" "oracle" "sqlserver" "aurora"
│ "aurora_postgresql"], got: "aurora-postgresql"
kstephensontm commented 6 months ago

sorry still get an error when putting the correct value ...

resource "awscc_dms_data_provider" "dms_data_provider_target" { data_provider_name = "sc-postgresql2" engine = "aurora_postgresql" settings = { postgre_sql_settings = { database_name = "pssql" port = 5432 server_name = "postgres-default-1.blah.us-west-2.rds.amazonaws.com" ssl_mode = "none" } } }

│ Error: AWS SDK Go Service Operation Incomplete │ │ with awscc_dms_data_provider.dms_data_provider_target, │ on dms-schema-conversion.tf line 39, in resource "awscc_dms_data_provider" "dms_data_provider_target": │ 39: resource "awscc_dms_data_provider" "dms_data_provider_target" { │ │ Waiting for Cloud Control API service CreateResource operation completion returned: waiter │ state transitioned to FAILED. StatusMessage: DMS doesn't support aurora_postgresql database │ engine. Choose another database engine and try again. (Service: DatabaseMigration, Status │ Code: 400, Request ID: 43f51c09-d7ec-4cd7-a75e-6a433ea45de0). ErrorCode: InvalidRequest

kstephensontm commented 6 months ago

hi @quixoticmonk is this a bug that just needs to be fixed for aurora_postgresql?

kstephensontm commented 6 months ago

@quixoticmonk any update on this one?

quixoticmonk commented 6 months ago

@quixoticmonk any update on this one?

Apologies on the delay in responding. I was waiting for the next refresh this week if it did fix the engine listing. I have opened an internal issue against the service team in AWS.

@wellsiau-aws FYI

kstephensontm commented 6 months ago

just tried again with 0.77.0 and still the same error.

│ Error: AWS SDK Go Service Operation Incomplete │ │ with awscc_dms_data_provider.dms_data_provider_target, │ on dms-schema-conversion.tf line 39, in resource "awscc_dms_data_provider" "dms_data_provider_target": │ 39: resource "awscc_dms_data_provider" "dms_data_provider_target" { │ │ Waiting for Cloud Control API service CreateResource operation completion returned: waiter state transitioned to FAILED. │ StatusMessage: DMS doesn't support aurora_postgresql database engine. Choose another database engine and try again. │ (Service: DatabaseMigration, Status Code: 400, Request ID: fb40aa88-d959-44f6-9cfb-83caf0465f8a). ErrorCode: InvalidRequest ╵

wellsiau-aws commented 2 months ago

@kstephensontm , thank you for your patience, we just heard about the fix deployed by service team.

do you mind to test it again? since this is a upstream AWS handler issue, I believe you don't need to upgrade the provider.

andreshans commented 1 month ago

does anyone know how to fix this one?

kstephensontm commented 2 weeks ago

@quixoticmonk i used the latest 1.18.0 version and I can create a data provider target with "aurora_postgresql". Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

I then run an apply again and it wants to switch the engine from "aurora-postgresql" -> "aurora_postgresql" which then fails. how do we get around this? this makes no sense because I can't supply engine type of aurora-postgresql or it tells me that it is not supported.

│ Waiting for Cloud Control API service UpdateResource operation completion returned: waiter state transitioned to FAILED. │ StatusMessage: The specified database engine is not supported by DMS. Please choose a supported database engine and try │ again. (Service: DatabaseMigration, Status Code: 400, Request ID: c40d6a5a-26b4-4c1b-a7e4-caf77c35e2a1). ErrorCode: │ InvalidRequest


this is trying to set a data provider target to aurora-postgresql ... doesn't work. │ 42: engine = "aurora-postgresql" │ │ Attribute engine value must be one of: ["postgres" "mysql" "oracle" "sqlserver" "aurora" "aurora_postgresql"], got: │ "aurora-postgresql"

quixoticmonk commented 2 weeks ago

Can you provide us the plan details when you are running the subsequent apply?

kstephensontm commented 2 weeks ago

some how i can create it with aurora_postgresql and behind the scenes it becomes aurora-postgresql when created. then you run an apply again and it wants to change it back to aurora_postgresql but fails when trying to apply saying that the engine value doesn't exist. feels like i'm going in circles.

awscc_dms_data_provider.dms_data_provider_target will be updated in-place

~ resource "awscc_dms_data_provider" "dms_data_provider_target" {