Yohohohohohooho | Sanrei Aya
Sanrei Aya


Server : LiteSpeed
System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : elvh3918 ( 1528)
PHP Version : 8.2.31
Disable Function : mail
Directory :  /lib/python3.9/site-packages/ansible_collections/ansible/utils/plugins/plugin_utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3.9/site-packages/ansible_collections/ansible/utils/plugins/plugin_utils/from_xml.py
#
# -*- coding: utf-8 -*-
# Copyright 2021 Red Hat
# GNU General Public License v3.0+
# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
#

"""
The from_xml plugin code
"""
from __future__ import absolute_import, division, print_function


__metaclass__ = type

import json

from ansible.errors import AnsibleFilterError


try:
    import xmltodict

    HAS_XMLTODICT = True
except ImportError:
    HAS_XMLTODICT = False


def _raise_error(msg):
    """Raise an error message, prepend with filter name
    :param msg: The message
    :type msg: str
    :raises: AnsibleError
    """
    error = "Error when using plugin 'from_xml': {msg}".format(msg=msg)
    raise AnsibleFilterError(error)


def from_xml(data, engine):
    """Convert data which is in xml to json"
    :param data: The data passed in (data|from_xml(...))
    :type data: xml
    :param engine: Conversion library default=xml_to_dict
    """
    if engine == "xmltodict":
        if not HAS_XMLTODICT:
            _raise_error("Missing required library xmltodict")
        try:
            res = json.dumps(xmltodict.parse(data))
        except Exception:
            _raise_error("Input Xml is not valid")
        return res
    else:
        error = "engine: {engine} is not supported ".format(engine=engine)
        _raise_error(error)

Yohohohohohooho | Sanrei Aya