docs: def get(self, name):
          """Retrieves the cluster with the given name.
  
          :param str name: name of the cluster (identifier)
          :return: :py:class:`elasticluster.cluster.Cluster`
          """
          path = self._get_cluster_storage_path(name)
  
          try:
              with open(path, 'r') as storage:
                  cluster = self.load(storage)
                  # Compatibility with previous version of Node
                  for node in sum(cluster.nodes.values(), []):
                      if not hasattr(node, 'ips'):
                          log.debug("Monkey patching old version of `Node` class: %s", node.name)
                          node.ips = [node.ip_public, node.ip_private]
                          node.preferred_ip = None
                  cluster.storage_file = path
                  return cluster
          except IOError as ex:
              raise ClusterNotFound("Error accessing storage file %s: %s" % (path, ex))