Merge remote-tracking branch 'upstream/devel' into devel
This commit is contained in:
commit
d0e3c882f9
4 changed files with 18 additions and 12 deletions
|
@ -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:
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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__':
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue