[entropy.server,entropy.db] make EntropyRepositoryBase.readonly property private
Rename .readonly property to ._readonly and expose a setter only where strictly required (entropy.server)
This commit is contained in:
@@ -517,7 +517,7 @@ class EntropyRepository(EntropyRepositoryBase):
|
||||
pass
|
||||
try:
|
||||
conn = self.__connection_cache.pop((th_id, pid))
|
||||
if not self.readonly:
|
||||
if not self._readonly:
|
||||
try:
|
||||
conn.commit()
|
||||
except OperationalError:
|
||||
@@ -593,7 +593,7 @@ class EntropyRepository(EntropyRepositoryBase):
|
||||
first_part = "<EntropyRepository instance at %s, %s" % (
|
||||
hex(id(self)), self._db_path,)
|
||||
second_part = ", ro: %s, caching: %s, indexing: %s" % (
|
||||
self.readonly, self.caching(), self.__indexing,)
|
||||
self._readonly, self.caching(), self.__indexing,)
|
||||
third_part = ", name: %s, skip_upd: %s, st_upd: %s" % (
|
||||
self.name, self.__skip_checks, self.__structure_update,)
|
||||
fourth_part = ", conn_cache: %s, cursor_cache: %s>" % (
|
||||
@@ -708,7 +708,7 @@ class EntropyRepository(EntropyRepositoryBase):
|
||||
Reimplemented from EntropyRepositoryBase.
|
||||
Needs to call superclass method.
|
||||
"""
|
||||
if force or (not self.readonly):
|
||||
if force or (not self._readonly):
|
||||
# NOTE: the actual commit MUST be executed before calling
|
||||
# the superclass method (that is going to call EntropyRepositoryBase
|
||||
# plugins). This to avoid that other connection to the same exact
|
||||
@@ -4534,8 +4534,8 @@ class EntropyRepository(EntropyRepositoryBase):
|
||||
(not os.getenv("ETP_REPO_SCHEMA_UPDATE")):
|
||||
return
|
||||
|
||||
old_readonly = self.readonly
|
||||
self.readonly = False
|
||||
old_readonly = self._readonly
|
||||
self._readonly = False
|
||||
|
||||
if not self._doesTableExist("packagedesktopmime"):
|
||||
self._createPackageDesktopMimeTable()
|
||||
@@ -4588,7 +4588,7 @@ class EntropyRepository(EntropyRepositoryBase):
|
||||
|
||||
self._foreignKeySupport()
|
||||
|
||||
self.readonly = old_readonly
|
||||
self._readonly = old_readonly
|
||||
self._connection().commit()
|
||||
|
||||
if not old_readonly:
|
||||
|
||||
@@ -372,7 +372,7 @@ class EntropyRepositoryBase(TextInterface, EntropyRepositoryPluginStore, object)
|
||||
@param name: repository identifier (or name)
|
||||
@type name: string
|
||||
"""
|
||||
self.readonly = readonly
|
||||
self._readonly = readonly
|
||||
self._caching = xcache
|
||||
self._temporary = temporary
|
||||
self.name = name
|
||||
@@ -402,6 +402,15 @@ class EntropyRepositoryBase(TextInterface, EntropyRepositoryPluginStore, object)
|
||||
"""
|
||||
return self._temporary
|
||||
|
||||
def readonly(self):
|
||||
"""
|
||||
Return whether the repository is read-only.
|
||||
|
||||
@return: True, if repository is read-only
|
||||
@rtype: bool
|
||||
"""
|
||||
return self._readonly
|
||||
|
||||
def close(self):
|
||||
"""
|
||||
Close repository storage communication and open disk files.
|
||||
@@ -409,7 +418,7 @@ class EntropyRepositoryBase(TextInterface, EntropyRepositoryPluginStore, object)
|
||||
Attention: call this method from your subclass, otherwise
|
||||
EntropyRepositoryPlugins won't be notified of a repo close.
|
||||
"""
|
||||
if not self.readonly:
|
||||
if not self._readonly:
|
||||
self.commit()
|
||||
|
||||
plugins = self.get_plugins()
|
||||
|
||||
@@ -236,6 +236,15 @@ class ServerPackagesRepository(EntropyRepository):
|
||||
return self.addPackage(pkg_data, revision = current_rev,
|
||||
formatted_content = formattedContent)
|
||||
|
||||
def setReadonly(self, readonly):
|
||||
"""
|
||||
Set or unset the repository as read-only.
|
||||
|
||||
@param readonly: True, enable read-only
|
||||
@type readonly: bool
|
||||
"""
|
||||
self._readonly = bool(readonly)
|
||||
|
||||
|
||||
class ServerPackagesRepositoryUpdater(object):
|
||||
|
||||
|
||||
@@ -108,7 +108,9 @@ class ServerEntropyRepositoryPlugin(EntropyRepositoryPlugin):
|
||||
if not local_dbfile_exists:
|
||||
# better than having a completely broken db
|
||||
self._metadata['read_only'] = False
|
||||
entropy_repository_instance.readonly = False
|
||||
# force parameters, only ServerEntropyRepository exposes
|
||||
# the setReadonly method
|
||||
entropy_repository_instance.setReadonly(False)
|
||||
entropy_repository_instance.initializeRepository()
|
||||
entropy_repository_instance.commit()
|
||||
|
||||
|
||||
@@ -2520,8 +2520,9 @@ class PortagePlugin(SpmPlugin):
|
||||
|
||||
if do_rescan or (str(stored_digest) != str(portage_dirs_digest)):
|
||||
|
||||
# force parameters
|
||||
entropy_repository.readonly = False
|
||||
# force parameters, only ServerEntropyRepository exposes
|
||||
# the setReadonly method
|
||||
entropy_repository.setReadonly(False)
|
||||
# disable upload trigger
|
||||
from entropy.server.interfaces.main import \
|
||||
ServerEntropyRepositoryPlugin
|
||||
|
||||
Reference in New Issue
Block a user