def update_placeholder()

in control-plane/custom-resources/src_macro/index.py [0:0]


def update_placeholder(resource_structure, iteration):
    """Update/replace the placeholder in the resource.

    Parameters
    ----------
    resource_structure : type
        CloudFormation resource definition.
    iteration : integer
        Number of iteration.

    Returns
    -------
    type
        Modified CloudFormation resource

    """
    resource_string = json.dumps(resource_structure)
    place_holder_count = resource_string.count('%s')

    # If the placeholder is found then replace it
    if place_holder_count > 0:

        print("Found {} occurrences of string placeholder in JSON, replacing with iterator value {}".format(place_holder_count, iteration + 1))

        # Generate a random string for replacement
        #replacement_values = ''.join(choice(ascii_lowercase) for i in range(10))
        # For now... replacing with the iteration count
        replacement_values = str(iteration)

        # Replace the placeholders
        resource_string = resource_string % (replacement_values)

        # Convert the string back to json and return it
        return json.loads(resource_string)

    else:

        print("No occurences of decimal placeholder found in JSON, therefore nothing will be replaced")
        return resource_structure