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

Refactor rds instance #2119

Conversation

hakbailey
Copy link
Contributor

@hakbailey hakbailey commented May 31, 2024

SUMMARY

This is an initial refactor PR for rds modules, focusing on documentation and shared boto3 client functionality in rds module_utils, rds_instance_info, and rds_instance. First PR for #2003 / https://issues.redhat.com/browse/ACA-1343.

COMPONENT NAME

rds_instance_info
rds_instance
module_utils/rds.py

ADDITIONAL INFORMATION

Detailed summary of all the changes:

module_utils/rds.py:

  • Add RDS error class and handler
  • Add describe_db_instances(), describe_db_snapshots(), and list_tags_for_resource() functions to handle boto3 client call
  • Refactor get_tags() to use new list_tags_for_resource() function
  • Add type hinting and function docstrings

rds_instance_info module:

  • Replace internal error handler and _describe_db_instances() functions with calls to new functions from module_utils/rds.py
  • Remove extra boto3 call to retrieve tags for resource and just reformat instance TagList attribute since it is always returned by describe_db_instances
  • Update instance_info() function return value for clarity
  • Add type hinting and function docstrings
  • Remove unit tests for functions no longer in module
  • Refactor remaining unit tests to match updated instance_info() function

rds_instance module:

  • Refactor internal get_instance() function to use describe_db_instances() from module_utils/rds.py, remove extra boto3 call to get resource tags, and remove manual retry logic
  • Refactor internal get_final_snapshot() function to use describe_db_snapshots() from module_utils/rds.py
  • Add type hinting and function docstrings, and in some cases inline comments to explain complex logic
  • Add unit tests for refactored functions

Copy link
Contributor

Build succeeded.
https://ansible.softwarefactory-project.io/zuul/buildset/984631dc539f43449abe6abf931aceac

✔️ ansible-galaxy-importer SUCCESS in 5m 34s
✔️ build-ansible-collection SUCCESS in 15m 43s
✔️ ansible-test-splitter SUCCESS in 6m 14s
✔️ integration-amazon.aws-1 SUCCESS in 14m 31s
✔️ integration-amazon.aws-2 SUCCESS in 34m 10s
✔️ integration-amazon.aws-3 SUCCESS in 36m 03s
✔️ integration-amazon.aws-4 SUCCESS in 37m 31s
✔️ integration-amazon.aws-5 SUCCESS in 24m 03s
✔️ integration-amazon.aws-6 SUCCESS in 24m 12s
✔️ integration-amazon.aws-7 SUCCESS in 22m 00s
✔️ integration-amazon.aws-8 SUCCESS in 9m 04s
✔️ integration-amazon.aws-9 SUCCESS in 9m 31s
✔️ integration-amazon.aws-10 SUCCESS in 12m 18s
✔️ integration-amazon.aws-11 SUCCESS in 18m 03s
✔️ integration-amazon.aws-12 SUCCESS in 9m 10s
✔️ integration-amazon.aws-13 SUCCESS in 15m 33s
✔️ integration-amazon.aws-14 SUCCESS in 21m 38s
✔️ integration-amazon.aws-15 SUCCESS in 22m 55s
✔️ integration-amazon.aws-16 SUCCESS in 16m 38s
✔️ integration-amazon.aws-17 SUCCESS in 23m 57s
✔️ integration-amazon.aws-18 SUCCESS in 12m 35s
✔️ integration-amazon.aws-19 SUCCESS in 15m 25s
✔️ integration-community.aws-1 SUCCESS in 1h 00m 16s
Skipped 24 jobs

Copy link
Contributor

@mandar242 mandar242 left a comment

Choose a reason for hiding this comment

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

LGTM! needs quick rebase

@hakbailey hakbailey force-pushed the refactor_rds_instance branch from 74246f6 to b2c2ddf Compare June 10, 2024 15:48
Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/1a48749541264151924270ac114f2d75

✔️ ansible-galaxy-importer SUCCESS in 4m 04s
✔️ build-ansible-collection SUCCESS in 17m 52s
✔️ ansible-test-splitter SUCCESS in 7m 09s
integration-amazon.aws-1 RETRY_LIMIT in 1m 41s
✔️ integration-amazon.aws-2 SUCCESS in 41m 09s
integration-amazon.aws-3 RETRY_LIMIT in 1m 42s
integration-amazon.aws-4 RETRY_LIMIT in 1m 38s
integration-amazon.aws-5 RETRY_LIMIT in 1m 42s
integration-amazon.aws-6 RETRY_LIMIT in 1m 39s
✔️ integration-amazon.aws-7 SUCCESS in 34m 31s
integration-amazon.aws-8 RETRY_LIMIT in 1m 44s
integration-amazon.aws-9 RETRY_LIMIT in 1m 42s
integration-amazon.aws-10 RETRY_LIMIT in 1m 39s
✔️ integration-amazon.aws-11 SUCCESS in 19m 34s
✔️ integration-amazon.aws-12 SUCCESS in 14m 18s
✔️ integration-amazon.aws-13 SUCCESS in 17m 28s
✔️ integration-amazon.aws-14 SUCCESS in 24m 23s
✔️ integration-amazon.aws-15 SUCCESS in 24m 26s
✔️ integration-amazon.aws-16 SUCCESS in 18m 53s
integration-amazon.aws-17 RETRY_LIMIT in 7m 48s
✔️ integration-amazon.aws-18 SUCCESS in 18m 18s
✔️ integration-amazon.aws-19 SUCCESS in 14m 57s
Skipped 25 jobs

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/c865e3e4d8274e63a4240d01dff979cc

✔️ ansible-galaxy-importer SUCCESS in 5m 52s
✔️ build-ansible-collection SUCCESS in 17m 45s
✔️ ansible-test-splitter SUCCESS in 8m 03s
✔️ integration-amazon.aws-1 SUCCESS in 14m 17s
✔️ integration-amazon.aws-2 SUCCESS in 39m 09s
✔️ integration-amazon.aws-3 SUCCESS in 39m 56s
✔️ integration-amazon.aws-4 SUCCESS in 38m 53s
✔️ integration-amazon.aws-5 SUCCESS in 24m 56s
✔️ integration-amazon.aws-6 SUCCESS in 27m 26s
✔️ integration-amazon.aws-7 SUCCESS in 22m 21s
✔️ integration-amazon.aws-8 SUCCESS in 7m 56s
✔️ integration-amazon.aws-9 SUCCESS in 12m 09s
✔️ integration-amazon.aws-10 SUCCESS in 16m 14s
integration-amazon.aws-11 RETRY_LIMIT in 1m 41s
✔️ integration-amazon.aws-12 SUCCESS in 12m 24s
✔️ integration-amazon.aws-13 SUCCESS in 13m 39s
✔️ integration-amazon.aws-14 SUCCESS in 27m 39s
✔️ integration-amazon.aws-15 SUCCESS in 24m 58s
✔️ integration-amazon.aws-16 SUCCESS in 19m 09s
integration-amazon.aws-17 RETRY_LIMIT in 7m 21s
✔️ integration-amazon.aws-18 SUCCESS in 13m 35s
✔️ integration-amazon.aws-19 SUCCESS in 18m 52s
Skipped 25 jobs

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/72a218fc4ecf4fcc8aee1231c3fb520c

✔️ ansible-galaxy-importer SUCCESS in 5m 23s
✔️ build-ansible-collection SUCCESS in 17m 41s
✔️ ansible-test-splitter SUCCESS in 8m 46s
✔️ integration-amazon.aws-1 SUCCESS in 12m 45s
✔️ integration-amazon.aws-2 SUCCESS in 34m 18s
✔️ integration-amazon.aws-3 SUCCESS in 37m 51s
✔️ integration-amazon.aws-4 SUCCESS in 42m 24s
✔️ integration-amazon.aws-5 SUCCESS in 27m 48s
✔️ integration-amazon.aws-6 SUCCESS in 26m 48s
✔️ integration-amazon.aws-7 SUCCESS in 25m 56s
✔️ integration-amazon.aws-8 SUCCESS in 9m 26s
✔️ integration-amazon.aws-9 SUCCESS in 14m 42s
✔️ integration-amazon.aws-10 SUCCESS in 14m 42s
✔️ integration-amazon.aws-11 SUCCESS in 16m 54s
✔️ integration-amazon.aws-12 SUCCESS in 10m 26s
✔️ integration-amazon.aws-13 SUCCESS in 17m 56s
✔️ integration-amazon.aws-14 SUCCESS in 26m 23s
✔️ integration-amazon.aws-15 SUCCESS in 30m 21s
✔️ integration-amazon.aws-16 SUCCESS in 22m 21s
✔️ integration-amazon.aws-17 SUCCESS in 24m 47s
✔️ integration-amazon.aws-18 SUCCESS in 14m 18s
✔️ integration-amazon.aws-19 SUCCESS in 18m 57s
✔️ integration-community.aws-1 SUCCESS in 22m 47s
✔️ integration-community.aws-2 SUCCESS in 37m 09s
✔️ integration-community.aws-3 SUCCESS in 6m 03s
✔️ integration-community.aws-4 SUCCESS in 31m 42s
✔️ integration-community.aws-5 SUCCESS in 18m 22s
✔️ integration-community.aws-6 SUCCESS in 31m 04s
✔️ integration-community.aws-7 SUCCESS in 20m 51s
✔️ integration-community.aws-8 SUCCESS in 26m 51s
integration-community.aws-9 RETRY_LIMIT in 1m 40s
✔️ integration-community.aws-10 SUCCESS in 20m 39s
✔️ integration-community.aws-11 SUCCESS in 26m 53s
✔️ integration-community.aws-12 SUCCESS in 19m 51s
✔️ integration-community.aws-13 SUCCESS in 29m 45s
✔️ integration-community.aws-14 SUCCESS in 19m 15s
✔️ integration-community.aws-15 SUCCESS in 31m 43s
✔️ integration-community.aws-16 SUCCESS in 36m 36s
✔️ integration-community.aws-17 SUCCESS in 15m 09s
✔️ integration-community.aws-18 SUCCESS in 21m 43s
✔️ integration-community.aws-19 SUCCESS in 14m 29s
✔️ integration-community.aws-20 SUCCESS in 7m 56s
Skipped 5 jobs

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build succeeded.
https://ansible.softwarefactory-project.io/zuul/buildset/44f2f95286ce470e89e79dc817e14242

✔️ ansible-galaxy-importer SUCCESS in 4m 03s
✔️ build-ansible-collection SUCCESS in 16m 07s
✔️ ansible-test-splitter SUCCESS in 7m 25s
✔️ integration-amazon.aws-1 SUCCESS in 12m 45s
✔️ integration-amazon.aws-2 SUCCESS in 32m 43s
✔️ integration-amazon.aws-3 SUCCESS in 38m 13s
✔️ integration-amazon.aws-4 SUCCESS in 36m 29s
✔️ integration-amazon.aws-5 SUCCESS in 26m 02s
✔️ integration-amazon.aws-6 SUCCESS in 25m 32s
✔️ integration-amazon.aws-7 SUCCESS in 27m 36s
✔️ integration-amazon.aws-8 SUCCESS in 9m 05s
✔️ integration-amazon.aws-9 SUCCESS in 14m 27s
✔️ integration-amazon.aws-10 SUCCESS in 12m 44s
✔️ integration-amazon.aws-11 SUCCESS in 16m 11s
✔️ integration-amazon.aws-12 SUCCESS in 13m 24s
✔️ integration-amazon.aws-13 SUCCESS in 15m 21s
✔️ integration-amazon.aws-14 SUCCESS in 23m 47s
✔️ integration-amazon.aws-15 SUCCESS in 21m 25s
✔️ integration-amazon.aws-16 SUCCESS in 17m 44s
✔️ integration-amazon.aws-17 SUCCESS in 22m 02s
✔️ integration-amazon.aws-18 SUCCESS in 11m 28s
✔️ integration-amazon.aws-19 SUCCESS in 15m 02s
Skipped 25 jobs

@hakbailey hakbailey force-pushed the refactor_rds_instance branch from b2c2ddf to 1133fe4 Compare June 11, 2024 13:47
@hakbailey hakbailey added the mergeit Merge the PR (SoftwareFactory) label Jun 11, 2024
@hakbailey
Copy link
Contributor Author

regate

Copy link
Contributor

Build failed (gate pipeline). For information on how to proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing

https://ansible.softwarefactory-project.io/zuul/buildset/c73d8c6a970448c5b1c2eef6eadffeab

✔️ ansible-galaxy-importer SUCCESS in 5m 04s
✔️ build-ansible-collection SUCCESS in 19m 50s
ansible-test-splitter RETRY_LIMIT Host unreachable in 6m 01s
⚠️ integration-amazon.aws-1 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-2 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-3 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-4 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-5 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-6 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-7 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-8 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-9 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-10 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-11 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-12 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-13 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-14 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-15 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-16 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-17 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-18 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-19 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-20 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-21 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-22 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-1 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-2 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-3 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-4 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-5 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-6 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-7 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-8 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-9 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-10 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-11 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-12 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-13 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-14 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-15 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-16 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-17 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-18 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-19 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-20 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-21 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-22 SKIPPED Skipped due to failed job ansible-test-splitter

@hakbailey
Copy link
Contributor Author

regate

Copy link
Contributor

Build failed (gate pipeline). For information on how to proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing

https://ansible.softwarefactory-project.io/zuul/buildset/49c8db41b65d47c193a80232b67ae2d2

✔️ ansible-galaxy-importer SUCCESS in 4m 55s
✔️ build-ansible-collection SUCCESS in 14m 46s
✔️ ansible-test-splitter SUCCESS in 5m 48s
integration-amazon.aws-1 FAILURE in 5m 13s
integration-amazon.aws-2 FAILURE in 5m 12s
integration-amazon.aws-3 FAILURE in 5m 06s
integration-amazon.aws-4 FAILURE in 5m 41s
integration-amazon.aws-5 FAILURE in 5m 10s
integration-amazon.aws-6 FAILURE in 5m 30s
integration-amazon.aws-7 FAILURE in 5m 20s
integration-amazon.aws-8 FAILURE in 5m 06s
integration-amazon.aws-9 FAILURE in 5m 28s
integration-amazon.aws-10 FAILURE in 5m 06s
integration-amazon.aws-11 FAILURE in 5m 28s
integration-amazon.aws-12 FAILURE in 5m 20s
integration-amazon.aws-13 FAILURE in 3m 52s
integration-amazon.aws-14 FAILURE in 5m 12s
integration-amazon.aws-15 FAILURE in 3m 59s
integration-amazon.aws-16 FAILURE in 4m 18s
integration-amazon.aws-17 FAILURE in 3m 45s
integration-amazon.aws-18 FAILURE in 7m 58s
integration-amazon.aws-19 FAILURE in 5m 13s
Skipped 25 jobs

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/ee00b032c3314636bf87daeb7fb6f528

✔️ ansible-galaxy-importer SUCCESS in 3m 45s
✔️ build-ansible-collection SUCCESS in 17m 32s
✔️ ansible-test-splitter SUCCESS in 7m 16s
integration-amazon.aws-1 FAILURE in 3m 54s
integration-amazon.aws-2 FAILURE in 5m 23s
integration-amazon.aws-3 FAILURE in 7m 40s
integration-amazon.aws-4 FAILURE in 4m 06s
integration-amazon.aws-5 FAILURE in 5m 32s
integration-amazon.aws-6 FAILURE in 8m 06s
integration-amazon.aws-7 FAILURE in 5m 16s
integration-amazon.aws-8 FAILURE in 3m 58s
integration-amazon.aws-9 FAILURE in 7m 57s
integration-amazon.aws-10 FAILURE in 5m 46s
integration-amazon.aws-11 FAILURE in 5m 16s
integration-amazon.aws-12 FAILURE in 5m 05s
integration-amazon.aws-13 FAILURE in 5m 03s
integration-amazon.aws-14 FAILURE in 5m 15s
integration-amazon.aws-15 FAILURE in 5m 17s
integration-amazon.aws-16 FAILURE in 5m 05s
integration-amazon.aws-17 FAILURE in 5m 09s
integration-amazon.aws-18 FAILURE in 5m 48s
integration-amazon.aws-19 FAILURE in 4m 07s
Skipped 25 jobs

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/ae476d7cc8464b0a96ff6eab80d10454

⚠️ ansible-galaxy-importer SKIPPED Skipped due to failed job build-ansible-collection
build-ansible-collection RETRY_LIMIT Host unreachable in 1m 13s
ansible-test-splitter RETRY_LIMIT Host unreachable in 3m 36s
⚠️ integration-amazon.aws-1 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-2 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-3 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-4 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-5 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-6 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-7 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-8 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-9 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-10 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-11 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-12 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-13 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-14 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-15 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-16 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-17 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-18 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-19 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-20 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-21 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-amazon.aws-22 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-1 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-2 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-3 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-4 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-5 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-6 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-7 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-8 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-9 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-10 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-11 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-12 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-13 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-14 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-15 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-16 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-17 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-18 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-19 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-20 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-21 SKIPPED Skipped due to failed job ansible-test-splitter
⚠️ integration-community.aws-22 SKIPPED Skipped due to failed job ansible-test-splitter

@hakbailey
Copy link
Contributor Author

recheck

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/fd53fe8f0689418fa808102a204e5759

✔️ ansible-galaxy-importer SUCCESS in 4m 57s
✔️ build-ansible-collection SUCCESS in 12m 57s
✔️ ansible-test-splitter SUCCESS in 5m 46s
integration-amazon.aws-1 FAILURE in 4m 22s
integration-amazon.aws-2 FAILURE in 4m 35s
integration-amazon.aws-3 FAILURE in 4m 12s
integration-amazon.aws-4 FAILURE in 4m 10s
integration-amazon.aws-5 FAILURE in 4m 21s
integration-amazon.aws-6 FAILURE in 4m 35s
integration-amazon.aws-7 FAILURE in 5m 06s
integration-amazon.aws-8 FAILURE in 4m 26s
integration-amazon.aws-9 FAILURE in 4m 39s
integration-amazon.aws-10 FAILURE in 4m 15s
integration-amazon.aws-11 FAILURE in 5m 04s
integration-amazon.aws-12 FAILURE in 5m 16s
integration-amazon.aws-13 FAILURE in 4m 18s
integration-amazon.aws-14 FAILURE in 5m 07s
integration-amazon.aws-15 FAILURE in 4m 49s
integration-amazon.aws-16 FAILURE in 3m 55s
integration-amazon.aws-17 FAILURE in 3m 45s
integration-amazon.aws-18 FAILURE in 5m 46s
integration-amazon.aws-19 FAILURE in 4m 08s
Skipped 25 jobs

Changes to module_utils/rds.py:
- Add RDS error class and handler
- Add describe_db_instances() and list_tags_for_resource() functions
- Refactor get_tags() to use list_tags_for_resource() and add detailed
  docstring

Changes to rds_instance_info module:
- Replace internal error handler and _describe_db_instances() functions
  with calls to new functions from module_utils/rds.py
- Remove extra boto3 call to get tags for resource and just reformat
  instance TagList attribute since it is always returned by
  describe_db_instances
- Update instance_info function return value for clarity
- Add type hinting and detailed docstring to instance_info function

Changes to rds_instance_info unit tests:
- Remove tests for functions no longer in module
- Refactor remaining tests to match updated instance_info functions
Changes to module_utils/rds.py:
- Add describe_db_snapshots() function using RDS error handler

Changes to rds_instance module:
- Refactor internal get_instance() function to use describe_db_instances()
  from module_utils/rds.py, remove extra boto3 call to get resource tags,
  and remove manual retry logic
- Refactor internal get_final_snapshot() function to use
  describe_db_snapshots() from module_utils/rds.py
- Add tests for refactored functions
@hakbailey hakbailey force-pushed the refactor_rds_instance branch from 1133fe4 to 646c521 Compare June 17, 2024 21:28
Copy link
Contributor

Build succeeded.
https://ansible.softwarefactory-project.io/zuul/buildset/2023eb2eaeae441f898a32b207b837c1

✔️ ansible-galaxy-importer SUCCESS in 3m 55s
✔️ build-ansible-collection SUCCESS in 12m 20s
✔️ ansible-test-splitter SUCCESS in 5m 04s
✔️ integration-amazon.aws-1 SUCCESS in 11m 43s
✔️ integration-amazon.aws-2 SUCCESS in 34m 01s
✔️ integration-amazon.aws-3 SUCCESS in 47m 20s
✔️ integration-amazon.aws-4 SUCCESS in 41m 41s
✔️ integration-amazon.aws-5 SUCCESS in 28m 56s
✔️ integration-amazon.aws-6 SUCCESS in 22m 05s
✔️ integration-amazon.aws-7 SUCCESS in 22m 50s
✔️ integration-amazon.aws-8 SUCCESS in 7m 56s
✔️ integration-amazon.aws-9 SUCCESS in 8m 45s
✔️ integration-amazon.aws-10 SUCCESS in 11m 22s
✔️ integration-amazon.aws-11 SUCCESS in 18m 40s
✔️ integration-amazon.aws-12 SUCCESS in 8m 20s
✔️ integration-amazon.aws-13 SUCCESS in 14m 30s
✔️ integration-amazon.aws-14 SUCCESS in 26m 02s
✔️ integration-amazon.aws-15 SUCCESS in 22m 17s
✔️ integration-amazon.aws-16 SUCCESS in 20m 38s
✔️ integration-amazon.aws-17 SUCCESS in 23m 40s
✔️ integration-amazon.aws-18 SUCCESS in 11m 38s
✔️ integration-amazon.aws-19 SUCCESS in 15m 30s
Skipped 25 jobs

Copy link
Contributor

Build succeeded (gate pipeline).
https://ansible.softwarefactory-project.io/zuul/buildset/0941e7fd410a409fb57346ce802e8fe3

✔️ ansible-galaxy-importer SUCCESS in 4m 48s
✔️ build-ansible-collection SUCCESS in 13m 12s
✔️ ansible-test-splitter SUCCESS in 5m 11s
✔️ integration-amazon.aws-1 SUCCESS in 14m 21s
✔️ integration-amazon.aws-2 SUCCESS in 31m 33s
✔️ integration-amazon.aws-3 SUCCESS in 33m 52s
✔️ integration-amazon.aws-4 SUCCESS in 34m 07s
✔️ integration-amazon.aws-5 SUCCESS in 25m 13s
✔️ integration-amazon.aws-6 SUCCESS in 23m 49s
✔️ integration-amazon.aws-7 SUCCESS in 27m 15s
✔️ integration-amazon.aws-8 SUCCESS in 12m 02s
✔️ integration-amazon.aws-9 SUCCESS in 8m 58s
✔️ integration-amazon.aws-10 SUCCESS in 14m 50s
✔️ integration-amazon.aws-11 SUCCESS in 17m 19s
✔️ integration-amazon.aws-12 SUCCESS in 7m 04s
✔️ integration-amazon.aws-13 SUCCESS in 15m 40s
✔️ integration-amazon.aws-14 SUCCESS in 20m 47s
✔️ integration-amazon.aws-15 SUCCESS in 21m 17s
✔️ integration-amazon.aws-16 SUCCESS in 16m 43s
✔️ integration-amazon.aws-17 SUCCESS in 25m 17s
✔️ integration-amazon.aws-18 SUCCESS in 16m 29s
✔️ integration-amazon.aws-19 SUCCESS in 14m 51s
Skipped 25 jobs

@softwarefactory-project-zuul softwarefactory-project-zuul bot merged commit a7b9cac into ansible-collections:main Jun 17, 2024
36 checks passed
@hakbailey hakbailey deleted the refactor_rds_instance branch June 18, 2024 13:25
alinabuzachis pushed a commit to alinabuzachis/amazon.aws that referenced this pull request Jun 26, 2024
SUMMARY
This is an initial refactor PR for rds modules, focusing on documentation and shared boto3 client functionality in rds module_utils, rds_instance_info, and rds_instance. First PR for ansible-collections#2003 / https://issues.redhat.com/browse/ACA-1343.
COMPONENT NAME
rds_instance_info
rds_instance
module_utils/rds.py
ADDITIONAL INFORMATION
Detailed summary of all the changes:
module_utils/rds.py:

Add RDS error class and handler
Add describe_db_instances(), describe_db_snapshots(), and list_tags_for_resource() functions to handle boto3 client call
Refactor get_tags() to use new list_tags_for_resource() function
Add type hinting and function docstrings

rds_instance_info module:

Replace internal error handler and _describe_db_instances() functions with calls to new functions from module_utils/rds.py
Remove extra boto3 call to retrieve tags for resource and just reformat instance TagList attribute since it is always returned by describe_db_instances
Update instance_info() function return value for clarity
Add type hinting and function docstrings
Remove unit tests for functions no longer in module
Refactor remaining unit tests to match updated instance_info() function

rds_instance module:

Refactor internal get_instance() function to use describe_db_instances() from module_utils/rds.py, remove extra boto3 call to get resource tags, and remove manual retry logic
Refactor internal get_final_snapshot() function to use describe_db_snapshots() from module_utils/rds.py
Add type hinting and function docstrings, and in some cases inline comments to explain complex logic
Add unit tests for refactored functions

Reviewed-by: Alina Buzachis
Reviewed-by: Helen Bailey <[email protected]>
Reviewed-by: Mandar Kulkarni <[email protected]>
Reviewed-by: Mike Graves <[email protected]>
Reviewed-by: Bikouo Aubin
Reviewed-by: Mark Chappell
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mergeit Merge the PR (SoftwareFactory)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants