def parse_helm_list_output(helm_list_output):
    """
    Function will perform a manipulation on a string output from the 'helm list' command

    Returns an array of dicts with installed chart names and namespaces as strings
    as [{'chart_name': 'some_chart_name', 'name_space': 'some_name_space'}]

    by validating the first line, splitting by the tab delimiter,
    and checking that the first (0) value is 'NAME' and seventh (6) value is 'NAMESPACE'
    an exception will be raised if the structure was change by HELM developers

    :param helm_list_output: 'helm list' output as String
    :return: list of dicts
    """
    installed_charts = []
    installed_helm_stdout = helm_list_output.split('\n')
    first_line_stdout = installed_helm_stdout[0].split('\t')
    if first_line_stdout[0].strip() != 'NAME' or first_line_stdout[6].strip(
        ) != 'NAMESPACE':
        raise Exception(
            "'helm list' command output changed, probably due to helm version update, code change is needed to resolve this issue, contact the developer."
            )
    for line in installed_helm_stdout[1:]:
        chart_details = line.split('\t')
        temp_dictionary = {}
        if chart_details[0] != '':
            temp_dictionary.update({'chart_name': chart_details[0].strip()})
            temp_dictionary.update({'name_space': chart_details[6].strip()})
            installed_charts.append(temp_dictionary)
    return installed_charts
