server/migractions.py
branchstable
changeset 4893 15ae9a33a7f2
parent 4721 8f63691ccb7f
child 4899 c666d265fb95
child 4904 a5250dafdcac
equal deleted inserted replaced
4892:7ee8f128be9e 4893:15ae9a33a7f2
   143         # backup
   143         # backup
   144         tmpdir = tempfile.mkdtemp(dir=instbkdir)
   144         tmpdir = tempfile.mkdtemp(dir=instbkdir)
   145         try:
   145         try:
   146             for source in repo.sources:
   146             for source in repo.sources:
   147                 try:
   147                 try:
   148                     source.backup(osp.join(tmpdir, source.uri))
   148                     source.backup(osp.join(tmpdir, source.uri, self.confirm))
   149                 except Exception, exc:
   149                 except Exception, ex:
   150                     print '-> error trying to backup %s [%s]' % (source.uri, exc)
   150                     print '-> error trying to backup %s [%s]' % (source.uri, ex)
   151                     if not self.confirm('Continue anyway?', default='n'):
   151                     if not self.confirm('Continue anyway?', default='n'):
   152                         raise SystemExit(1)
   152                         raise SystemExit(1)
   153                     else:
   153                     else:
   154                         break
   154                         break
   155             else:
   155             else:
   185                     raise Exception('Security check failed, path starts with "/" or "."')
   185                     raise Exception('Security check failed, path starts with "/" or "."')
   186             bkup.close() # XXX seek error if not close+open !?!
   186             bkup.close() # XXX seek error if not close+open !?!
   187             bkup = tarfile.open(backupfile, 'r|gz')
   187             bkup = tarfile.open(backupfile, 'r|gz')
   188             bkup.extractall(path=tmpdir)
   188             bkup.extractall(path=tmpdir)
   189             bkup.close()
   189             bkup.close()
   190 
       
   191         self.config.open_connections_pools = False
   190         self.config.open_connections_pools = False
   192         repo = self.repo_connect()
   191         repo = self.repo_connect()
   193         for source in repo.sources:
   192         for source in repo.sources:
   194             if systemonly and source.uri != 'system':
   193             if systemonly and source.uri != 'system':
   195                 continue
   194                 continue