Returns two dictionaries, the current nodes and the enabled nodes.

        The current_nodes dictionary is keyed off of the cluster name and
        values are a list of nodes known to HAProxy.

        The enabled_nodes dictionary is also keyed off of the cluster name
        and values are list of *enabled* nodes, i.e. the same values as
        current_nodes but limited to servers currently taking traffic.

def get_current_nodes(self, clusters):
        """
        Returns two dictionaries, the current nodes and the enabled nodes.

        The current_nodes dictionary is keyed off of the cluster name and
        values are a list of nodes known to HAProxy.

        The enabled_nodes dictionary is also keyed off of the cluster name
        and values are list of *enabled* nodes, i.e. the same values as
        current_nodes but limited to servers currently taking traffic.
        """
        current_nodes = self.control.get_active_nodes()
        enabled_nodes = collections.defaultdict(list)

        for cluster in clusters:
            if not cluster.nodes:
                continue

            if cluster.name not in current_nodes:
                logger.debug(
                    "New cluster '%s' added, restart required.",
                    cluster.name
                )
                self.restart_required = True

            for node in cluster.nodes:
                if node.name not in [
                        current_node["svname"]
                        for current_node in current_nodes.get(cluster.name, [])
                ]:
                    logger.debug(
                        "New node added to cluster '%s', restart required.",
                        cluster.name
                    )
                    self.restart_required = True

                enabled_nodes[cluster.name].append(node.name)

        return current_nodes, enabled_nodes