PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/msteams.py |
""" Module for sending messages to MS Teams .. versionadded:: 2017.7.0 :configuration: This module can be used by either passing a hook_url directly or by specifying it in a configuration profile in the salt master/minion config. For example: .. code-block:: yaml msteams: hook_url: https://outlook.office.com/webhook/837 """ import logging import salt.utils.json from salt.exceptions import SaltInvocationError log = logging.getLogger(__name__) __virtualname__ = "msteams" def __virtual__(): """ Return virtual name of the module. :return: The virtual name of the module. """ return __virtualname__ def _get_hook_url(): """ Return hook_url from minion/master config file or from pillar """ hook_url = __salt__["config.get"]("msteams.hook_url") or __salt__["config.get"]( "msteams:hook_url" ) if not hook_url: raise SaltInvocationError("No MS Teams hook_url found.") return hook_url def post_card(message, hook_url=None, title=None, theme_color=None): """ Send a message to an MS Teams channel. :param message: The message to send to the MS Teams channel. :param hook_url: The Teams webhook URL, if not specified in the configuration. :param title: Optional title for the posted card :param theme_color: Optional hex color highlight for the posted card :return: Boolean if message was sent successfully. CLI Example: .. code-block:: bash salt '*' msteams.post_card message="Build is done" """ if not hook_url: hook_url = _get_hook_url() if not message: log.error("message is a required option.") payload = {"text": message, "title": title, "themeColor": theme_color} headers = { "Content-Type": "application/json", } result = salt.utils.http.query( hook_url, method="POST", header_dict=headers, data=salt.utils.json.dumps(payload), status=True, ) if result["status"] <= 201: return True else: return {"res": False, "message": result.get("body", result["status"])}