[AWS] Add Ansible Version to botocore user agent string (#39993)

Pull `config` out if it was provided to boto3_conn and add the useragent string
pull/40291/merge
Ryan Brown 6 years ago committed by GitHub
parent 677fe1076d
commit dda7d9e704
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -29,6 +29,7 @@
import os
import re
from ansible.module_utils.ansible_release import __version__
from ansible.module_utils._text import to_native, to_text
from ansible.module_utils.cloud import CloudRetry
from ansible.module_utils.six import string_types, binary_type, text_type
@ -126,15 +127,24 @@ def _boto3_conn(conn_type=None, resource=None, region=None, endpoint=None, **par
'the conn_type parameter in the boto3_conn function '
'call')
if params.get('config'):
config = params.pop('config')
config.user_agent_extra = 'Ansible/{0}'.format(__version__)
else:
config = botocore.config.Config(
user_agent_extra='Ansible/{0}'.format(__version__),
)
session = boto3.session.Session(
profile_name=profile,
)
if conn_type == 'resource':
resource = boto3.session.Session(profile_name=profile).resource(resource, region_name=region, endpoint_url=endpoint, **params)
return resource
return session.resource(resource, config=config, region_name=region, endpoint_url=endpoint, **params)
elif conn_type == 'client':
client = boto3.session.Session(profile_name=profile).client(resource, region_name=region, endpoint_url=endpoint, **params)
return client
return session.client(resource, config=config, region_name=region, endpoint_url=endpoint, **params)
else:
client = boto3.session.Session(profile_name=profile).client(resource, region_name=region, endpoint_url=endpoint, **params)
resource = boto3.session.Session(profile_name=profile).resource(resource, region_name=region, endpoint_url=endpoint, **params)
client = session.client(resource, region_name=region, endpoint_url=endpoint, **params)
resource = session.resource(resource, region_name=region, endpoint_url=endpoint, **params)
return client, resource

@ -319,7 +319,9 @@ def walk_test_targets(path=None, module_path=None, extensions=None, prefix=None,
file_path = os.path.join(root, file_name)
if os.path.islink(file_path):
continue
# special case to allow a symlink of ansible_release.py -> ../release.py
if file_path != 'lib/ansible/module_utils/ansible_release.py':
continue
yield TestTarget(file_path, module_path, prefix, path)

Loading…
Cancel
Save