code: def execute(self):
          
          repo = repository.PickleRepository(self.params.storage_path)
  
          clusters = [i[:-7] for i in os.listdir(self.params.storage_path) if i.endswith('.pickle')]
  
          if self.params.cluster:
              clusters = [x for x in clusters if x in self.params.cluster]
  
          if not clusters:
              print("No clusters")
              sys.exit(0)
  
          patch_cluster()
          for cluster in clusters:
              print("Cluster `%s`" % cluster)
              print("path: %s" % repo.storage_path + '/%s.pickle' % cluster)
              cl = repo.get(cluster)
              if cl._patches:
                  print("Attributes changed: ")
                  for attr, val in cl._patches.items():
                      print("  %s: %s -> %s" % (attr, val[0], val[1]))
              else:
                  print("No upgrade needed")
  
              print("")
              if not self.params.dry_run:
                  if cl._patches:
                      del cl._patches
                      print("Changes saved to disk")
                      cl.repository.save_or_update(cl)
docs: migrate storage