<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def iter_configurations(kafka_topology_base_path=None):
 """Cluster topology iterator. Iterate over all the topologies available in config. """

    if not kafka_topology_base_path:
        config_dirs = get_conf_dirs()
    else:
        config_dirs = [kafka_topology_base_path]

    types = set()
    for config_dir in config_dirs:
        new_types = [x for x in map(
            lambda x: os.path.basename(x)[:-5],
            glob.glob('{0}/*.yaml'.format(config_dir)),
        ) if x not in types]
        for cluster_type in new_types:
            try:
                topology = TopologyConfiguration(
                    cluster_type,
                    config_dir,
                )
            except ConfigurationError:
                continue
            types.add(cluster_type)
            yield topology