docs: def save_or_update(self, cluster):
          """Save or update the cluster to persistent state.
  
          :param cluster: cluster to save or update
          :type cluster: :py:class:`elasticluster.cluster.Cluster`
          """
          if not os.path.exists(self.storage_path):
              os.makedirs(self.storage_path)
  
          path = self._get_cluster_storage_path(cluster.name)
          cluster.storage_file = path
          with open(path, 'wb') as storage:
              self.dump(cluster, storage)