Merge pull request #828 from resmo/for-ansible

cloudstack: fixes, docs, imrovements
This commit is contained in:
Brian Coca 2015-08-11 12:50:09 -04:00
commit 1e067a96ea
4 changed files with 14 additions and 8 deletions

View file

@ -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()

View file

@ -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'],
),

View file

@ -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:

View file

@ -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']