-
Notifications
You must be signed in to change notification settings - Fork 398
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/elbv2-tg: KeyError when getting ProtocolVersion #1800
fix/elbv2-tg: KeyError when getting ProtocolVersion #1800
Conversation
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 10s |
recheck |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 4m 20s |
recheck |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 3m 57s |
Docs Build 📝Thank you for contribution!✨ This PR has been merged and your docs changes will be incorporated when they are next published. |
regate |
Build succeeded (gate pipeline). ✔️ ansible-galaxy-importer SUCCESS in 4m 08s |
Backport to stable-5: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 3db37d7 on top of patchback/backports/stable-5/3db37d7507afeda96ae50630c15a120a94633f26/pr-1800 Backporting merged PR #1800 into main
🤖 @patchback |
[backport] [stable-5] fix/elbv2-tg: KeyError when getting ProtocolVersion Manual backport of #1800 SUMMARY Fix KeyError on module elb_target_group. Given the task: - name: Target | AWS | Create {{ tg.name }} community.aws.elb_target_group: state: present region: "{{ tg.region | d(omit) }}" name: "{{ tg.name }}" vpc_id: "{{ vpc_id }}" tags: "{{ tg.tags | d(omit) }}" purge_tags: "{{ tg.purge_tags | d('no') }}" protocol: "{{ tg.protocol }}" port: "{{ tg.port }}" # Health Check health_check_protocol: "{{ tg.health_check_protocol }}" health_check_path: "{{ tg.health_check_path | d(omit) }}" health_check_port: "{{ tg.health_check_port | d(omit) }}" successful_response_codes: "{{ tg.successful_response_codes | d(omit) }}" health_check_interval: "{{ tg.health_check_interval | d(omit) }}" health_check_timeout: "{{ tg.health_check_timeout | d(omit) }}" healthy_threshold_count: "{{ tg.healthy_threshold_count | d(omit) }}" unhealthy_threshold_count: "{{ tg.unhealthy_threshold_count | d(omit) }}" # Targets target_type: "{{ tg.target_type | d(omit) }}" modify_targets: "{{ tg.modify_targets | d(omit) }}" tagets: "{{ tg.tagets | d(omit) }}" # Config stickiness_enabled: "{{ tg.stickiness_enabled | d(omit) }}" stickiness_app_cookie_duration: "{{ tg.stickiness_app_cookie_duration | d(omit) }}" stickiness_app_cookie_name: "{{ tg.stickiness_app_cookie_name | d(omit) }}" stickiness_lb_cookie_duration: "{{ tg.stickiness_lb_cookie_duration | d(omit) }}" stickiness_type: "{{ tg.stickiness_type | d(omit) }}" proxy_protocol_v2_enabled: "{{ tg.proxy_protocol_v2_enabled | d(omit) }}" preserve_client_ip_enabled: "{{ tg.preserve_client_ip_enabled | d(omit) }}" deregistration_delay_timeout: "{{ tg.deregistration_delay_timeout | d(omit) }}" register: tg_out until: "tg_out is not failed" retries: 10 delay: 5 The following error when running against existing resources (after creation/idempotency) that do not use ProtocolVersion (optional*, E.g: TCP): The full traceback is: Traceback (most recent call last): File "/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py", line 107, in <module> _ansiballz_main() File "/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py", line 99, in _ansiballz_main invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS) File "/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py", line 47, in invoke_module runpy.run_module(mod_name='ansible_collections.community.aws.plugins.modules.elb_target_group', init_globals=dict(_module_fqn='ansible_collections.community.aws.plugins.modules.elb_target_group', _modlib_path=modlib_path), File "/usr/lib64/python3.9/runpy.py", line 225, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "/usr/lib64/python3.9/runpy.py", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py", line 989, in <module> File "/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py", line 983, in main File "/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py", line 685, in create_or_update_target_group KeyError: 'ProtocolVersion' fatal: [localhost]: FAILED! => { "attempts": 10, "changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py\", line 107, in <module>\n _ansiballz_main()\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py\", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1683068584.628099-3322568-261537723315094/AnsiballZ_elb_target_group.py\", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.community.aws.plugins.modules.elb_target_group', init_globals=dict(_module_fqn='ansible_collections.community.aws.plugins.modules.elb_target_group', _modlib_path=modlib_path),\n File \"/usr/lib64/python3.9/runpy.py\", line 225, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib64/python3.9/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib64/python3.9/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py\", line 989, in <module>\n File \"/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py\", line 983, in main\n File \"/tmp/ansible_community.aws.elb_target_group_payload_y5gefe7e/ansible_community.aws.elb_target_group_payload.zip/ansible_collections/community/aws/plugins/modules/elb_target_group.py\", line 685, in create_or_update_target_group\nKeyError: 'ProtocolVersion'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1 } ProtocolVersion is not returned a valid attribute from the resource using TCP Protocol $ aws elbv2 describe-target-groups --target-group-arns arn:aws:elasticloadbalancing:us-east-1:[redacted:AWS_ACCOUNT_ID]:targetgroup/okipr3601-lfmwl-aext/513dc1925ba2791f { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:[redacted:AWS_ACCOUNT_ID]:targetgroup/okipr3601-lfmwl-aext/513dc1925ba2791f", "TargetGroupName": "okipr3601-lfmwl-aext", "Protocol": "TCP", "Port": 6443, "VpcId": "vpc-0eef74291b5613c03", "HealthCheckProtocol": "HTTPS", "HealthCheckPort": "6443", "HealthCheckEnabled": true, "HealthCheckIntervalSeconds": 10, "HealthCheckTimeoutSeconds": 10, "HealthyThresholdCount": 2, "UnhealthyThresholdCount": 2, "HealthCheckPath": "/readyz", "Matcher": { "HttpCode": "200-399" }, "LoadBalancerArns": [ "arn:aws:elasticloadbalancing:us-east-1:[redacted:AWS_ACCOUNT_ID]:loadbalancer/net/okipr3601-lfmwl-ext/93bc672ccecb2bd7" ], "TargetType": "ip", "IpAddressType": "ipv4" } ] } Versions $ ansible-galaxy collection list Collection Version -------------------- ------------ amazon.aws 5.4.0 community.aws 5.4.0 $ python -V Python 3.9.13 ansible --version ansible [core 2.14.5] config file = /home/ansible.cfg configured module search path = ['/home/myuser/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/myuser/.venvs/vpy3.9/lib64/python3.9/site-packages/ansible ansible collection location = /home/collections executable location = /home/myuser/.venvs/vpy3.9/bin/ansible python version = 3.9.13 (main, Nov 9 2022, 13:16:24) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15)] (/home/myuser/.venvs/vpy3.9/bin/python3.9) jinja version = 3.1.2 libyaml = True $ pip freeze |grep boto boto3==1.26.125 botocore==1.29.125 *ProtocolVersion is not Required, according to the API definition: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_TargetGroup.html ISSUE TYPE Bugfix Pull Request COMPONENT NAME elb_target_group ADDITIONAL INFORMATION
@tremble @alinabuzachis I wonder if this bug is a candidate for fixes on Z-stream of 5.3, what is the release cadence? |
NVM, I managed to use tag 5.5 - I was looking only for the Release page! 🙅🏽 Thanks! |
…s#1800) s3_object - remove docs for create/delete bucket. SUMMARY We dropped support for creating/deleting buckets through s3_object. ISSUE TYPE Docs Pull Request COMPONENT NAME s3_object ADDITIONAL INFORMATION Reviewed-by: Alina Buzachis
SUMMARY
Fix
KeyError
on moduleelb_target_group
.Given the task:
ProtocolVersion
is not returned a valid attribute from the resource usingTCP Protocol
*ProtocolVersion is not Required, according to the API definition: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_TargetGroup.html
ISSUE TYPE
COMPONENT NAME
ADDITIONAL INFORMATION