[Zope] Knowing the Zope database is configured read-only

Tim Peters tim.peters at gmail.com
Thu Feb 17 15:01:26 EST 2005

[Damien Wyart]
>> ...
>> Is there a simple way to know from code (zpt, script, Condition of
>>actions) that the main database has been set read-only ?

[Dieter Maurer]
> I do not know of a simple way -- but a complex one:
>  If "obj" is a persistent object, then "obj._p_jar" is
>  its ZODB connection (that loaded it from the ZODB).
>  If "conn" is a ZODB connection, then "conn._storage" is
>  its ZODB storage.
>  If "storage" is a storage, then, usually, you
>  can check the "_is_read_only" attribute to determine
>  writability.
> As you see from the "_" prefix in attribute, this
> method requires trusted code (e.g. an External Method).

FWIW, both storages and connections support the isReadOnly() method;
you don't have to (and shouldn't) muck around looking at private
attributes like _storage or _is_read_only, and in the case of a ZEO
client connection _is_read_only alone doesn't tell the full story (but
isReadOnly() does).

More information about the Zope mailing list