Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aws Config Remediation #13884

Merged
merged 25 commits into from Sep 16, 2020
Merged

Conversation

cgetzen
Copy link
Contributor

@cgetzen cgetzen commented Jun 22, 2020

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

Closes #7972

Release note for CHANGELOG:

Adds aws_config_remediation_configuration resource

Patrick Laxton and others added 6 commits June 19, 2020 09:42
Answering hashicorp#7972
This is my 1st go development ever, so please feel free to tell me if I
did something in a bad way, which is most probable :)

feat(go): learn pointers usage

feat(config): parse all simple fields

chore(naming): replace ConfigRule by RemediationConfiguration

feat(config): add read flatten function

feat(config): add delete function

feat(config): use TypeSet instead of TypeList, & parse ResourceValue

feat(config): parse StaticValue

feat(config) flatten remediation config parameters to nil, just to get the function signature right

feat(config): flatten remediation config parameters
chore(tidy): remove unused import comments

test(config): copy-paste config rule test to start from something

feat(test): add shredder

feat(config): add a remediation configuration exemple

feat(test): add getter check

feat(config): add 1st finished acc test

feat(test): remove unadapted commented tests & add a second true test

feat(test): add static values tests

chore(fmt): format the file with make fmt

fixup! chore(fmt): format the file with make fmt

fix(test): add required on fields

chore(lint): proceed with linter results

chore(lint): use correct configuration
@cgetzen cgetzen requested a review from a team June 22, 2020 23:21
@ghost ghost added size/XL Managed by automation to categorize the size of a PR. provider Pertains to the provider itself, rather than any interaction with AWS. service/configservice Issues and PRs that pertain to the configservice service. needs-triage Waiting for first response or review from a maintainer. documentation Introduces or discusses updates to documentation. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Jun 22, 2020
@cgetzen
Copy link
Contributor Author

cgetzen commented Jul 14, 2020

@gdavison I've addressed your comments from #9348. I'm wondering if you have any time to take a look at this. This will close #7972. Thank you!

@teamterraform
Copy link

Notification of Recent and Upcoming Changes to Contributions

Thank you for this contribution! There have been a few recent development changes that affect this pull request. We apologize for the inconvenience, especially if there have been long review delays up until now. Please note that this is automated message from an unmonitored account. See the FAQ for additional information on the maintainer team and review prioritization.

If you are unable to complete these updates, please leave a comment for the community and maintainers so someone can potentially continue the work. The maintainers will encourage other contributors to use the existing contribution as the base for additional changes as appropriate. Otherwise, contributions that do not receive updated code or comments from the original contributor may be closed in the future so the maintainers can focus on active items.

For the most up to date information about Terraform AWS Provider development, see the Contributing Guide. Additional technical debt changes can be tracked with the technical-debt label on issues.

As part of updating a pull request with these changes, the most current unit testing and linting will run. These may report issues that were not previously reported.

Terraform 0.12 Syntax

Reference: #8950
Reference: #14417

Version 3 and later of the Terraform AWS Provider, which all existing contributions would potentially be added, only supports Terraform 0.12 and later. Certain syntax elements of Terraform 0.11 and earlier show deprecation warnings during runs with Terraform 0.12. Documentation and test configurations, such as those including deprecated string interpolations (some_attribute = "${aws_service_thing.example.id}") should be updated to the newer syntax (some_attribute = aws_service_thing.example.id). Contribution testing will automatically fail on older syntax in the near future. Please see the referenced issues for additional information.

Action Required: Terraform Plugin SDK Version 2

Reference: #14551

The Terraform AWS Provider has been upgraded to the latest version of the Terraform Plugin SDK. Generally, most changes to contributions should only involve updating Go import paths in source code files. Please see the referenced issue for additional information.

Action Required: Removal of website/aws.erb File

Reference: #14712

Any changes to the website/aws.erb file are no longer necessary and should be removed from this contribution to prevent merge issues in the near future when the file is removed from the repository. Please see the referenced issue for additional information.

Upcoming Change of Git Branch Naming

Reference: #14292

Development environments will need their upstream Git branch updated from master to main in the near future. Please see the referenced issue for additional information and scheduling.

Upcoming Change of GitHub Organization

Reference: #14715

This repository will be migrating from https://github.com/terraform-providers/terraform-provider-aws to https://github.com/hashicorp/terraform-provider-aws. No practitioner or developer action is anticipated and most GitHub functionality will automatically redirect to the new location. Go import paths including terraform-providers can remain for now. Please see the referenced issue for additional information and scheduling.

Copy link
Contributor

@gdavison gdavison left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @cgetzen , this looks great! Thanks for picking up the PR

There are a couple minor changes to make, and we'd like to see a few more tests added to the acceptance tests.

aws/resource_aws_config_remediation_configuration.go Outdated Show resolved Hide resolved
aws/resource_aws_config_remediation_configuration.go Outdated Show resolved Hide resolved
aws/resource_aws_config_remediation_configuration.go Outdated Show resolved Hide resolved
aws/resource_aws_config_remediation_configuration_test.go Outdated Show resolved Hide resolved
aws/resource_aws_config_remediation_configuration_test.go Outdated Show resolved Hide resolved
},
})
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also add tests for:

  • changes that will update the rule in-place
  • changes that will force a new resource

aws/resource_aws_config_remediation_configuration_test.go Outdated Show resolved Hide resolved
aws/resource_aws_config_remediation_configuration_test.go Outdated Show resolved Hide resolved
website/aws.erb Outdated Show resolved Hide resolved
@gdavison gdavison added the waiting-response Maintainers are waiting on response from community or contributor. label Aug 27, 2020
@gdavison gdavison self-assigned this Aug 27, 2020
@gdavison gdavison removed the needs-triage Waiting for first response or review from a maintainer. label Aug 27, 2020
cgetzen and others added 5 commits August 30, 2020 14:32
Terraform plugin SDK v2

Co-authored-by: Graham Davison <g.m.davison@computer.org>
Wrap AWS API error

Co-authored-by: Graham Davison <g.m.davison@computer.org>
Remove double read

Co-authored-by: Graham Davison <g.m.davison@computer.org>
Terraform Plugin SDK v2

Co-authored-by: Graham Davison <g.m.davison@computer.org>
resourceName

Co-authored-by: Graham Davison <g.m.davison@computer.org>
@cgetzen
Copy link
Contributor Author

cgetzen commented Sep 15, 2020

Hi @gdavison, thanks for the thorough review. I've made all the minor changes and added the acceptance tests "recreates", "updates", and "disappears".

        --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/basic (110.32s)
        --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/disappears (98.59s)
        --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/recreates (126.61s)
        --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/updates (122.40s)

@ghost ghost removed the waiting-response Maintainers are waiting on response from community or contributor. label Sep 15, 2020
Copy link
Contributor

@gdavison gdavison left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀

Acceptance tests:

--- PASS: TestAccAWSConfig_serial/RemediationConfiguration (338.52s)
    --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/basic (81.33s)
    --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/disappears (77.77s)
    --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/recreates (91.55s)
    --- PASS: TestAccAWSConfig_serial/RemediationConfiguration/updates (87.87s)

aws/resource_aws_config_remediation_configuration.go Outdated Show resolved Hide resolved
@gdavison gdavison merged commit d4291c9 into hashicorp:master Sep 16, 2020
@gdavison gdavison added this to the v3.7.0 milestone Sep 16, 2020
gdavison added a commit that referenced this pull request Sep 16, 2020
@ghost
Copy link

ghost commented Sep 17, 2020

This has been released in version 3.7.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!

@ghost
Copy link

ghost commented Oct 17, 2020

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@hashicorp hashicorp locked as resolved and limited conversation to collaborators Oct 17, 2020
@cgetzen cgetzen deleted the f-aws_config_remediation branch October 21, 2020 01:38
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. provider Pertains to the provider itself, rather than any interaction with AWS. service/configservice Issues and PRs that pertain to the configservice service. size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support ConfigService Remediation Configuration
5 participants