-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcd_api_set.py
executable file
·131 lines (110 loc) · 3.64 KB
/
cd_api_set.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/python
DOCUMENTATION = '''
---
module: kms_cd
short_description: list keys in KMS.
description:
- This module allows the user to manage keys in KMS. Includes support for creating and deleting keys, retrieving keys . This module has a dependency on python-boto.
version_added: "1.1"
options:
aws_access_key:
description:
- AWS access key id. If not set then the value of the AWS_ACCESS_KEY environment variable is used.
required: false
default: null
aliases: [ 'ec2_access_key', 'access_key' ]
aws_secret_key:
description:
- AWS secret key. If not set then the value of the AWS_SECRET_KEY environment variable is used.
required: false
default: null
aliases: ['ec2_secret_key', 'secret_key']
name:
description:
- name of KMS key.
required: true
default: null
aliases: []
state:
description:
- Create or remove keys
required: false
default: present
choices: [ 'present', 'absent' ]
action:
description:
- encrypt or decrypt, decrypt can only occur if key already exists and was used previously.
required: false
default: null
choices: [ 'encrypt', 'decrypt' ]
target_data:
description:
- data that needs to be encrypted or decrypted. field requires action
required: false
default: null
'''
EXAMPLES = '''
- name: list KMS keys
kms_cd:
github_auth_key: "..."
name: "Hello-World"
description: "This is your first repository"
private: yes
has_issues: no
has_wiki: no
has_downloads: no
register: result
- name: Delete that repo
github_repo:
github_auth_key: "..."
name: "Hello-World"
state: absent
register: result
'''
from collections import defaultdict
try:
import boto3
from botocore.exceptions import ClientError, MissingParametersError, ParamValidationError
HAS_BOTO3 = True
from botocore.client import Config
except ImportError:
import boto
HAS_BOTO3 = False
def main():
argument_spec = ec2_argument_spec()
argument_spec.update(dict(
name=dict(required=False, default=None),
region=dict(required=True, default=None),
aws_access_key=dict(required=True, default=None),
security_token=dict(required=True, default=None)
)
)
module = AnsibleModule(argument_spec=argument_spec)
# validate dependencies
if not HAS_BOTO3:
module.fail_json(msg='boto3 is required for this module.')
try:
region, endpoint, aws_connect_kwargs = get_aws_connection_info(module, boto3=True)
aws_connect_kwargs.update(dict(region=region,
endpoint=endpoint,
conn_type='client',
resource='kms'
))
if not region:
module.fail_json(
msg="Region must be specified as a parameter, in EC2_REGION or AWS_REGION environment variables or in boto configuration file")
#ecr = boto3_conn(module, conn_type='client', resource='ecr', region=region, endpoint=endpoint, **aws_connect_kwargs)
client = boto3_conn(module, **aws_connect_kwargs)
except (ClientError, e):
module.fail_json(msg="Can't authorize connection - {0}".format(e))
except (Exception, e):
module.fail_json(msg="Connection Error - {0}".format(e))
#has_changed, result = choice_map.get(module.params['state'])(module.params)
has_changed=False
result = client.list_keys()
module.exit_json(changed=has_changed, meta=result)
# ansible import module(s) kept at ~eof as recommended
from ansible.module_utils.basic import *
from ansible.module_utils.ec2 import *
if __name__ == '__main__':
main()