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

fix incomplete enforce_count() return values #964

Merged
merged 7 commits into from
Feb 24, 2023
Merged

fix incomplete enforce_count() return values #964

merged 7 commits into from
Feb 24, 2023

Conversation

nethershaw
Copy link
Contributor

SUMMARY

This is the Ansible way.

Since a call to enforce_count() requires that a call to find_instances() has already been made, the information required to populate the instances return key is already held by the variable existing_matches. There are zero use cases where it makes sense not to output this information; if I want exactly one such instance and an existing instance matches the filter, I definitely always want to know its details.

Fixes #963, #859

ISSUE TYPE
  • Bugfix Pull Request
COMPONENT NAME

ec2_instance

ADDITIONAL INFORMATION

See linked issues.

Before:

{                                                                                                                                                                                                                                                                                                                                                                          
    "changed": false,                                                                                                                                                                                                                                                                                                                                                                         
    "invocation": {                                                                                                                                                                                                                                                                                                                                                                           
        "module_args": {                                                                                                                                                                                                                                                                                                                                                                      
            "availability_zone": null,                                                                                                                                                                                                                                                                                                                                                        
            "aws_access_key": null,                                                                                                                                                                                                                                                                                                                                                           
            "aws_ca_bundle": null,                                                                                                                                                                                                                                                                                                                                                            
            "aws_config": null,                                                                                                                                                                                                                                                                                                                                                               
            "aws_secret_key": null,                                                                                                                                                                                                                                                                                                                                                           
            "count": null,                                                                                                                                                                                                                                                                                                                                                                    
            "cpu_credit_specification": null,                                                                                                                                                                                                                                                                                                                                                 
            "cpu_options": null,                                                                                                                                                                                                                                                                                                                                                              
            "debug_botocore_endpoint_logs": false,                                                                                                                                                                                                                                                                                                                                            
            "detailed_monitoring": false,                                                                                                                                                                                                                                                                                                                                                     
            "ebs_optimized": true,                                                                                                                                                                                                                                                                                                                                                            
            "ec2_url": null,                                                                                                                                                                                                                                                                                                                                                                  
            "exact_count": 1,                                                                                                                                                                                                                                                                                                                                                                 
            "filters": {                                                                                                                                                                                                                                                                                                                                                                      
                "tag:Name": "something",                                                                                                                                                                                                                                                                                                                                             
                "tag:env": "prod"                                                                                                                                                                                                                                                                                                                                                             
            },
            "image": null,                                                                                                                                                                                                                                                                                                                                                                    
            "image_id": "REDACTED",                                                                                                                                                                                                                                                                                                                                              
            "instance_ids": [],                                                                                                                                                                                                                                                                                                                                                               
            "instance_initiated_shutdown_behavior": null,                                                                                                                                                                                                                                                                                                                                     
            "instance_role": "REDACTED",                                                                                                                                                                                                                                                                                                                                                       
            "instance_type": "m5.2xlarge",                                                                                                                                                                                                                                                                                                                                                    
            "key_name": "REDACTED",                                                                                                                                                                                                                                                                                                                                                          
            "launch_template": null,                                                                                                                                                                                                                                                                                                                                                          
            "metadata_options": null,                                                                                                                                                                                                                                                                                                                                                         
            "name": null,                                                                                                                                                                                                                                                                                                                                                                     
            "network": {                                                                                                                                                                                                                                                                                                                                                                      
                "source_dest_check": true                                                                                                                                                                                                                                                                                                                                                     
            },                                                                                                                                                                                                                                                                                                                                                                                
            "placement_group": null,                                                                                                                                                                                                                                                                                                                                                          
            "profile": null,                                                                                                                                                                                                                                                                                                                                                                  
            "purge_tags": false,                                                                                                                                                                                                                                                                                                                                                              
            "region": "us-west-2",                                                                                                                                                                                                                                                                                                                                                            
            "security_group": null,                                                                                                                                                                                                                                                                                                                                                           
            "security_groups": [                                                                                                                                                                                                                                                                                                                                                              
                "default"                                                                                                                                                                                                                                                                                                                                                                     
            ],                                                                                                                                                                                                                                                                                                                                                                                
            "security_token": null,                                                                                                                                                                                                                                                                                                                                                           
            "state": "present",                                                                                                                                                                
            "tags": {                                                                                                                                                                                                                                                                                                                                                                         
                "Name": "something",                                                                                                                                                                                                                                                                                                                                                         
                "env": "prod",
            },
            "tenancy": null,
            "termination_protection": null,
            "tower_callback": null,
            "user_data": "REDACTED",
            "validate_certs": true,
            "volumes": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 10,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 100,
                        "volume_type": "gp3"
                    }
                }
            ],
            "vpc_subnet_id": "REDACTED",
            "wait": true,
            "wait_timeout": 300
        }
    },
    "msg": "1 instances already running, nothing to do."
}

After:

{                                                                                                                                                                                                                                                                                                                                                                          
    "changed": false,                                                                                                                                                                                                                                                                                                                                                                         
    "instance_ids": [                                                                                                                                                                                                                                                                                                                                                                         
        "REDACTED"                                                                                                                                                                                                                                                                                                                                                                 
    ],
    "instances": [
        {
            "ami_launch_index": 0,
            "architecture": "x86_64",
            "block_device_mappings": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                }
            ],
            "capacity_reservation_specification": {
                "capacity_reservation_preference": "open"
            },
            "client_token": "REDACTED",
            "cpu_options": {
                "core_count": 4,
                "threads_per_core": 2
            },
            "ebs_optimized": true,
            "ena_support": true,
            "enclave_options": {
                "enabled": false
            },
            "hibernation_options": {
                "configured": false
            },
            "hypervisor": "xen",
            "iam_instance_profile": {
                "arn": "REDACTED",
                "id": "REDACTED"
            },
            "image_id": "REDACTED",
            "instance_id": "REDACTED",
            "instance_type": "m5.2xlarge",
            "key_name": "REDACTED",
            "launch_time": "2022-08-10T19:50:23+00:00",
            "maintenance_options": {
                "auto_recovery": "default"
            },
            "metadata_options": {
                "http_endpoint": "enabled",
                "http_protocol_ipv6": "disabled",
                "http_put_response_hop_limit": 1,
                "http_tokens": "optional",
                "instance_metadata_tags": "disabled",
                "state": "applied"
            },
            "monitoring": {
                "state": "disabled"
            },
            "network_interfaces": [
                {
                    "attachment": {
                        "attach_time": "2022-08-10T19:50:23+00:00",
                        "attachment_id": "REDACTED",
                        "delete_on_termination": true,
                        "device_index": 0,
                        "network_card_index": 0,
                        "status": "attached"
                    },
                    "description": "",
                    "groups": [
                        {
                            "group_id": "REDACTED",
                            "group_name": "REDACTED"
                        }
                    ],
                    "interface_type": "interface",
                    "ipv6_addresses": [],
                    "mac_address": "REDACTED",
                    "network_interface_id": "REDACTED",
                    "owner_id": "REDACTED",
                    "private_dns_name": "REDACTED",
                    "private_ip_address": "REDACTED",
                    "private_ip_addresses": [
                        {
                            "primary": true,
                            "private_dns_name": "REDACTED",
                            "private_ip_address": "REDACTED"
                        }
                    ],
                    "source_dest_check": true,
                    "status": "in-use",
                    "subnet_id": "REDACTED",
                    "vpc_id": "REDACTED"
                }
            ],
            "placement": {
                "availability_zone": "us-west-2a",
                "group_name": "",
                "tenancy": "default"
            },
            "platform_details": "Linux/UNIX",
            "private_dns_name": "REDACTED",
            "private_dns_name_options": {
                "enable_resource_name_dns_a_record": false,
                "enable_resource_name_dns_aaaa_record": false,
                "hostname_type": "ip-name"
            },
            "private_ip_address": "REDACTED",
            "product_codes": [],
            "public_dns_name": "",
            "root_device_name": "/dev/sda1",
            "root_device_type": "ebs",
            "security_groups": [
                {
                    "group_id": "REDACTED",
                    "group_name": "REDACTED"
                }
            ],
            "source_dest_check": true,
            "state": {
                "code": 16,
                "name": "running"
            },
            "state_transition_reason": "",
            "subnet_id": "REDACTED",
            "tags": {
                "Name": "something",
                "env": "prod",
            },
            "usage_operation": "RunInstances",
            "usage_operation_update_time": "2022-08-10T19:50:23+00:00",
            "virtualization_type": "hvm",
            "vpc_id": "REDACTED"
        }
    ],
    "invocation": {                                                                                                                                                                                                                                                                                                                                                                           
        "module_args": {                                                                                                                                                                                                                                                                                                                                                                      
            "availability_zone": null,                                                                                                                                                                                                                                                                                                                                                        
            "aws_access_key": null,                                                                                                                                                                                                                                                                                                                                                           
            "aws_ca_bundle": null,                                                                                                                                                                                                                                                                                                                                                            
            "aws_config": null,                                                                                                                                                                                                                                                                                                                                                               
            "aws_secret_key": null,                                                                                                                                                                                                                                                                                                                                                           
            "count": null,                                                                                                                                                                                                                                                                                                                                                                    
            "cpu_credit_specification": null,                                                                                                                                                                                                                                                                                                                                                 
            "cpu_options": null,                                                                                                                                                                                                                                                                                                                                                              
            "debug_botocore_endpoint_logs": false,                                                                                                                                                                                                                                                                                                                                            
            "detailed_monitoring": false,                                                                                                                                                                                                                                                                                                                                                     
            "ebs_optimized": true,                                                                                                                                                                                                                                                                                                                                                            
            "ec2_url": null,                                                                                                                                                                                                                                                                                                                                                                  
            "exact_count": 1,                                                                                                                                                                                                                                                                                                                                                                 
            "filters": {                                                                                                                                                                                                                                                                                                                                                                      
                "tag:Name": "something",                                                                                                                                                                                                                                                                                                                                             
                "tag:env": "prod"                                                                                                                                                                                                                                                                                                                                                             
            },
            "image": null,                                                                                                                                                                                                                                                                                                                                                                    
            "image_id": "REDACTED",                                                                                                                                                                                                                                                                                                                                              
            "instance_ids": [],                                                                                                                                                                                                                                                                                                                                                               
            "instance_initiated_shutdown_behavior": null,                                                                                                                                                                                                                                                                                                                                     
            "instance_role": "REDACTED",                                                                                                                                                                                                                                                                                                                                                       
            "instance_type": "m5.2xlarge",                                                                                                                                                                                                                                                                                                                                                    
            "key_name": "REDACTED",                                                                                                                                                                                                                                                                                                                                                          
            "launch_template": null,                                                                                                                                                                                                                                                                                                                                                          
            "metadata_options": null,                                                                                                                                                                                                                                                                                                                                                         
            "name": null,                                                                                                                                                                                                                                                                                                                                                                     
            "network": {                                                                                                                                                                                                                                                                                                                                                                      
                "source_dest_check": true                                                                                                                                                                                                                                                                                                                                                     
            },                                                                                                                                                                                                                                                                                                                                                                                
            "placement_group": null,                                                                                                                                                                                                                                                                                                                                                          
            "profile": null,                                                                                                                                                                                                                                                                                                                                                                  
            "purge_tags": false,                                                                                                                                                                                                                                                                                                                                                              
            "region": "us-west-2",                                                                                                                                                                                                                                                                                                                                                            
            "security_group": null,                                                                                                                                                                                                                                                                                                                                                           
            "security_groups": [                                                                                                                                                                                                                                                                                                                                                              
                "default"                                                                                                                                                                                                                                                                                                                                                                     
            ],                                                                                                                                                                                                                                                                                                                                                                                
            "security_token": null,                                                                                                                                                                                                                                                                                                                                                           
            "state": "present",                                                                                                                                                                
            "tags": {                                                                                                                                                                                                                                                                                                                                                                         
                "Name": "something",                                                                                                                                                                                                                                                                                                                                                         
                "env": "prod",
            },
            "tenancy": null,
            "termination_protection": null,
            "tower_callback": null,
            "user_data": "REDACTED",
            "validate_certs": true,
            "volumes": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 10,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 100,
                        "volume_type": "gp3"
                    }
                }
            ],
            "vpc_subnet_id": "REDACTED",
            "wait": true,
            "wait_timeout": 300
        }
    },
    "msg": "1 instances already running, nothing to do."
}

@tremble
Copy link
Contributor

tremble commented Aug 10, 2022

Hi @nethershaw,

Thanks for taking the time to submit this PR. I agree with you on the general premise of the change.

There are integration tests under tests/integration/targets/ec2_instance (just an ansible role/playbook). If possible, please would you add some additional tests to cover this use case. This helps to avoid regressions creeping in over time.

@nethershaw
Copy link
Contributor Author

Will try my best. I should be able to reproduce existing tests that look for this return key so as to be consistent with earlier work.

@ansibullbot
Copy link

@ansibullbot ansibullbot added bug This issue/PR relates to a bug community_review module module new_contributor Help guide this first time contributor plugins plugin (any type) small_patch Hopefully easy to review labels Aug 10, 2022
@softwarefactory-project-zuul
Copy link
Contributor

Build failed.

✔️ ansible-galaxy-importer SUCCESS in 3m 44s
✔️ build-ansible-collection SUCCESS in 5m 30s
✔️ ansible-test-sanity-aws-ansible-python38 SUCCESS in 9m 17s
✔️ ansible-test-sanity-aws-ansible-2.12-python38 SUCCESS in 9m 05s
✔️ ansible-test-sanity-aws-ansible-2.13-python38 SUCCESS in 8m 41s
✔️ ansible-test-units-amazon-aws-python38 SUCCESS in 6m 00s
✔️ ansible-test-units-amazon-aws-python39 SUCCESS in 6m 42s
✔️ ansible-test-splitter SUCCESS in 2m 25s
integration-amazon.aws-1 FAILURE in 46m 56s
⚠️ integration-amazon.aws-2 SKIPPED
⚠️ integration-amazon.aws-3 SKIPPED
⚠️ integration-amazon.aws-4 SKIPPED
⚠️ integration-amazon.aws-5 SKIPPED
⚠️ integration-amazon.aws-6 SKIPPED
⚠️ integration-amazon.aws-7 SKIPPED
⚠️ integration-amazon.aws-8 SKIPPED
⚠️ integration-amazon.aws-9 SKIPPED
⚠️ integration-amazon.aws-10 SKIPPED
⚠️ integration-amazon.aws-11 SKIPPED
⚠️ integration-amazon.aws-12 SKIPPED
⚠️ integration-amazon.aws-13 SKIPPED
⚠️ integration-community.aws-1 SKIPPED
⚠️ integration-community.aws-2 SKIPPED
⚠️ integration-community.aws-3 SKIPPED
⚠️ integration-community.aws-4 SKIPPED
⚠️ integration-community.aws-5 SKIPPED
⚠️ integration-community.aws-6 SKIPPED
⚠️ integration-community.aws-7 SKIPPED
⚠️ integration-community.aws-8 SKIPPED
⚠️ integration-community.aws-9 SKIPPED
⚠️ integration-community.aws-10 SKIPPED
⚠️ integration-community.aws-11 SKIPPED
⚠️ integration-community.aws-12 SKIPPED
⚠️ integration-community.aws-13 SKIPPED

@github-actions
Copy link

github-actions bot commented Aug 11, 2022

Docs Build 📝

Thank you for contribution!✨

This PR has been merged and your docs changes will be incorporated when they are next published.

@nethershaw
Copy link
Contributor Author

nethershaw commented Aug 11, 2022

Examining the integration tests forced me to consider slightly expanding the scope of my modifications to ensure consistency wherever the result keys instance_ids or instances should appear. These additional modifications are principally to the cases where exact_count is defined and the number requested differs from the number existing, resulting in a subset of either launches or terminations. In these cases, the result values should always be sufficient to use set theory operations to distinguish between and extract either the unmodified instances, the modified instances, or both.

I had intended to keep it simple. Sorry about that.

@ansibullbot ansibullbot added integration tests/integration tests tests and removed small_patch Hopefully easy to review labels Aug 11, 2022
@softwarefactory-project-zuul
Copy link
Contributor

Build failed.

✔️ ansible-galaxy-importer SUCCESS in 4m 14s
✔️ build-ansible-collection SUCCESS in 6m 17s
ansible-test-sanity-aws-ansible-python38 FAILURE in 8m 28s
ansible-test-sanity-aws-ansible-2.12-python38 FAILURE in 10m 31s
ansible-test-sanity-aws-ansible-2.13-python38 FAILURE in 10m 14s
✔️ ansible-test-units-amazon-aws-python38 SUCCESS in 6m 16s
✔️ ansible-test-units-amazon-aws-python39 SUCCESS in 8m 00s
✔️ ansible-test-splitter SUCCESS in 2m 45s
integration-amazon.aws-1 FAILURE in 45m 54s
⚠️ integration-amazon.aws-2 SKIPPED
⚠️ integration-amazon.aws-3 SKIPPED
⚠️ integration-amazon.aws-4 SKIPPED
⚠️ integration-amazon.aws-5 SKIPPED
⚠️ integration-amazon.aws-6 SKIPPED
⚠️ integration-amazon.aws-7 SKIPPED
⚠️ integration-amazon.aws-8 SKIPPED
⚠️ integration-amazon.aws-9 SKIPPED
⚠️ integration-amazon.aws-10 SKIPPED
⚠️ integration-amazon.aws-11 SKIPPED
⚠️ integration-amazon.aws-12 SKIPPED
⚠️ integration-amazon.aws-13 SKIPPED
⚠️ integration-community.aws-1 SKIPPED
⚠️ integration-community.aws-2 SKIPPED
⚠️ integration-community.aws-3 SKIPPED
⚠️ integration-community.aws-4 SKIPPED
⚠️ integration-community.aws-5 SKIPPED
⚠️ integration-community.aws-6 SKIPPED
⚠️ integration-community.aws-7 SKIPPED
⚠️ integration-community.aws-8 SKIPPED
⚠️ integration-community.aws-9 SKIPPED
⚠️ integration-community.aws-10 SKIPPED
⚠️ integration-community.aws-11 SKIPPED
⚠️ integration-community.aws-12 SKIPPED
⚠️ integration-community.aws-13 SKIPPED

@tremble
Copy link
Contributor

tremble commented Aug 11, 2022

My general experience has been that working on the integration tests results in the author thinking more deeply about the consequences of the change, so it's certainly not a bad thing that this has resulted in the PR growing a bit it just highlights that things were inconsistent in multiple places, and it's still a nice self-contained change.

What you may find is that when wait isn't specified the return results contain partial results (since some instances don't exist yet)

It looks like some of the tests are failing, the links in the bot's comment go to Zuul where the CI tests are being run and from there it's possible to see why the tests are failing. The sanity test results are a little spammy, I tend to do a search in the raw logs for "ERROR". In this case it looks like there's a little trailing whitespace on line 1953:

ERROR: plugins/modules/ec2_instance.py:1953:110: W291: trailing whitespace

Copy link
Contributor

@alinabuzachis alinabuzachis left a comment

Choose a reason for hiding this comment

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

@nethershaw thank you for working on this. Could you please rebase this PR? You must add a changelog fragment also. Thank you.

plugins/modules/ec2_instance.py Show resolved Hide resolved
@ansibullbot ansibullbot added needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR and removed community_review labels Sep 29, 2022
@ansibullbot ansibullbot added community_review and removed needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR labels Feb 9, 2023
@tremble tremble added backport-5 PR should be backported to the stable-5 branch and removed community_review labels Feb 9, 2023
nethershaw and others added 2 commits February 23, 2023 09:28
This is the Ansible way.

Since a call to enforce_count() requires that a call to find_instances() has already been made, the information required to populate the `instances` return key is already held by the variable `existing_matches`. There are zero use cases where it makes sense not to output this information; if I want exactly one such instance and an existing instance matches the filter, I definitely always want to know its details.
- populate `instance_ids` in all cases where `existing_matches` are
  present, even in check mode
- populate `instances` in all non-check mode cases where
  `existing_matches` are present
- the `instance_ids` and `instances` return values are always a union of
  any `existing_matches` and instances launched/terminated by the module
- the only time `instance_ids` is absent is in the case that check mode
  is true and `existing_matches` is the empty set

When `exact_count` is in use:
- if a call to `ensure_present()` would launch instances and
  `existing_matches` are present, the return key `changed_ids` will
  indicate only the launched instances; the return key `instance_ids`
  will include both existing and launched instances. This allows for
  selection of either subset of the cohort.
- if a call to `enforce_count()` would terminate instances and `existing
  matches` are present, the return key `terminated_ids` will still
  indicate the terminated instances; the return key `instance_ids`
  will indicate all instances that matched the filter query prior to any
  terminations as a final means of preserving the metadata of all
  instances in the cohort.
@softwarefactory-project-zuul
Copy link
Contributor

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

✔️ ansible-galaxy-importer SUCCESS in 4m 13s
✔️ build-ansible-collection SUCCESS in 12m 34s
✔️ ansible-test-sanity-aws-ansible-python38 SUCCESS in 10m 36s (non-voting)
✔️ ansible-test-sanity-aws-ansible-2.12-python38 SUCCESS in 10m 43s
✔️ ansible-test-sanity-aws-ansible-2.13-python38 SUCCESS in 10m 25s
ansible-test-sanity-aws-ansible-2.14 POST_FAILURE in 10m 09s
✔️ ansible-test-units-amazon-aws-python36 SUCCESS in 11m 31s
✔️ ansible-test-units-amazon-aws-python38 SUCCESS in 10m 19s
✔️ ansible-test-units-amazon-aws-python39 SUCCESS in 10m 24s
✔️ ansible-test-units-amazon-aws-python310 SUCCESS in 9m 39s
✔️ cloud-tox-py3 SUCCESS in 6m 45s
✔️ ansible-test-changelog SUCCESS in 4m 06s
✔️ ansible-test-splitter SUCCESS in 4m 33s
✔️ integration-amazon.aws-1 SUCCESS in 26m 28s
✔️ integration-amazon.aws-2 SUCCESS in 15m 56s
✔️ integration-amazon.aws-3 SUCCESS in 13m 53s
✔️ integration-amazon.aws-4 SUCCESS in 11m 28s
✔️ integration-amazon.aws-5 SUCCESS in 12m 24s
✔️ integration-amazon.aws-6 SUCCESS in 7m 12s
✔️ integration-amazon.aws-7 SUCCESS in 11m 21s
✔️ integration-amazon.aws-8 SUCCESS in 12m 35s
✔️ integration-amazon.aws-9 SUCCESS in 6m 59s
✔️ integration-amazon.aws-10 SUCCESS in 13m 04s
✔️ integration-amazon.aws-11 SUCCESS in 8m 01s
integration-amazon.aws-12 RETRY_LIMIT in 1m 27s
✔️ integration-amazon.aws-13 SUCCESS in 7m 49s
✔️ integration-amazon.aws-14 SUCCESS in 15m 55s
✔️ integration-amazon.aws-15 SUCCESS in 12m 23s
✔️ integration-amazon.aws-16 SUCCESS in 8m 45s
✔️ integration-amazon.aws-17 SUCCESS in 8m 13s
✔️ integration-community.aws-1 SUCCESS in 5m 02s
Skipped 26 jobs

@tremble tremble added the mergeit Merge the PR (SoftwareFactory) label Feb 23, 2023
@softwarefactory-project-zuul
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/e90a68f4c681420a9728b7568faf7d3d

✔️ ansible-galaxy-importer SUCCESS in 4m 01s
✔️ build-ansible-collection SUCCESS in 12m 19s
✔️ ansible-test-splitter SUCCESS in 4m 34s
✔️ integration-amazon.aws-1 SUCCESS in 28m 33s
✔️ integration-amazon.aws-2 SUCCESS in 15m 30s
✔️ integration-amazon.aws-3 SUCCESS in 12m 07s
✔️ integration-amazon.aws-4 SUCCESS in 10m 56s
✔️ integration-amazon.aws-5 SUCCESS in 12m 36s
✔️ integration-amazon.aws-6 SUCCESS in 11m 37s
✔️ integration-amazon.aws-7 SUCCESS in 11m 51s
✔️ integration-amazon.aws-8 SUCCESS in 8m 02s
✔️ integration-amazon.aws-9 SUCCESS in 7m 09s
✔️ integration-amazon.aws-10 SUCCESS in 12m 55s
✔️ integration-amazon.aws-11 SUCCESS in 11m 08s
✔️ integration-amazon.aws-12 SUCCESS in 10m 22s
✔️ integration-amazon.aws-13 SUCCESS in 7m 08s
✔️ integration-amazon.aws-14 SUCCESS in 9m 54s
✔️ integration-amazon.aws-15 SUCCESS in 10m 50s
✔️ integration-amazon.aws-16 SUCCESS in 7m 42s
integration-amazon.aws-17 RETRY_LIMIT in 1m 26s
Skipped 27 jobs

@tremble
Copy link
Contributor

tremble commented Feb 23, 2023

regate

@softwarefactory-project-zuul
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/f364119011b54be4b20838a97cb06eee

✔️ ansible-galaxy-importer SUCCESS in 3m 39s
✔️ build-ansible-collection SUCCESS in 12m 54s
✔️ ansible-test-splitter SUCCESS in 4m 46s
integration-amazon.aws-1 FAILURE in 9m 22s
✔️ integration-amazon.aws-2 SUCCESS in 12m 16s
✔️ integration-amazon.aws-3 SUCCESS in 14m 26s
✔️ integration-amazon.aws-4 SUCCESS in 11m 30s
✔️ integration-amazon.aws-5 SUCCESS in 9m 49s
✔️ integration-amazon.aws-6 SUCCESS in 10m 26s
✔️ integration-amazon.aws-7 SUCCESS in 12m 12s
✔️ integration-amazon.aws-8 SUCCESS in 13m 36s
✔️ integration-amazon.aws-9 SUCCESS in 6m 54s
✔️ integration-amazon.aws-10 SUCCESS in 12m 25s
✔️ integration-amazon.aws-11 SUCCESS in 12m 41s
✔️ integration-amazon.aws-12 SUCCESS in 13m 33s
✔️ integration-amazon.aws-13 SUCCESS in 8m 01s
✔️ integration-amazon.aws-14 SUCCESS in 14m 38s
✔️ integration-amazon.aws-15 SUCCESS in 13m 58s
✔️ integration-amazon.aws-16 SUCCESS in 9m 36s
✔️ integration-amazon.aws-17 SUCCESS in 10m 18s
✔️ integration-community.aws-1 SUCCESS in 7m 45s
Skipped 26 jobs

@tremble
Copy link
Contributor

tremble commented Feb 23, 2023

regate

@tremble tremble added this to the 5.3.0 milestone Feb 23, 2023
@softwarefactory-project-zuul
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/07080cc00e2e4168835bcb1745cc4bc9

✔️ ansible-galaxy-importer SUCCESS in 4m 25s
✔️ build-ansible-collection SUCCESS in 12m 24s
✔️ ansible-test-splitter SUCCESS in 4m 32s
✔️ integration-amazon.aws-1 SUCCESS in 25m 05s
✔️ integration-amazon.aws-2 SUCCESS in 14m 17s
✔️ integration-amazon.aws-3 SUCCESS in 11m 03s
✔️ integration-amazon.aws-4 SUCCESS in 12m 34s
✔️ integration-amazon.aws-5 SUCCESS in 8m 52s
✔️ integration-amazon.aws-6 SUCCESS in 11m 51s
✔️ integration-amazon.aws-7 SUCCESS in 13m 33s
✔️ integration-amazon.aws-8 SUCCESS in 12m 51s
✔️ integration-amazon.aws-9 SUCCESS in 9m 29s
✔️ integration-amazon.aws-10 SUCCESS in 13m 11s
✔️ integration-amazon.aws-11 SUCCESS in 8m 21s
✔️ integration-amazon.aws-12 SUCCESS in 10m 45s
✔️ integration-amazon.aws-13 SUCCESS in 9m 10s
✔️ integration-amazon.aws-14 SUCCESS in 9m 25s
✔️ integration-amazon.aws-15 SUCCESS in 8m 22s
✔️ integration-amazon.aws-16 SUCCESS in 7m 57s
integration-amazon.aws-17 RETRY_LIMIT in 1m 31s
Skipped 27 jobs

@tremble
Copy link
Contributor

tremble commented Feb 24, 2023

regate

@softwarefactory-project-zuul
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/c4b8cb9994c44f0d9d95a2e3305d0ffa

✔️ ansible-galaxy-importer SUCCESS in 4m 43s
✔️ build-ansible-collection SUCCESS in 12m 38s
✔️ ansible-test-splitter SUCCESS in 4m 36s
✔️ integration-amazon.aws-1 SUCCESS in 27m 57s
integration-amazon.aws-2 RETRY_LIMIT in 1m 30s
✔️ integration-amazon.aws-3 SUCCESS in 16m 40s
✔️ integration-amazon.aws-4 SUCCESS in 10m 49s
✔️ integration-amazon.aws-5 SUCCESS in 12m 00s
✔️ integration-amazon.aws-6 SUCCESS in 14m 27s
✔️ integration-amazon.aws-7 SUCCESS in 11m 03s
integration-amazon.aws-8 RETRY_LIMIT in 1m 31s
✔️ integration-amazon.aws-9 SUCCESS in 11m 20s
✔️ integration-amazon.aws-10 SUCCESS in 15m 38s
✔️ integration-amazon.aws-11 SUCCESS in 10m 54s
✔️ integration-amazon.aws-12 SUCCESS in 11m 23s
✔️ integration-amazon.aws-13 SUCCESS in 12m 34s
✔️ integration-amazon.aws-14 SUCCESS in 9m 57s
✔️ integration-amazon.aws-15 SUCCESS in 10m 00s
✔️ integration-amazon.aws-16 SUCCESS in 9m 12s
✔️ integration-amazon.aws-17 SUCCESS in 10m 25s
Skipped 27 jobs

@tremble
Copy link
Contributor

tremble commented Feb 24, 2023

regate

@softwarefactory-project-zuul
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/968b8f3e8de647078f8017ff4bb8de1d

✔️ ansible-galaxy-importer SUCCESS in 4m 36s
✔️ build-ansible-collection SUCCESS in 12m 36s
✔️ ansible-test-splitter SUCCESS in 4m 35s
integration-amazon.aws-1 FAILURE in 9m 14s
✔️ integration-amazon.aws-2 SUCCESS in 17m 58s
✔️ integration-amazon.aws-3 SUCCESS in 10m 22s
✔️ integration-amazon.aws-4 SUCCESS in 13m 23s
✔️ integration-amazon.aws-5 SUCCESS in 9m 30s
✔️ integration-amazon.aws-6 SUCCESS in 8m 29s
✔️ integration-amazon.aws-7 SUCCESS in 9m 24s
✔️ integration-amazon.aws-8 SUCCESS in 9m 25s
✔️ integration-amazon.aws-9 SUCCESS in 13m 29s
✔️ integration-amazon.aws-10 SUCCESS in 12m 26s
✔️ integration-amazon.aws-11 SUCCESS in 7m 00s
✔️ integration-amazon.aws-12 SUCCESS in 9m 31s
✔️ integration-amazon.aws-13 SUCCESS in 9m 49s
✔️ integration-amazon.aws-14 SUCCESS in 11m 37s
✔️ integration-amazon.aws-15 SUCCESS in 12m 27s
✔️ integration-amazon.aws-16 SUCCESS in 8m 16s
✔️ integration-amazon.aws-17 SUCCESS in 12m 48s
Skipped 27 jobs

@tremble
Copy link
Contributor

tremble commented Feb 24, 2023

regate

@softwarefactory-project-zuul
Copy link
Contributor

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

✔️ ansible-galaxy-importer SUCCESS in 3m 58s
✔️ build-ansible-collection SUCCESS in 12m 23s
✔️ ansible-test-splitter SUCCESS in 4m 45s
✔️ integration-amazon.aws-1 SUCCESS in 26m 00s
✔️ integration-amazon.aws-2 SUCCESS in 12m 35s
✔️ integration-amazon.aws-3 SUCCESS in 11m 44s
✔️ integration-amazon.aws-4 SUCCESS in 7m 28s
✔️ integration-amazon.aws-5 SUCCESS in 7m 42s
✔️ integration-amazon.aws-6 SUCCESS in 7m 13s
✔️ integration-amazon.aws-7 SUCCESS in 11m 14s
✔️ integration-amazon.aws-8 SUCCESS in 8m 38s
✔️ integration-amazon.aws-9 SUCCESS in 7m 07s
✔️ integration-amazon.aws-10 SUCCESS in 14m 48s
✔️ integration-amazon.aws-11 SUCCESS in 11m 14s
✔️ integration-amazon.aws-12 SUCCESS in 10m 59s
✔️ integration-amazon.aws-13 SUCCESS in 9m 18s
✔️ integration-amazon.aws-14 SUCCESS in 8m 30s
✔️ integration-amazon.aws-15 SUCCESS in 8m 15s
✔️ integration-amazon.aws-16 SUCCESS in 7m 44s
✔️ integration-amazon.aws-17 SUCCESS in 9m 43s
Skipped 27 jobs

@softwarefactory-project-zuul softwarefactory-project-zuul bot merged commit 0ef8359 into ansible-collections:main Feb 24, 2023
@patchback
Copy link

patchback bot commented Feb 24, 2023

Backport to stable-5: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 0ef8359 on top of patchback/backports/stable-5/0ef8359fd96c5b141683bd526564def5399501f0/pr-964

Backporting merged PR #964 into main

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/ansible-collections/amazon.aws.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/stable-5/0ef8359fd96c5b141683bd526564def5399501f0/pr-964 upstream/stable-5
  4. Now, cherry-pick PR fix incomplete enforce_count() return values #964 contents into that branch:
    $ git cherry-pick -x 0ef8359fd96c5b141683bd526564def5399501f0
    If it'll yell at you with something like fatal: Commit 0ef8359fd96c5b141683bd526564def5399501f0 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x 0ef8359fd96c5b141683bd526564def5399501f0
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR fix incomplete enforce_count() return values #964 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/stable-5/0ef8359fd96c5b141683bd526564def5399501f0/pr-964
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

tremble pushed a commit to tremble/amazon.aws that referenced this pull request Feb 24, 2023
fix incomplete enforce_count() return values

SUMMARY

This is the Ansible way.
Since a call to enforce_count() requires that a call to find_instances() has already been made, the information required to populate the instances return key is already held by the variable existing_matches. There are zero use cases where it makes sense not to output this information; if I want exactly one such instance and an existing instance matches the filter, I definitely always want to know its details.

Fixes ansible-collections#963, ansible-collections#859
ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME

ec2_instance
ADDITIONAL INFORMATION

See linked issues.

Before:
{
    "changed": false,
    "invocation": {
        "module_args": {
            "availability_zone": null,
            "aws_access_key": null,
            "aws_ca_bundle": null,
            "aws_config": null,
            "aws_secret_key": null,
            "count": null,
            "cpu_credit_specification": null,
            "cpu_options": null,
            "debug_botocore_endpoint_logs": false,
            "detailed_monitoring": false,
            "ebs_optimized": true,
            "ec2_url": null,
            "exact_count": 1,
            "filters": {
                "tag:Name": "something",
                "tag:env": "prod"
            },
            "image": null,
            "image_id": "REDACTED",
            "instance_ids": [],
            "instance_initiated_shutdown_behavior": null,
            "instance_role": "REDACTED",
            "instance_type": "m5.2xlarge",
            "key_name": "REDACTED",
            "launch_template": null,
            "metadata_options": null,
            "name": null,
            "network": {
                "source_dest_check": true
            },
            "placement_group": null,
            "profile": null,
            "purge_tags": false,
            "region": "us-west-2",
            "security_group": null,
            "security_groups": [
                "default"
            ],
            "security_token": null,
            "state": "present",
            "tags": {
                "Name": "something",
                "env": "prod",
            },
            "tenancy": null,
            "termination_protection": null,
            "tower_callback": null,
            "user_data": "REDACTED",
            "validate_certs": true,
            "volumes": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 10,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 100,
                        "volume_type": "gp3"
                    }
                }
            ],
            "vpc_subnet_id": "REDACTED",
            "wait": true,
            "wait_timeout": 300
        }
    },
    "msg": "1 instances already running, nothing to do."
}
After:
{
    "changed": false,
    "instance_ids": [
        "REDACTED"
    ],
    "instances": [
        {
            "ami_launch_index": 0,
            "architecture": "x86_64",
            "block_device_mappings": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "attach_time": "2022-08-10T19:50:24+00:00",
                        "delete_on_termination": true,
                        "status": "attached",
                        "volume_id": "REDACTED"
                    }
                }
            ],
            "capacity_reservation_specification": {
                "capacity_reservation_preference": "open"
            },
            "client_token": "REDACTED",
            "cpu_options": {
                "core_count": 4,
                "threads_per_core": 2
            },
            "ebs_optimized": true,
            "ena_support": true,
            "enclave_options": {
                "enabled": false
            },
            "hibernation_options": {
                "configured": false
            },
            "hypervisor": "xen",
            "iam_instance_profile": {
                "arn": "REDACTED",
                "id": "REDACTED"
            },
            "image_id": "REDACTED",
            "instance_id": "REDACTED",
            "instance_type": "m5.2xlarge",
            "key_name": "REDACTED",
            "launch_time": "2022-08-10T19:50:23+00:00",
            "maintenance_options": {
                "auto_recovery": "default"
            },
            "metadata_options": {
                "http_endpoint": "enabled",
                "http_protocol_ipv6": "disabled",
                "http_put_response_hop_limit": 1,
                "http_tokens": "optional",
                "instance_metadata_tags": "disabled",
                "state": "applied"
            },
            "monitoring": {
                "state": "disabled"
            },
            "network_interfaces": [
                {
                    "attachment": {
                        "attach_time": "2022-08-10T19:50:23+00:00",
                        "attachment_id": "REDACTED",
                        "delete_on_termination": true,
                        "device_index": 0,
                        "network_card_index": 0,
                        "status": "attached"
                    },
                    "description": "",
                    "groups": [
                        {
                            "group_id": "REDACTED",
                            "group_name": "REDACTED"
                        }
                    ],
                    "interface_type": "interface",
                    "ipv6_addresses": [],
                    "mac_address": "REDACTED",
                    "network_interface_id": "REDACTED",
                    "owner_id": "REDACTED",
                    "private_dns_name": "REDACTED",
                    "private_ip_address": "REDACTED",
                    "private_ip_addresses": [
                        {
                            "primary": true,
                            "private_dns_name": "REDACTED",
                            "private_ip_address": "REDACTED"
                        }
                    ],
                    "source_dest_check": true,
                    "status": "in-use",
                    "subnet_id": "REDACTED",
                    "vpc_id": "REDACTED"
                }
            ],
            "placement": {
                "availability_zone": "us-west-2a",
                "group_name": "",
                "tenancy": "default"
            },
            "platform_details": "Linux/UNIX",
            "private_dns_name": "REDACTED",
            "private_dns_name_options": {
                "enable_resource_name_dns_a_record": false,
                "enable_resource_name_dns_aaaa_record": false,
                "hostname_type": "ip-name"
            },
            "private_ip_address": "REDACTED",
            "product_codes": [],
            "public_dns_name": "",
            "root_device_name": "/dev/sda1",
            "root_device_type": "ebs",
            "security_groups": [
                {
                    "group_id": "REDACTED",
                    "group_name": "REDACTED"
                }
            ],
            "source_dest_check": true,
            "state": {
                "code": 16,
                "name": "running"
            },
            "state_transition_reason": "",
            "subnet_id": "REDACTED",
            "tags": {
                "Name": "something",
                "env": "prod",
            },
            "usage_operation": "RunInstances",
            "usage_operation_update_time": "2022-08-10T19:50:23+00:00",
            "virtualization_type": "hvm",
            "vpc_id": "REDACTED"
        }
    ],
    "invocation": {
        "module_args": {
            "availability_zone": null,
            "aws_access_key": null,
            "aws_ca_bundle": null,
            "aws_config": null,
            "aws_secret_key": null,
            "count": null,
            "cpu_credit_specification": null,
            "cpu_options": null,
            "debug_botocore_endpoint_logs": false,
            "detailed_monitoring": false,
            "ebs_optimized": true,
            "ec2_url": null,
            "exact_count": 1,
            "filters": {
                "tag:Name": "something",
                "tag:env": "prod"
            },
            "image": null,
            "image_id": "REDACTED",
            "instance_ids": [],
            "instance_initiated_shutdown_behavior": null,
            "instance_role": "REDACTED",
            "instance_type": "m5.2xlarge",
            "key_name": "REDACTED",
            "launch_template": null,
            "metadata_options": null,
            "name": null,
            "network": {
                "source_dest_check": true
            },
            "placement_group": null,
            "profile": null,
            "purge_tags": false,
            "region": "us-west-2",
            "security_group": null,
            "security_groups": [
                "default"
            ],
            "security_token": null,
            "state": "present",
            "tags": {
                "Name": "something",
                "env": "prod",
            },
            "tenancy": null,
            "termination_protection": null,
            "tower_callback": null,
            "user_data": "REDACTED",
            "validate_certs": true,
            "volumes": [
                {
                    "device_name": "/dev/sda1",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdo",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 20,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdp",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 10,
                        "volume_type": "gp3"
                    }
                },
                {
                    "device_name": "/dev/xvdi",
                    "ebs": {
                        "delete_on_termination": true,
                        "encrypted": true,
                        "volume_size": 100,
                        "volume_type": "gp3"
                    }
                }
            ],
            "vpc_subnet_id": "REDACTED",
            "wait": true,
            "wait_timeout": 300
        }
    },
    "msg": "1 instances already running, nothing to do."
}

Reviewed-by: Alina Buzachis
Reviewed-by: Mark Chappell
abikouo pushed a commit to abikouo/amazon.aws that referenced this pull request Sep 18, 2023
sns_topic - Add tags and purge_tags options

SUMMARY

sns_topic - Add tags and purge_tags options
Closes ansible-collections#964

ISSUE TYPE


Feature Pull Request

COMPONENT NAME

sns_topic

Reviewed-by: Mark Woolley <mw@marknet15.com>
Reviewed-by: Mark Chappell <None>
Reviewed-by: Alina Buzachis <None>
abikouo pushed a commit to abikouo/amazon.aws that referenced this pull request Sep 18, 2023
sns_topic - Add tags and purge_tags options

SUMMARY

sns_topic - Add tags and purge_tags options
Closes ansible-collections#964

ISSUE TYPE


Feature Pull Request

COMPONENT NAME

sns_topic

Reviewed-by: Mark Woolley <mw@marknet15.com>
Reviewed-by: Mark Chappell <None>
Reviewed-by: Alina Buzachis <None>
abikouo pushed a commit to abikouo/amazon.aws that referenced this pull request Oct 24, 2023
sns_topic - Add tags and purge_tags options

SUMMARY

sns_topic - Add tags and purge_tags options
Closes ansible-collections#964

ISSUE TYPE


Feature Pull Request

COMPONENT NAME

sns_topic

Reviewed-by: Mark Woolley <mw@marknet15.com>
Reviewed-by: Mark Chappell <None>
Reviewed-by: Alina Buzachis <None>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-5 PR should be backported to the stable-5 branch bug This issue/PR relates to a bug community_review integration tests/integration mergeit Merge the PR (SoftwareFactory) module module new_contributor Help guide this first time contributor plugins plugin (any type) tests tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ec2_instance should still return instance details when instances already exist
4 participants