cwctl.py
changeset 9511 241b1232ed7f
parent 9372 e87a808a4c32
child 9556 12ee310541bb
--- a/cwctl.py	Tue Jan 28 16:07:06 2014 +0100
+++ b/cwctl.py	Tue Feb 11 17:29:58 2014 +0100
@@ -781,7 +781,8 @@
         if self.config.fs_only or toupgrade:
             for cube, fromversion, toversion in toupgrade:
                 print '-> migration needed from %s to %s for %s' % (fromversion, toversion, cube)
-            mih.migrate(vcconf, reversed(toupgrade), self.config)
+            with mih.cnx:
+                mih.migrate(vcconf, reversed(toupgrade), self.config)
         else:
             print '-> no data migration needed for instance %s.' % appid
         # rewrite main configuration file
@@ -912,13 +913,14 @@
     def _handle_networked(self, appuri):
         """ returns migration context handler & shutdown function """
         from cubicweb import AuthenticationError
-        from cubicweb.dbapi import connect
+        from cubicweb.repoapi import connect, get_repository
         from cubicweb.server.utils import manager_userpasswd
         from cubicweb.server.migractions import ServerMigrationHelper
         while True:
             try:
                 login, pwd = manager_userpasswd(msg=None)
-                cnx = connect(appuri, login=login, password=pwd, mulcnx=False)
+                repo = get_repository(appuri)
+                cnx = connect(repo, login=login, password=pwd, mulcnx=False)
             except AuthenticationError as ex:
                 print ex
             except (KeyboardInterrupt, EOFError):
@@ -948,15 +950,16 @@
         else:
             mih, shutdown_callback = self._handle_networked(appuri)
         try:
-            if args:
-                # use cmdline parser to access left/right attributes only
-                # remember that usage requires instance appid as first argument
-                scripts, args = self.cmdline_parser.largs[1:], self.cmdline_parser.rargs
-                for script in scripts:
-                    mih.cmd_process_script(script, scriptargs=args)
-                    mih.commit()
-            else:
-                mih.interactive_shell()
+            with mih.cnx:
+                if args:
+                    # use cmdline parser to access left/right attributes only
+                    # remember that usage requires instance appid as first argument
+                    scripts, args = self.cmdline_parser.largs[1:], self.cmdline_parser.rargs
+                    for script in scripts:
+                            mih.cmd_process_script(script, scriptargs=args)
+                            mih.commit()
+                else:
+                    mih.interactive_shell()
         finally:
             shutdown_callback()