Merge pull request #828 from resmo/for-ansible
cloudstack: fixes, docs, imrovements
This commit is contained in:
commit
1e067a96ea
4 changed files with 14 additions and 8 deletions
|
@ -218,4 +218,5 @@ def main():
|
|||
from ansible.module_utils.basic import *
|
||||
from ansible.module_utils.urls import *
|
||||
from ansible.module_utils.facts import *
|
||||
main()
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
@ -402,9 +402,6 @@ class AnsibleCloudStackInstance(AnsibleCloudStack):
|
|||
if not template and not iso:
|
||||
self.module.fail_json(msg="Template or ISO is required.")
|
||||
|
||||
if template and iso:
|
||||
self.module.fail_json(msg="Template are ISO are mutually exclusive.")
|
||||
|
||||
args = {}
|
||||
args['account'] = self.get_account(key='name')
|
||||
args['domainid'] = self.get_domain(key='id')
|
||||
|
@ -853,6 +850,9 @@ def main():
|
|||
api_http_method = dict(choices=['get', 'post'], default='get'),
|
||||
api_timeout = dict(type='int', default=10),
|
||||
),
|
||||
mutually_exclusive = (
|
||||
['template', 'iso'],
|
||||
),
|
||||
required_together = (
|
||||
['api_key', 'api_secret', 'api_url'],
|
||||
),
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
DOCUMENTATION = '''
|
||||
---
|
||||
module: cs_ip_address
|
||||
short_description: Manages Public/Secondary IP address associations
|
||||
short_description: Manages public IP address associations on Apache CloudStack based clouds.
|
||||
description:
|
||||
- Acquires and associates a public IP to an account or project. Due to API
|
||||
limitations this is not an idempotent call, so be sure to only
|
||||
|
@ -31,7 +31,8 @@ author: "Darren Worrall @dazworrall"
|
|||
options:
|
||||
ip_address:
|
||||
description:
|
||||
- Public IP address. Required if C(state=absent)
|
||||
- Public IP address.
|
||||
- Required if C(state=absent)
|
||||
required: false
|
||||
default: null
|
||||
domain:
|
||||
|
@ -69,7 +70,7 @@ extends_documentation_fragment: cloudstack
|
|||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Associate an IP address
|
||||
# Associate an IP address conditonally
|
||||
- local_action:
|
||||
module: cs_ip_address
|
||||
network: My Network
|
||||
|
@ -149,6 +150,7 @@ class AnsibleCloudStackIPAddress(AnsibleCloudStack):
|
|||
break
|
||||
self.module.fail_json(msg="Network '%s' not found" % network)
|
||||
|
||||
|
||||
#TODO: Merge changes here with parent class
|
||||
def get_ip_address(self, key=None):
|
||||
if self.ip_address:
|
||||
|
@ -169,6 +171,7 @@ class AnsibleCloudStackIPAddress(AnsibleCloudStack):
|
|||
self.ip_address = ip_addresses['publicipaddress'][0]
|
||||
return self._get_by_key(key, self.ip_address)
|
||||
|
||||
|
||||
def associate_ip_address(self):
|
||||
self.result['changed'] = True
|
||||
args = {}
|
||||
|
@ -189,6 +192,7 @@ class AnsibleCloudStackIPAddress(AnsibleCloudStack):
|
|||
ip_address = res
|
||||
return ip_address
|
||||
|
||||
|
||||
def disassociate_ip_address(self):
|
||||
ip_address = self.get_ip_address()
|
||||
if ip_address is None:
|
||||
|
@ -206,6 +210,7 @@ class AnsibleCloudStackIPAddress(AnsibleCloudStack):
|
|||
res = self._poll_job(res, 'ipaddress')
|
||||
return ip_address
|
||||
|
||||
|
||||
def get_result(self, ip_address):
|
||||
if ip_address:
|
||||
if 'zonename' in ip_address:
|
||||
|
|
|
@ -533,7 +533,7 @@ class AnsibleCloudStackNetwork(AnsibleCloudStack):
|
|||
self.result['type'] = network['type']
|
||||
if 'traffictype' in network:
|
||||
self.result['traffic_type'] = network['traffictype']
|
||||
if 'zone' in network:
|
||||
if 'zonename' in network:
|
||||
self.result['zone'] = network['zonename']
|
||||
if 'domain' in network:
|
||||
self.result['domain'] = network['domain']
|
||||
|
|
Loading…
Reference in a new issue