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

ec2_key - support for ED25519 key type #616

Merged
merged 2 commits into from
Jan 18, 2022

Conversation

abikouo
Copy link
Contributor

@abikouo abikouo commented Jan 14, 2022

SUMMARY

ec2_key - add support for ED25519 key type
This parameter requires botocore>=1.21.23

ISSUE TYPE
  • Feature Pull Request
COMPONENT NAME

ec2_key

@abikouo
Copy link
Contributor Author

abikouo commented Jan 17, 2022

recheck

@abikouo abikouo requested a review from tremble January 17, 2022 08:35
@tremble tremble linked an issue Jan 17, 2022 that may be closed by this pull request
1 task
Copy link
Contributor

@tremble tremble left a comment

Choose a reason for hiding this comment

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

The code change looks sound, I'd like to see some minor changes to the way you're running the tests though.

@abikouo
Copy link
Contributor Author

abikouo commented Jan 17, 2022

recheck

@abikouo
Copy link
Contributor Author

abikouo commented Jan 17, 2022

recheck

@abikouo abikouo added the gate label Jan 18, 2022
Copy link
Contributor

@ansible-zuul ansible-zuul bot left a comment

Choose a reason for hiding this comment

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

LGTM!

@ansible-zuul ansible-zuul bot merged commit 6f5c146 into ansible-collections:main Jan 18, 2022
abikouo pushed a commit to abikouo/amazon.aws that referenced this pull request Oct 24, 2023
…s/ec2_vpc_route_table

Add NotFound retries when tagging a new RouteTable

SUMMARY
Prior to botocore 1.17.24 it wasn't possible to tag the route tables as a part of the creation call. As such a separate create tags call is performed after the creation.  However, Amazon being 'Eventually consistent" we sometimes see NotFound errors just after creating a route table.
Rather than adding hard to test logic, add InvalidRouteTableID.NotFound retries.  The tests for RouteTable existing uses its own decorator, we can safely retry on InvalidRouteTableID.NotFound
Also move from custom tag handling code over to the shared code in ansible_collections.amazon.aws.plugins.module_utils.ec2
ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME
ec2_vpc_route_table
ADDITIONAL INFORMATION

TASK [ec2_vpc_endpoint : Create a minimal route table (with IGW)] **************
task path: /home/zuul/.ansible/collections/ansible_collections/community/aws/tests/integration/targets/ec2_vpc_endpoint/tasks/main.yml:54
<testhost> ESTABLISH LOCAL CONNECTION FOR USER: zuul
<testhost> EXEC /bin/sh -c 'echo ~zuul && sleep 0'
<testhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/zuul/.ansible/tmp `"&& mkdir "` echo /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036 `" && echo ansible-tmp-1624964310.5067005-7213-234903855964036="` echo /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036 `" ) && sleep 0'
Using module file /home/zuul/.ansible/collections/ansible_collections/community/aws/plugins/modules/ec2_vpc_route_table.py
<testhost> PUT /home/zuul/.ansible/tmp/ansible-local-7051vh18nelt/tmpdx500zwb TO /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036/AnsiballZ_ec2_vpc_route_table.py
<testhost> EXEC /bin/sh -c 'chmod u+x /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036/ /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036/AnsiballZ_ec2_vpc_route_table.py && sleep 0'
<testhost> EXEC /bin/sh -c 'ANSIBLE_DEBUG_BOTOCORE_LOGS=True /home/zuul/venv/bin/python3.6 /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036/AnsiballZ_ec2_vpc_route_table.py && sleep 0'
<testhost> EXEC /bin/sh -c 'rm -f -r /home/zuul/.ansible/tmp/ansible-tmp-1624964310.5067005-7213-234903855964036/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_ec2_vpc_route_table_payload_y_h0b0in/ansible_ec2_vpc_route_table_payload.zip/ansible_collections/community/aws/plugins/modules/ec2_vpc_route_table.py", line 380, in ensure_tags
  File "/tmp/ansible_ec2_vpc_route_table_payload_y_h0b0in/ansible_ec2_vpc_route_table_payload.zip/ansible_collections/amazon/aws/plugins/module_utils/core.py", line 288, in deciding_wrapper
    return retrying_wrapper(*args, **kwargs)
  File "/tmp/ansible_ec2_vpc_route_table_payload_y_h0b0in/ansible_ec2_vpc_route_table_payload.zip/ansible_collections/amazon/aws/plugins/module_utils/cloud.py", line 154, in retry_func
    raise e
  File "/tmp/ansible_ec2_vpc_route_table_payload_y_h0b0in/ansible_ec2_vpc_route_table_payload.zip/ansible_collections/amazon/aws/plugins/module_utils/cloud.py", line 144, in retry_func
    return f(*args, **kwargs)
  File "/home/zuul/venv/lib/python3.6/site-packages/botocore/client.py", line 386, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/zuul/venv/lib/python3.6/site-packages/botocore/client.py", line 705, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidRouteTableID.NotFound) when calling the CreateTags operation: The routeTable ID 'rtb-08ce2a0fac35f2cc3' does not exist
fatal: [testhost]: FAILED! => {
    "boto3_version": "1.17.102",
    "botocore_version": "1.20.102",
    "changed": false,
    "error": {
        "code": "InvalidRouteTableID.NotFound",
        "message": "The routeTable ID 'rtb-08ce2a0fac35f2cc3' does not exist"
    },
    "invocation": {
        "module_args": {
            "aws_access_key": "ASIA6CCDWXDOL3X5ZIJP",
            "aws_ca_bundle": null,
            "aws_config": null,
            "aws_secret_key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "debug_botocore_endpoint_logs": true,
            "ec2_url": null,
            "lookup": "tag",
            "profile": null,
            "propagating_vgw_ids": null,
            "purge_routes": true,
            "purge_subnets": true,
            "purge_tags": false,
            "region": "us-east-1",
            "route_table_id": null,
            "routes": [
                {
                    "destination_cidr_block": "0.0.0.0/0",
                    "gateway_id": "igw-0c6e113ca6c5d9a2c"
                }
            ],
            "security_token": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "state": "present",
            "subnets": [],
            "tags": {
                "AnsibleRun": "ansible-test-56393648-centos-8-1vcpu-vexxhost-ca-ymq-1-00016024",
                "AnsibleTest": "ec2_vpc_endpoint",
                "Name": "ansible-test-56393648-centos-8-1vcpu-vexxhost-ca-ymq-1-00016024-igw"
            },
            "validate_certs": true,
            "vpc_id": "vpc-055d3d6ce9bec0dc3"
        }
    },
    "msg": "Couldn't create tags: An error occurred (InvalidRouteTableID.NotFound) when calling the CreateTags operation: The routeTable ID 'rtb-08ce2a0fac35f2cc3' does not exist",
    "resource_actions": [
        "ec2:CreateRouteTable",
        "ec2:CreateRoute",
        "ec2:CreateTags",
        "ec2:DescribeRouteTables",
        "ec2:DescribeTags"
    ],
    "response_metadata": {
        "http_headers": {
            "cache-control": "no-cache, no-store",
            "connection": "close",
            "content-type": "text/xml;charset=UTF-8",
            "date": "Tue, 29 Jun 2021 10:58:31 GMT",
            "server": "AmazonEC2",
            "strict-transport-security": "max-age=31536000; includeSubDomains",
            "transfer-encoding": "chunked",
            "vary": "accept-encoding",
            "x-amzn-requestid": "fbefb890-4384-4001-a374-cb13db9e0d6c"
        },
        "http_status_code": 400,
        "request_id": "fbefb890-4384-4001-a374-cb13db9e0d6c",
        "retry_attempts": 0
    }
}

Reviewed-by: Jill R <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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ec2_key: support ed25519 key-type
3 participants