Source code for saltext.vcf.states.vcf_vim_cluster_evc
"""State module for cluster EVC mode."""
from saltext.vcf.clients import vim_cluster_evc as c
__virtualname__ = "vcf_vim_cluster_evc"
def __virtual__():
return __virtualname__
def _ret(name):
return {"name": name, "changes": {}, "result": True, "comment": ""}
[docs]
def mode(name, cluster=None, evc_mode_key=None, profile=None):
"""Ensure cluster EVC mode equals *evc_mode_key*, or disabled if None.
*name* is informational; *cluster* defaults to *name*.
"""
cluster = cluster or name
ret = _ret(name)
current = c.get(__opts__, cluster, profile=profile)
desired = evc_mode_key
cur_key = current.get("current_key") or None
if cur_key == desired:
ret["comment"] = f"EVC on {cluster} already {desired or 'disabled'}"
return ret
if desired is None:
if __opts__["test"]:
ret["result"] = None
ret["comment"] = f"EVC on {cluster} would be disabled"
return ret
c.disable(__opts__, cluster, profile=profile)
ret["changes"] = {"evc": (cur_key, None)}
ret["comment"] = f"EVC on {cluster} disabled"
return ret
supported = current.get("supported_keys") or []
if supported and desired not in supported:
ret["result"] = False
ret["comment"] = f"EVC mode {desired!r} not supported on {cluster}"
return ret
if __opts__["test"]:
ret["result"] = None
ret["comment"] = f"EVC on {cluster} would change from {cur_key!r} to {desired!r}"
return ret
c.configure(__opts__, cluster, desired, profile=profile)
ret["changes"] = {"evc": (cur_key, desired)}
ret["comment"] = f"EVC on {cluster} set to {desired!r}"
return ret