* fix: do fail when we cannot write in read-mode ops

This commit is contained in:
Eray Özkural
2006-05-30 06:47:00 +00:00
parent b4864525c0
commit 4b05b2823f
+5 -5
View File
@@ -83,7 +83,8 @@ def init_dbenv(write=False, writeversion=False):
check_dbversion('filesdbversion', pisi.__filesdbversion__, write=write, update=writeversion) check_dbversion('filesdbversion', pisi.__filesdbversion__, write=write, update=writeversion)
else: else:
raise Error(_('Cannot attain read access to database environment')) raise Error(_('Cannot attain read access to database environment'))
if write and os.access(pisi.context.config.db_dir(), os.W_OK): if write:
if os.access(pisi.context.config.db_dir(), os.W_OK):
lock_dbenv() lock_dbenv()
ctx.dbenv = dbobj.DBEnv() ctx.dbenv = dbobj.DBEnv()
flags = (db.DB_INIT_MPOOL | # cache flags = (db.DB_INIT_MPOOL | # cache
@@ -95,10 +96,9 @@ def init_dbenv(write=False, writeversion=False):
ctx.dbenv.open(pisi.context.config.db_dir(), flags) ctx.dbenv.open(pisi.context.config.db_dir(), flags)
ctx.dbenv.set_flags(db.DB_LOG_AUTOREMOVE, 1) # clear inactive logs automatically ctx.dbenv.set_flags(db.DB_LOG_AUTOREMOVE, 1) # clear inactive logs automatically
else: else:
# Warn if not on purpose raise Error(_("Cannot write to PISI database."))
if write: else:
ctx.ui.warning(_("Opening PISI database in read-only mode. Operations that require write access will fail.")) ctx.dbenv = None # read-only access to database
ctx.dbenv = None
#def open(filename, flags='r', mode = 0644, filetype = db.DB_BTREE): #def open(filename, flags='r', mode = 0644, filetype = db.DB_BTREE):
# db = LockedDBShelf(None, mode, filetype, None, True) # db = LockedDBShelf(None, mode, filetype, None, True)