MCPcopy Create free account
hub / github.com/saltstack/salt / run_map

Method run_map

salt/cloud/__init__.py:2007–2268  ·  view source on GitHub ↗

Execute the contents of the VM map

(self, dmap)

Source from the content-addressed store, hash-verified

2005 return ret
2006
2007 def run_map(self, dmap):
2008 """
2009 Execute the contents of the VM map
2010 """
2011 if self._has_loop(dmap):
2012 msg = "Uh-oh, that cloud map has a dependency loop!"
2013 log.error(msg)
2014 raise SaltCloudException(msg)
2015 # Go through the create list and calc dependencies
2016 for key, val in dmap["create"].items():
2017 log.info("Calculating dependencies for %s", key)
2018 level = 0
2019 level = self._calcdep(dmap, key, val, level)
2020 log.debug("Got execution order %s for %s", level, key)
2021 dmap["create"][key]["level"] = level
2022
2023 try:
2024 existing_list = dmap["existing"].items()
2025 except KeyError:
2026 existing_list = {}.items()
2027
2028 for key, val in existing_list:
2029 log.info("Calculating dependencies for %s", key)
2030 level = 0
2031 level = self._calcdep(dmap, key, val, level)
2032 log.debug("Got execution order %s for %s", level, key)
2033 dmap["existing"][key]["level"] = level
2034
2035 # Now sort the create list based on dependencies
2036 create_list = sorted(dmap["create"].items(), key=lambda x: x[1]["level"])
2037 output = {}
2038 if self.opts["parallel"]:
2039 parallel_data = []
2040 master_name = None
2041 master_minion_name = None
2042 master_host = None
2043 master_finger = None
2044 try:
2045 master_name, master_profile = next(
2046 (
2047 (name, profile)
2048 for name, profile in create_list
2049 if profile.get("make_master", False) is True
2050 )
2051 )
2052 master_minion_name = master_name
2053 log.debug("Creating new master '%s'", master_name)
2054 if (
2055 salt.config.get_cloud_config_value("deploy", master_profile, self.opts)
2056 is False
2057 ):
2058 raise SaltCloudSystemExit(
2059 "Cannot proceed with 'make_master' when salt deployment "
2060 "is disabled(ex: --no-deploy)."
2061 )
2062
2063 # Generate the master keys
2064 log.debug("Generating master keys for '%s'", master_profile["name"])

Callers 2

runMethod · 0.95
map_runMethod · 0.95

Calls 15

_has_loopMethod · 0.95
_calcdepMethod · 0.95
SaltCloudExceptionClass · 0.90
SaltCloudSystemExitClass · 0.90
enter_mainloopFunction · 0.85
debugMethod · 0.80
gen_keysMethod · 0.80
unlinkMethod · 0.80
formatMethod · 0.80
errorMethod · 0.45
itemsMethod · 0.45
infoMethod · 0.45

Tested by

no test coverage detected