def get_meta_clusters(self, clusters):
meta_clusters = collections.defaultdict(list)<EOL>for cluster in clusters:<EOL><INDENT>if not cluster.meta_cluster:<EOL><INDENT>continue<EOL><DEDENT>meta_clusters[cluster.meta_cluster].append(cluster)<EOL><DEDENT>unconfigured_meta_clusters = [<EOL>name for name in meta_clusters.keys()<EOL>if name not in self.meta_clusters<EOL>]<EOL>for name in unconfigured_meta_clusters:<EOL><INDENT>logger.error("<STR_LIT>")<EOL>del meta_clusters[name]<EOL><DEDENT>return meta_clusters<EOL>
Returns a dictionary keyed off of meta cluster names, where the values
are lists of clusters associated with the meta cluster name.

If a meta cluster name doesn't have a port defined in the
`meta_cluster_ports` attribute an error is given and the meta cluster
is removed from the mapping.