def merge(original, var_resolver, **_): args = split_merge_args(original) if args is None: return FUNCTION_FAILED merged_map = {} for arg in args: if arg.startswith("{"): arg_value = string_to_native(arg) if arg_value is None: return FUNCTION_FAILED else: arg_value = var_resolver(arg) if isinstance(arg_value, dict): merged_map.update(arg_value) else: return FUNCTION_FAILED # don't know what this is, blow out return merged_map
def merge(original, var_resolver, **_): # https://www.terraform.io/docs/language/functions/merge.html args = split_merge_args(original) if args is None: return FUNCTION_FAILED merged_map = {} for arg in args: if arg.startswith("{"): arg_value = string_to_native(arg) if arg_value is None: return FUNCTION_FAILED else: arg_value = var_resolver(arg) if isinstance(arg_value, dict): merged_map.update(arg_value) else: return FUNCTION_FAILED # don't know what this is, blow out return merged_map
def concat(original, var_resolver, **_): args = split_merge_args(original) if args is None: return FUNCTION_FAILED merged_list = [] for arg in args: if arg.startswith("["): value = eval_string(arg) if value is None: logging.debug("Unable to convert to list: %s", arg) return FUNCTION_FAILED else: value = var_resolver(arg) if isinstance(value, list): merged_list.extend(value) else: return FUNCTION_FAILED # don't know what this is, blow out return merged_list