Source code for saltext.vcf.states.vcf_esxi_advanced

"""State module for ESXi advanced system settings."""

from saltext.vcf.clients import esxi_advanced as c

__virtualname__ = "vcf_esxi_advanced"


def __virtual__():
    return __virtualname__


def _ret(name):
    return {"name": name, "changes": {}, "result": True, "comment": ""}


[docs] def setting(name, value, profile=None): """Ensure advanced setting *name* equals *value*.""" ret = _ret(name) current = c.get_or_none(__opts__, name, profile=profile) if current is None: ret["result"] = False ret["comment"] = f"Advanced setting {name} does not exist on this host" return ret current_value = current.get("value") if current_value == value: ret["comment"] = f"{name} already {value!r}" return ret if __opts__["test"]: ret["result"] = None ret["comment"] = f"{name} would change from {current_value!r} to {value!r}" return ret c.set_value(__opts__, name, value, profile=profile) ret["changes"] = {"value": {"old": current_value, "new": value}} ret["comment"] = f"{name} set to {value!r}" return ret