�
�Udac @` s� d d l m Z m Z m Z e Z i d d 6d g d 6d d 6Z d Z d Z d
Z d d l
m Z d d l m
Z
d
Z d � Z d � Z d � Z e d k r� e � n d S( i ( t absolute_importt divisiont print_functions 1.1t metadata_versiont previewt statust communityt supported_bys�
module: rocketchat
short_description: Send notifications to Rocket Chat
description:
- The C(rocketchat) module sends notifications to Rocket Chat via the Incoming WebHook integration
version_added: "2.2"
author: "Ramon de la Fuente (@ramondelafuente)"
options:
domain:
description:
- The domain for your environment without protocol. (i.e.
C(example.com) or C(chat.example.com))
required: true
token:
description:
- Rocket Chat Incoming Webhook integration token. This provides
authentication to Rocket Chat's Incoming webhook for posting
messages.
required: true
protocol:
description:
- Specify the protocol used to send notification messages before the webhook url. (i.e. http or https)
default: https
choices:
- 'http'
- 'https'
msg:
description:
- Message to be sent.
channel:
description:
- Channel to send the message to. If absent, the message goes to the channel selected for the I(token)
specified during the creation of webhook.
username:
description:
- This is the sender of the message.
default: "Ansible"
icon_url:
description:
- URL for the message sender's icon.
default: "https://www.ansible.com/favicon.ico"
icon_emoji:
description:
- Emoji for the message sender. The representation for the available emojis can be
got from Rocket Chat. (for example :thumbsup:) (if I(icon_emoji) is set, I(icon_url) will not be used)
link_names:
description:
- Automatically create links for channels and usernames in I(msg).
default: 1
choices:
- 1
- 0
validate_certs:
description:
- If C(no), SSL certificates will not be validated. This should only be used
on personally controlled sites using self-signed certificates.
type: bool
default: 'yes'
color:
description:
- Allow text to use default colors - use the default of 'normal' to not send a custom color bar at the start of the message
default: 'normal'
choices:
- 'normal'
- 'good'
- 'warning'
- 'danger'
attachments:
description:
- Define a list of attachments.
s�
- name: Send notification message via Rocket Chat
rocketchat:
token: thetoken/generatedby/rocketchat
domain: chat.example.com
msg: '{{ inventory_hostname }} completed'
delegate_to: localhost
- name: Send notification message via Rocket Chat all options
rocketchat:
domain: chat.example.com
token: thetoken/generatedby/rocketchat
msg: '{{ inventory_hostname }} completed'
channel: #ansible
username: 'Ansible on {{ inventory_hostname }}'
icon_url: http://www.example.com/some-image-file.png
link_names: 0
delegate_to: localhost
- name: insert a color bar in front of the message for visibility purposes and use the default webhook icon and name configured in rocketchat
rocketchat:
token: thetoken/generatedby/rocketchat
domain: chat.example.com
msg: '{{ inventory_hostname }} is alive!'
color: good
username: ''
icon_url: ''
delegate_to: localhost
- name: Use the attachments API
rocketchat:
token: thetoken/generatedby/rocketchat
domain: chat.example.com
attachments:
- text: Display my system load on host A and B
color: #ff00dd
title: System load
fields:
- title: System A
value: 'load average: 0,74, 0,66, 0,63'
short: True
- title: System B
value: 'load average: 5,16, 4,64, 2,43'
short: True
delegate_to: localhost
s�
changed:
description: A flag indicating if any change was made or not.
returned: success
type: bool
sample: false
( t
AnsibleModule( t fetch_urls %s://%s/hooks/%sc C` s� i } | d k r0 | d k r0 t d | � } n0 | d k r` t d t d | d | � g � } n | d k r� | d d k s� | d d k r� | | d <q� d | | d <n | d k r� | | d <n | d k r� | | d
<n
| | d <| d k r� | | d <n | d k r'd | k r'g | d <q'n | d k rux? | D]4 }
d
|
k r]|
d |
d
<n | d j |
� q:Wn d | j | � } | S( Nt normalt textt attachmentst colori t #t @t channelt usernamet
icon_emojit icon_urlt
link_namest fallbacks payload=( t Nonet dictt appendt jsonify( t moduleR R R R R R R
R t payloadt
attachment( ( sK /usr/lib/python2.7/site-packages/ansible/modules/notification/rocketchat.pyt build_payload_for_rocketchat� s4 $
c C` s� | j d � d k r( | j d d � n t | | | f } t | | d | �\ } } | d d k r� | j d d t | d � � n d S( Nt /i t msgs. Invalid Token specified, provide a valid tokent dataR i� s( failed to send message, return status=%s( t countt fail_jsont ROCKETCHAT_INCOMING_WEBHOOKR t str( R t domaint tokent protocolR t rocketchat_incoming_webhookt responset info( ( sK /usr/lib/python2.7/site-packages/ansible/modules/notification/rocketchat.pyt do_notify_rocketchat� s c
"