'Returns a Cluster object representing an active cluster'

def get_cluster(self, cluster_name, group=None, load_receipt=True, load_plugins=True, load_volumes=True, require_keys=True):

    try:
        clname = self._get_cluster_name(cluster_name)
        cltag = self.get_tag_from_sg(clname)
        if (not group):
            group = self.ec2.get_security_group(clname)
        cl = Cluster(ec2_conn=self.ec2, cluster_tag=cltag, cluster_group=group)
        if load_receipt:
            cl.load_receipt(load_plugins=load_plugins, load_volumes=load_volumes)
        try:
            cl.keyname = (cl.keyname or cl.master_node.key_name)
            key_location = self.cfg.get_key(cl.keyname).get('key_location')
            cl.key_location = key_location
            if require_keys:
                cl.validator.validate_keypair()
        except (exception.KeyNotFound, exception.MasterDoesNotExist):
            if require_keys:
                raise
            cl.key_location = ''
        return cl
    except exception.SecurityGroupDoesNotExist:
        raise exception.ClusterDoesNotExist(cluster_name)
