server/serverctl.py
changeset 4848 41f84eea63c9
parent 4845 dc351b96f596
child 4886 18a1735c283c
equal deleted inserted replaced
4847:9466604ef448 4848:41f84eea63c9
    68                          **extra)
    68                          **extra)
    69     try:
    69     try:
    70         cnx.logged_user = user
    70         cnx.logged_user = user
    71     except AttributeError:
    71     except AttributeError:
    72         # C object, __slots__
    72         # C object, __slots__
    73         from logilab.db import _SimpleConnectionWrapper
    73         from logilab.database import _SimpleConnectionWrapper
    74         cnx = _SimpleConnectionWrapper(cnx)
    74         cnx = _SimpleConnectionWrapper(cnx)
    75         cnx.logged_user = user
    75         cnx.logged_user = user
    76     return cnx
    76     return cnx
    77 
    77 
    78 def system_source_cnx(source, dbms_system_base=False,
    78 def system_source_cnx(source, dbms_system_base=False,
    81     defined in the given config. If <dbms_system_base> is True,
    81     defined in the given config. If <dbms_system_base> is True,
    82     connect to the dbms system database instead (for task such as
    82     connect to the dbms system database instead (for task such as
    83     create/drop the instance database)
    83     create/drop the instance database)
    84     """
    84     """
    85     if dbms_system_base:
    85     if dbms_system_base:
    86         from logilab.db import get_db_helper
    86         from logilab.database import get_db_helper
    87         system_db = get_db_helper(source['db-driver']).system_database()
    87         system_db = get_db_helper(source['db-driver']).system_database()
    88         return source_cnx(source, system_db, special_privs=special_privs, verbose=verbose)
    88         return source_cnx(source, system_db, special_privs=special_privs, verbose=verbose)
    89     return source_cnx(source, special_privs=special_privs, verbose=verbose)
    89     return source_cnx(source, special_privs=special_privs, verbose=verbose)
    90 
    90 
    91 def _db_sys_cnx(source, what, db=None, user=None, verbose=True):
    91 def _db_sys_cnx(source, what, db=None, user=None, verbose=True):
    92     """return a connection on the RDMS system table (to create/drop a user
    92     """return a connection on the RDMS system table (to create/drop a user
    93     or a database
    93     or a database
    94     """
    94     """
    95     import logilab.common as lgp
    95     import logilab.common as lgp
    96     from logilab.db import get_db_helper
    96     from logilab.database import get_db_helper
    97     lgp.USE_MX_DATETIME = False
    97     lgp.USE_MX_DATETIME = False
    98     special_privs = ''
    98     special_privs = ''
    99     driver = source['db-driver']
    99     driver = source['db-driver']
   100     helper = get_db_helper(driver)
   100     helper = get_db_helper(driver)
   101     if user is not None and helper.users_support:
   101     if user is not None and helper.users_support:
   208     cmdname = 'delete'
   208     cmdname = 'delete'
   209     cfgname = 'repository'
   209     cfgname = 'repository'
   210 
   210 
   211     def cleanup(self):
   211     def cleanup(self):
   212         """remove instance's configuration and database"""
   212         """remove instance's configuration and database"""
   213         from logilab.db import get_db_helper
   213         from logilab.database import get_db_helper
   214         source = self.config.sources()['system']
   214         source = self.config.sources()['system']
   215         dbname = source['db-name']
   215         dbname = source['db-name']
   216         helper = get_db_helper(source['db-driver'])
   216         helper = get_db_helper(source['db-driver'])
   217         if ASK.confirm('Delete database %s ?' % dbname):
   217         if ASK.confirm('Delete database %s ?' % dbname):
   218             user = source['db-user'] or None
   218             user = source['db-user'] or None
   291           }
   291           }
   292          ),
   292          ),
   293         )
   293         )
   294     def run(self, args):
   294     def run(self, args):
   295         """run the command with its specific arguments"""
   295         """run the command with its specific arguments"""
   296         from logilab.db import get_db_helper
   296         from logilab.database import get_db_helper
   297         verbose = self.get('verbose')
   297         verbose = self.get('verbose')
   298         automatic = self.get('automatic')
   298         automatic = self.get('automatic')
   299         appid = pop_arg(args, msg='No instance specified !')
   299         appid = pop_arg(args, msg='No instance specified !')
   300         config = ServerConfiguration.config_for(appid)
   300         config = ServerConfiguration.config_for(appid)
   301         source = config.sources()['system']
   301         source = config.sources()['system']