Source code for saltext.vcf.states.vcf_nsx_tier1
"""State module for NSX Tier-1 gateway hardening (multicast disable)."""
from saltext.vcf.clients import nsx_tier1 as c
__virtualname__ = "vcf_nsx_tier1"
def __virtual__():
return __virtualname__
def _ret(name):
return {"name": name, "changes": {}, "result": True, "comment": ""}
[docs]
def multicast_enabled(name, enabled=True, locale_service="default", profile=None):
"""Ensure multicast on Tier-1 *name* matches ``enabled`` (idempotent)."""
ret = _ret(name)
current = c.multicast_get(__opts__, name, locale_service=locale_service, profile=profile)
current_enabled = bool(current.get("enabled", False))
desired = bool(enabled)
if current_enabled == desired:
ret["comment"] = f"Tier-1 {name} multicast already {'enabled' if desired else 'disabled'}"
return ret
if __opts__["test"]:
ret["result"] = None
ret["comment"] = f"Tier-1 {name} multicast would be {'enabled' if desired else 'disabled'}"
return ret
c.multicast_set(__opts__, name, desired, locale_service=locale_service, profile=profile)
ret["changes"] = {"enabled": {"old": current_enabled, "new": desired}}
ret["comment"] = f"Tier-1 {name} multicast {'enabled' if desired else 'disabled'}"
return ret
[docs]
def multicast_disabled(name, locale_service="default", profile=None):
"""Ensure multicast on Tier-1 *name* is disabled."""
return multicast_enabled(name, enabled=False, locale_service=locale_service, profile=profile)