PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/esxdatacenter.py |
""" Salt states to create and manage VMware vSphere datacenters (datacenters). :codeauthor: `Alexandru Bleotu <alexandru.bleotu@morganstaley.com>` .. Warning:: This module will be deprecated in a future release of Salt. VMware strongly recommends using the `VMware Salt extensions <https://docs.saltproject.io/salt/extensions/salt-ext-modules-vmware/en/latest/all.html>`_ instead of the ESX data center module. Because the Salt extensions are newer and actively supported by VMware, they are more compatible with current versions of ESXi and they work well with the latest features in the VMware product line. Dependencies ============ - pyVmomi Python Module States ====== datacenter_configured --------------------- Makes sure a datacenter exists and is correctly configured. If the state is run by an ``esxdatacenter`` minion, the name of the datacenter is retrieved from the proxy details, otherwise the datacenter has the same name as the state. Supported proxies: esxdatacenter Example: 1. Make sure that a datacenter named ``target_dc`` exists on the vCenter, using a ``esxdatacenter`` proxy: Proxy minion configuration (connects passthrough to the vCenter): .. code-block:: yaml proxy: proxytype: esxdatacenter datacenter: target_dc vcenter: vcenter.fake.com mechanism: sspi domain: fake.com principal: host State configuration: .. code-block:: yaml datacenter_state: esxdatacenter.datacenter_configured """ import logging from functools import wraps import salt.exceptions # Get Logging Started log = logging.getLogger(__name__) LOGIN_DETAILS = {} def __virtual__(): return "esxdatacenter" def _deprecation_message(function): """ Decorator wrapper to warn about azurearm deprecation """ @wraps(function) def wrapped(*args, **kwargs): salt.utils.versions.warn_until( 3008, "The 'esxdatacenter' functionality in Salt has been deprecated and its " "functionality will be removed in version 3008 in favor of the " "saltext.vmware Salt Extension. " "(https://github.com/saltstack/salt-ext-modules-vmware)", category=FutureWarning, ) ret = function(*args, **salt.utils.args.clean_kwargs(**kwargs)) return ret return wrapped @_deprecation_message def mod_init(low): return True @_deprecation_message def datacenter_configured(name): """ Makes sure a datacenter exists. If the state is run by an ``esxdatacenter`` minion, the name of the datacenter is retrieved from the proxy details, otherwise the datacenter has the same name as the state. Supported proxies: esxdatacenter name: Datacenter name. Ignored if the proxytype is ``esxdatacenter``. """ proxy_type = __salt__["vsphere.get_proxy_type"]() if proxy_type == "esxdatacenter": dc_name = __salt__["esxdatacenter.get_details"]()["datacenter"] else: dc_name = name log.info("Running datacenter_configured for datacenter '%s'", dc_name) ret = {"name": name, "changes": {}, "result": None, "comment": "Default"} comments = [] si = None try: si = __salt__["vsphere.get_service_instance_via_proxy"]() dcs = __salt__["vsphere.list_datacenters_via_proxy"]( datacenter_names=[dc_name], service_instance=si ) if not dcs: if __opts__["test"]: comments.append(f"State will create datacenter '{dc_name}'.") else: log.debug("Creating datacenter '%s'", dc_name) __salt__["vsphere.create_datacenter"](dc_name, si) comments.append(f"Created datacenter '{dc_name}'.") log.info(comments[-1]) ret["changes"].update({"new": {"name": dc_name}}) else: comments.append( f"Datacenter '{dc_name}' already exists. Nothing to be done." ) log.info(comments[-1]) __salt__["vsphere.disconnect"](si) ret["comment"] = "\n".join(comments) ret["result"] = None if __opts__["test"] and ret["changes"] else True return ret except salt.exceptions.CommandExecutionError as exc: log.error("Error: %s", exc) if si: __salt__["vsphere.disconnect"](si) ret.update( {"result": False if not __opts__["test"] else None, "comment": str(exc)} ) return ret