| Server IP : 198.38.94.13 / Your IP : 216.73.217.33 Web Server : Apache System : Linux d4744.dxb1.stableserver.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 : revivere ( 1140) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/saltstack/salt/lib/python3.10/site-packages/salt/states/ |
Upload File : |
"""
XML Manager
===========
State management of XML files
"""
import logging
log = logging.getLogger(__name__)
def __virtual__():
"""
Only load if the XML execution module is available.
"""
if "xml.get_value" in __salt__:
return "xml"
else:
return False, "The xml execution module is not available"
def value_present(name, xpath, value, **kwargs):
"""
.. versionadded:: 3000
Manages a given XML file
name : string
The location of the XML file to manage, as an absolute path.
xpath : string
xpath location to manage
value : string
value to ensure present
.. code-block:: yaml
ensure_value_true:
xml.value_present:
- name: /tmp/test.xml
- xpath: .//playwright[@id='1']
- value: William Shakespeare
"""
ret = {"name": name, "changes": {}, "result": True, "comment": ""}
if "test" not in kwargs:
kwargs["test"] = __opts__.get("test", False)
current_value = __salt__["xml.get_value"](name, xpath)
if not current_value:
ret["result"] = False
ret["comment"] = f"xpath query {xpath} not found in {name}"
return ret
if current_value != value:
if kwargs["test"]:
ret["result"] = None
ret["comment"] = f"{name} will be updated"
ret["changes"] = {name: {"old": current_value, "new": value}}
else:
results = __salt__["xml.set_value"](name, xpath, value)
ret["result"] = results
ret["comment"] = f"{name} updated"
ret["changes"] = {name: {"old": current_value, "new": value}}
else:
ret["comment"] = f"{value} is already present"
return ret