twilio: fix multi to_number support (#44878)

* twilio: fix multi to_number support

* use json helper
pull/45688/head
René Moser 6 years ago committed by GitHub
parent 1b4a197eb6
commit 00d04ef757
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -38,11 +38,12 @@ options:
description: description:
the body of the text message the body of the text message
required: true required: true
to_number: to_numbers:
description: description:
one or more phone numbers to send the text message to, one or more phone numbers to send the text message to,
format +15551112222 format +15551112222
required: true required: true
aliases: [ to_number ]
from_number: from_number:
description: description:
the Twilio number to send the text message from, format +15551112222 the Twilio number to send the text message from, format +15551112222
@ -76,7 +77,7 @@ EXAMPLES = '''
account_sid: ACXXXXXXXXXXXXXXXXX account_sid: ACXXXXXXXXXXXXXXXXX
auth_token: ACXXXXXXXXXXXXXXXXX auth_token: ACXXXXXXXXXXXXXXXXX
from_number: +15553258899 from_number: +15553258899
to_number: to_numbers:
- +15551113232 - +15551113232
- +12025551235 - +12025551235
- +19735559010 - +19735559010
@ -99,8 +100,6 @@ EXAMPLES = '''
# ======================================= # =======================================
# twilio module support methods # twilio module support methods
# #
import json
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url from ansible.module_utils.urls import fetch_url
@ -141,7 +140,7 @@ def main():
auth_token=dict(required=True, no_log=True), auth_token=dict(required=True, no_log=True),
msg=dict(required=True), msg=dict(required=True),
from_number=dict(required=True), from_number=dict(required=True),
to_number=dict(required=True), to_numbers=dict(required=True, aliases=['to_number'], type='list'),
media_url=dict(default=None, required=False), media_url=dict(default=None, required=False),
), ),
supports_check_mode=True supports_check_mode=True
@ -151,19 +150,16 @@ def main():
auth_token = module.params['auth_token'] auth_token = module.params['auth_token']
msg = module.params['msg'] msg = module.params['msg']
from_number = module.params['from_number'] from_number = module.params['from_number']
to_number = module.params['to_number'] to_numbers = module.params['to_numbers']
media_url = module.params['media_url'] media_url = module.params['media_url']
if not isinstance(to_number, list): for number in to_numbers:
to_number = [to_number]
for number in to_number:
r, info = post_twilio_api(module, account_sid, auth_token, msg, r, info = post_twilio_api(module, account_sid, auth_token, msg,
from_number, number, media_url) from_number, number, media_url)
if info['status'] not in [200, 201]: if info['status'] not in [200, 201]:
body_message = "unknown error" body_message = "unknown error"
if 'body' in info: if 'body' in info:
body = json.loads(info['body']) body = module.from_json(info['body'])
body_message = body['message'] body_message = body['message']
module.fail_json(msg="unable to send message to %s: %s" % (number, body_message)) module.fail_json(msg="unable to send message to %s: %s" % (number, body_message))

Loading…
Cancel
Save