Make an aws_credentials documentation fragment for plugins using environment vars (#35578)
This commit is contained in:
parent
4ec16867fd
commit
fd72e4aef2
2 changed files with 43 additions and 38 deletions
|
@ -11,6 +11,8 @@ version_added: "2.5"
|
||||||
requirements:
|
requirements:
|
||||||
- boto3
|
- boto3
|
||||||
- botocore
|
- botocore
|
||||||
|
extends_documentation_fragment:
|
||||||
|
- aws_credentials
|
||||||
short_description: Look up AWS account attributes.
|
short_description: Look up AWS account attributes.
|
||||||
description:
|
description:
|
||||||
- Describes attributes of your AWS account. You can specify one of the listed
|
- Describes attributes of your AWS account. You can specify one of the listed
|
||||||
|
@ -27,39 +29,6 @@ options:
|
||||||
- max-elastic-ips
|
- max-elastic-ips
|
||||||
- vpc-max-elastic-ips
|
- vpc-max-elastic-ips
|
||||||
- has-ec2-classic
|
- has-ec2-classic
|
||||||
boto_profile:
|
|
||||||
description: The boto profile to use to create the connection.
|
|
||||||
default: null
|
|
||||||
env:
|
|
||||||
- name: AWS_PROFILE
|
|
||||||
- name: AWS_DEFAULT_PROFILE
|
|
||||||
aws_access_key:
|
|
||||||
description: The AWS access key to use.
|
|
||||||
default: null
|
|
||||||
env:
|
|
||||||
- name: AWS_ACCESS_KEY_ID
|
|
||||||
- name: AWS_ACCESS_KEY
|
|
||||||
- name: EC2_ACCESS_KEY
|
|
||||||
aws_secret_key:
|
|
||||||
description: The AWS secret key that corresponds to the access key.
|
|
||||||
default: null
|
|
||||||
env:
|
|
||||||
- name: AWS_SECRET_ACCESS_KEY
|
|
||||||
- name: AWS_SECRET_KEY
|
|
||||||
- name: EC2_SECRET_KEY
|
|
||||||
aws_security_token:
|
|
||||||
description: The AWS security token if using temporary access and secret keys.
|
|
||||||
default: null
|
|
||||||
env:
|
|
||||||
- name: AWS_SECURITY_TOKEN
|
|
||||||
- name: AWS_SESSION_TOKEN
|
|
||||||
- name: EC2_SECURITY_TOKEN
|
|
||||||
region:
|
|
||||||
description: The region for which to create the connection.
|
|
||||||
default: null
|
|
||||||
env:
|
|
||||||
- name: AWS_REGION
|
|
||||||
- name: EC2_REGION
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
EXAMPLES = """
|
EXAMPLES = """
|
||||||
|
@ -100,10 +69,7 @@ import os
|
||||||
|
|
||||||
|
|
||||||
def _boto3_conn(region, credentials):
|
def _boto3_conn(region, credentials):
|
||||||
if 'boto_profile' in credentials:
|
boto_profile = credentials.pop('aws_profile', None)
|
||||||
boto_profile = credentials.pop('boto_profile')
|
|
||||||
else:
|
|
||||||
boto_profile = None
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
connection = boto3.session.Session(profile_name=boto_profile).client('ec2', region, **credentials)
|
connection = boto3.session.Session(profile_name=boto_profile).client('ec2', region, **credentials)
|
||||||
|
@ -120,7 +86,7 @@ def _boto3_conn(region, credentials):
|
||||||
|
|
||||||
def _get_credentials(options):
|
def _get_credentials(options):
|
||||||
credentials = {}
|
credentials = {}
|
||||||
credentials['boto_profile'] = options['boto_profile']
|
credentials['aws_profile'] = options['aws_profile']
|
||||||
credentials['aws_secret_access_key'] = options['aws_secret_key']
|
credentials['aws_secret_access_key'] = options['aws_secret_key']
|
||||||
credentials['aws_access_key_id'] = options['aws_access_key']
|
credentials['aws_access_key_id'] = options['aws_access_key']
|
||||||
credentials['aws_session_token'] = options['aws_security_token']
|
credentials['aws_session_token'] = options['aws_security_token']
|
||||||
|
|
39
lib/ansible/utils/module_docs_fragments/aws_credentials.py
Normal file
39
lib/ansible/utils/module_docs_fragments/aws_credentials.py
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# (c) 2017 Ansible Project
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
|
||||||
|
class ModuleDocFragment(object):
|
||||||
|
|
||||||
|
# inventory cache
|
||||||
|
DOCUMENTATION = """
|
||||||
|
options:
|
||||||
|
aws_profile:
|
||||||
|
description: The AWS profile
|
||||||
|
aliases: ['boto_profile']
|
||||||
|
env:
|
||||||
|
- name: AWS_PROFILE
|
||||||
|
- name: AWS_DEFAULT_PROFILE
|
||||||
|
aws_access_key:
|
||||||
|
description: The AWS access key to use.
|
||||||
|
env:
|
||||||
|
- name: AWS_ACCESS_KEY_ID
|
||||||
|
- name: AWS_ACCESS_KEY
|
||||||
|
- name: EC2_ACCESS_KEY
|
||||||
|
aws_secret_key:
|
||||||
|
description: The AWS secret key that corresponds to the access key.
|
||||||
|
env:
|
||||||
|
- name: AWS_SECRET_ACCESS_KEY
|
||||||
|
- name: AWS_SECRET_KEY
|
||||||
|
- name: EC2_SECRET_KEY
|
||||||
|
aws_security_token:
|
||||||
|
description: The AWS security token if using temporary access and secret keys.
|
||||||
|
env:
|
||||||
|
- name: AWS_SECURITY_TOKEN
|
||||||
|
- name: AWS_SESSION_TOKEN
|
||||||
|
- name: EC2_SECURITY_TOKEN
|
||||||
|
region:
|
||||||
|
description: The region for which to create the connection.
|
||||||
|
env:
|
||||||
|
- name: AWS_REGION
|
||||||
|
- name: EC2_REGION
|
||||||
|
"""
|
Loading…
Reference in a new issue