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

Method interpolated_map

salt/cloud/__init__.py:1624–1668  ·  view source on GitHub ↗
(self, query="list_nodes", cached=False)

Source from the content-addressed store, hash-verified

1622 self.rendered_map = self.read()
1623
1624 def interpolated_map(self, query="list_nodes", cached=False):
1625 rendered_map = self.read().copy()
1626 interpolated_map = {}
1627
1628 for profile, mapped_vms in rendered_map.items():
1629 names = set(mapped_vms)
1630 if profile not in self.opts["profiles"]:
1631 if "Errors" not in interpolated_map:
1632 interpolated_map["Errors"] = {}
1633 msg = (
1634 "No provider for the mapped '{}' profile was found. "
1635 "Skipped VMS: {}".format(profile, ", ".join(names))
1636 )
1637 log.info(msg)
1638 interpolated_map["Errors"][profile] = msg
1639 continue
1640
1641 matching = self.get_running_by_names(names, query, cached)
1642 for alias, drivers in matching.items():
1643 for driver, vms in drivers.items():
1644 for vm_name, vm_details in vms.items():
1645 if alias not in interpolated_map:
1646 interpolated_map[alias] = {}
1647 if driver not in interpolated_map[alias]:
1648 interpolated_map[alias][driver] = {}
1649 interpolated_map[alias][driver][vm_name] = vm_details
1650 try:
1651 names.remove(vm_name)
1652 except KeyError:
1653 # If it's not there, then our job is already done
1654 pass
1655
1656 if not names:
1657 continue
1658
1659 profile_details = self.opts["profiles"][profile]
1660 alias, driver = profile_details["provider"].split(":")
1661 for vm_name in names:
1662 if alias not in interpolated_map:
1663 interpolated_map[alias] = {}
1664 if driver not in interpolated_map[alias]:
1665 interpolated_map[alias][driver] = {}
1666 interpolated_map[alias][driver][vm_name] = "Absent"
1667
1668 return interpolated_map
1669
1670 def delete_map(self, query=None):
1671 query_map = self.interpolated_map(query=query)

Callers 3

runMethod · 0.95
delete_mapMethod · 0.95
get_vmnames_by_actionMethod · 0.95

Calls 8

readMethod · 0.95
formatMethod · 0.80
get_running_by_namesMethod · 0.80
setFunction · 0.50
copyMethod · 0.45
itemsMethod · 0.45
infoMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected