-
Notifications
You must be signed in to change notification settings - Fork 7
/
waldur_marketplace_os_get_instance.py
79 lines (71 loc) · 1.95 KB
/
waldur_marketplace_os_get_instance.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
#!/usr/bin/python
# has to be a full import due to Ansible 2.0 compatibility
from ansible.module_utils.basic import AnsibleModule
from waldur_client import (
WaldurClientException,
waldur_client_from_module,
waldur_full_argument_spec,
)
ANSIBLE_METADATA = {
'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'OpenNode',
}
DOCUMENTATION = '''
---
module: waldur_marketplace_os_get_instance
short_description: Get existing OpenStack instance
version_added: 0.1
description:
- Get an OpenStack instance
requirements:
- python = 3.8
- requests
- python-waldur-client
options:
access_token:
description:
- An access token which has permissions to create an OpenStack instances.
required: true
api_url:
description:
- Fully qualified url to the Waldur.
required: true
name:
description:
- The name or UUID of existing OpenStack instance.
required: true
project:
description:
- The name or UUID of the project where instance is created.
required: true
'''
EXAMPLES = '''
- name: Get an OpenStack instance
hosts: localhost
tasks:
- name: get instance
waldur_marketplace_os_get_instance:
access_token: b83557fd8e2066e98f27dee8f3b3433cdc4183ce
api_url: https://waldur.example.com:8000/api
name: Warehouse instance
project: OpenStack Project
'''
def main():
fields = {
'name': {'required': True, 'type': 'str'},
'project': {'required': False, 'type': 'str'},
}
module = AnsibleModule(argument_spec=waldur_full_argument_spec(**fields))
client = waldur_client_from_module(module)
try:
instance = client.get_instance_via_marketplace(
name=module.params['name'],
project=module.params['project'],
)
except WaldurClientException as e:
module.fail_json(msg=str(e))
else:
module.exit_json(instance=instance)
if __name__ == '__main__':
main()