Merge remote-tracking branch 'upstream/devel' into devel

This commit is contained in:
Kristian Koehntopp 2015-09-09 14:24:45 +02:00
commit d0e3c882f9
4 changed files with 18 additions and 12 deletions

View file

@ -213,9 +213,9 @@ def create_eni(connection, module):
except BotoServerError as ex: except BotoServerError as ex:
eni.delete() eni.delete()
raise raise
# Wait to allow creation / attachment to finish
wait_for_eni(eni, "attached")
changed = True changed = True
# Wait to allow creation / attachment to finish
wait_for_eni(eni, "attached")
eni.update() eni.update()
except BotoServerError as e: except BotoServerError as e:

View file

@ -326,7 +326,7 @@ class AnsibleCloudStackAccount(AnsibleCloudStack):
if not self.module.check_mode: if not self.module.check_mode:
res = self.cs.deleteAccount(id=account['id']) res = self.cs.deleteAccount(id=account['id'])
if 'errortext' in account: if 'errortext' in res:
self.module.fail_json(msg="Failed: '%s'" % res['errortext']) self.module.fail_json(msg="Failed: '%s'" % res['errortext'])
poll_async = self.module.params.get('poll_async') poll_async = self.module.params.get('poll_async')

View file

@ -61,7 +61,7 @@ options:
- The type of service we are authenticating against - The type of service we are authenticating against
required: false required: false
default: vca default: vca
choices: [ "vca", "vchs", "vcd" ] choices: [ "vca", "vchs", "vcd" ]
state: state:
description: description:
- if the object should be added or removed - if the object should be added or removed
@ -108,7 +108,7 @@ EXAMPLES = '''
instance_id: 'b15ff1e5-1024-4f55-889f-ea0209726282' instance_id: 'b15ff1e5-1024-4f55-889f-ea0209726282'
vdc_name: 'benz_ansible' vdc_name: 'benz_ansible'
state: 'present' state: 'present'
nat_rules: nat_rules:
- rule_type: SNAT - rule_type: SNAT
original_ip: 192.168.2.10 original_ip: 192.168.2.10
translated_ip: 107.189.95.208 translated_ip: 107.189.95.208
@ -121,7 +121,7 @@ EXAMPLES = '''
instance_id: 'b15ff1e5-1024-4f55-889f-ea0209726282' instance_id: 'b15ff1e5-1024-4f55-889f-ea0209726282'
vdc_name: 'benz_ansible' vdc_name: 'benz_ansible'
state: 'present' state: 'present'
nat_rules: nat_rules:
- rule_type: DNAT - rule_type: DNAT
original_ip: 107.189.95.208 original_ip: 107.189.95.208
original_port: 22 original_port: 22
@ -145,6 +145,12 @@ LOGIN_HOST['vca'] = 'vca.vmware.com'
LOGIN_HOST['vchs'] = 'vchs.vmware.com' LOGIN_HOST['vchs'] = 'vchs.vmware.com'
VALID_RULE_KEYS = ['rule_type', 'original_ip', 'original_port', 'translated_ip', 'translated_port', 'protocol'] VALID_RULE_KEYS = ['rule_type', 'original_ip', 'original_port', 'translated_ip', 'translated_port', 'protocol']
def serialize_instances(instance_list):
instances = []
for i in instance_list:
instances.append(dict(apiUrl=i['apiUrl'], instance_id=i['id']))
return instances
def vca_login(module=None): def vca_login(module=None):
service_type = module.params.get('service_type') service_type = module.params.get('service_type')
username = module.params.get('username') username = module.params.get('username')
@ -216,7 +222,7 @@ def vca_login(module=None):
if not vca.login(token=vca.token, org=org, org_url=vca.vcloud_session.org_url): if not vca.login(token=vca.token, org=org, org_url=vca.vcloud_session.org_url):
module.fail_json(msg = "Failed to login to org", error=vca.response.content) module.fail_json(msg = "Failed to login to org", error=vca.response.content)
return vca return vca
def validate_nat_rules(module=None, nat_rules=None): def validate_nat_rules(module=None, nat_rules=None):
for rule in nat_rules: for rule in nat_rules:
if not isinstance(rule, dict): if not isinstance(rule, dict):
@ -301,7 +307,7 @@ def main():
if service_type == 'vcd': if service_type == 'vcd':
if not host: if not host:
module.fail_json(msg="When service type is vcd host parameter is mandatory") module.fail_json(msg="When service type is vcd host parameter is mandatory")
vca = vca_login(module) vca = vca_login(module)
vdc = vca.get_vdc(vdc_name) vdc = vca.get_vdc(vdc_name)
if not vdc: if not vdc:
@ -368,7 +374,7 @@ def main():
module.exit_json(changed=True, rules_added=mod_rules) module.exit_json(changed=True, rules_added=mod_rules)
# import module snippets # import module snippets
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -72,14 +72,14 @@ def do_request(module, url, params, headers=None):
raise exc raise exc
return r return r
def get_access_token(client_id, client_secret): def get_access_token(module, client_id, client_secret):
params = { params = {
'client_id': client_id, 'client_id': client_id,
'client_secret': client_secret, 'client_secret': client_secret,
'grant_type': 'client_credentials', 'grant_type': 'client_credentials',
'scope': 'topic.post' 'scope': 'topic.post'
} }
res = do_request('https://typetalk.in/oauth2/access_token', params) res = do_request(module, 'https://typetalk.in/oauth2/access_token', params)
return json.load(res)['access_token'] return json.load(res)['access_token']
@ -88,7 +88,7 @@ def send_message(module, client_id, client_secret, topic, msg):
send message to typetalk send message to typetalk
""" """
try: try:
access_token = get_access_token(client_id, client_secret) access_token = get_access_token(module, client_id, client_secret)
url = 'https://typetalk.in/api/v1/topics/%d' % topic url = 'https://typetalk.in/api/v1/topics/%d' % topic
headers = { headers = {
'Authorization': 'Bearer %s' % access_token, 'Authorization': 'Bearer %s' % access_token,