Source code for saltext.vcf.states.vcf_vcenter_host

"""State module for vCenter hosts."""

from saltext.vcf.clients import vcenter_host as r

__virtualname__ = "vcf_vcenter_host"


def __virtual__():
    return __virtualname__


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


[docs] def present(name, profile=None): """Ensure a host is registered in vCenter (commissioning is owned by SDDC Manager).""" ret = _ret(name) if r.get_or_none(__opts__, name, profile=profile) is not None: ret["comment"] = f"Host {name} is present in vCenter" return ret ret["result"] = False ret["comment"] = f"Host {name} is not present in vCenter — commission it via SDDC Manager" return ret
[docs] def absent(name, profile=None): """Ensure a host is no longer in vCenter inventory.""" ret = _ret(name) if r.get_or_none(__opts__, name, profile=profile) is None: ret["comment"] = f"Host {name} is already absent from vCenter" return ret ret["result"] = False ret["comment"] = f"Host {name} is still present in vCenter — decommission it via SDDC Manager" return ret
[docs] def maintenance(name, enabled=True, profile=None): """Ensure a host is in (or out of) maintenance mode.""" ret = _ret(name) current = r.get_or_none(__opts__, name, profile=profile) if current is None: ret["result"] = False ret["comment"] = f"Host {name} not found" return ret if r.is_in_maintenance(current) == bool(enabled): ret["comment"] = f"Host {name} is already {'in' if enabled else 'out of'} maintenance mode" return ret if __opts__["test"]: ret["result"] = None ret["comment"] = f"Host {name} would {'enter' if enabled else 'exit'} maintenance mode" return ret if enabled: r.enter_maintenance(__opts__, name, profile=profile) else: r.exit_maintenance(__opts__, name, profile=profile) ret["changes"] = {"maintenance": enabled} ret["comment"] = f"Host {name} {'entered' if enabled else 'exited'} maintenance mode" return ret