Source code for saltext.vmware.states.datacenter

# Copyright 2021 VMware, Inc.
# SPDX-License-Identifier: Apache-2.0
import logging


log = logging.getLogger(__name__)

try:
    import pyVmomi

    HAS_PYVMOMI = True
except ImportError:
    HAS_PYVMOMI = False


__virtualname__ = "vmware_datacenter"
__proxyenabled__ = ["vmware_datacenter"]


def __virtual__():
    if not HAS_PYVMOMI:
        return False, "Unable to import pyVmomi module."
    return __virtualname__


[docs]def present(name): """ Create a datacenter .. code-block:: yaml Create Datacenter: vmware_datacenter.present: - name: dc1 """ ret = {"name": name, "result": None, "comment": "", "changes": {}} dcs = __salt__["vmware_datacenter.list"]() if name in dcs: ret["comment"] = "Datacenter {} is already present. No changes made.".format(name) ret["result"] = True elif __opts__["test"]: ret["comment"] = "Datacenter {} will be created.".format(name) ret["result"] = None else: dc = __salt__["vmware_datacenter.create"](name) if isinstance(dc, dict) and dc.get(name) is not False: ret["comment"] = "Datacenter - {} created.".format(name) ret["changes"] = dc ret["result"] = True else: ret["comment"] = dc["reason"] ret["result"] = False return ret
[docs]def absent(name): """ Delete a datacenter. .. code-block:: yaml Delete Datacenter: vmware_datacenter.absent: - name: dc1 """ ret = {"name": name, "result": None, "comment": "", "changes": {}} dcs = __salt__["vmware_datacenter.list"]() if name not in dcs: ret["comment"] = "Datacenter {} does not exist. No changes made.".format(name) ret["result"] = True elif __opts__["test"]: ret["comment"] = "Datacenter {} will be deleted.".format(name) ret["result"] = None else: dc = __salt__["vmware_datacenter.delete"](name) if isinstance(dc, dict) and dc.get(name) is not False: ret["comment"] = "Datacenter - {} deleted.".format(name) ret["changes"] = dc ret["result"] = True else: ret["comment"] = dc["reason"] ret["result"] = False return ret