sharing/verify: add check

This commit is contained in:
Peter Bieringer
2026-03-07 08:32:59 +01:00
parent 29ddf28d0b
commit 1d133a750f

View File

@@ -109,6 +109,7 @@ class BaseSharing:
_enabled: bool = False _enabled: bool = False
default_permissions_create_token: str default_permissions_create_token: str
default_permissions_create_map: str default_permissions_create_map: str
sharing_db_type: str
def __init__(self, configuration: "config.Configuration") -> None: def __init__(self, configuration: "config.Configuration") -> None:
"""Initialize Sharing. """Initialize Sharing.
@@ -139,6 +140,10 @@ class BaseSharing:
logger.info("sharing.permit_properties_overlay: %s", self.permit_properties_overlay) logger.info("sharing.permit_properties_overlay: %s", self.permit_properties_overlay)
logger.info("sharing.enforce_properties_overlay: %s", self.enforce_properties_overlay) logger.info("sharing.enforce_properties_overlay: %s", self.enforce_properties_overlay)
# database tasks
self.sharing_db_type = configuration.get("sharing", "type")
logger.info("sharing.database_type: %s", self.sharing_db_type)
if ((self.sharing_collection_by_map is False) and (self.sharing_collection_by_token is False)): if ((self.sharing_collection_by_map is False) and (self.sharing_collection_by_token is False)):
logger.info("sharing disabled as no feature is enabled") logger.info("sharing disabled as no feature is enabled")
self._enabled = False self._enabled = False
@@ -146,15 +151,17 @@ class BaseSharing:
else: else:
self._enabled = True self._enabled = True
# database tasks if not self._init_db():
self.sharing_db_type = configuration.get("sharing", "type") return
logger.info("sharing.database_type: %s", self.sharing_db_type)
def _init_db(self) -> bool:
"""Initialize Sharing Database
"""
try: try:
if self.database_init() is False: if self.database_init() is False:
logger.info("sharing disabled as no database is active") logger.info("sharing disabled as no database is active")
self._enabled = False self._enabled = False
return return False
except Exception as e: except Exception as e:
logger.error("sharing database cannot be initialized: %r", e) logger.error("sharing database cannot be initialized: %r", e)
exit(1) exit(1)
@@ -163,6 +170,7 @@ class BaseSharing:
logger.info("sharing database info: %r", database_info) logger.info("sharing database info: %r", database_info)
else: else:
logger.info("sharing database info: (not provided)") logger.info("sharing database info: (not provided)")
return True
# *** overloadable database functions *** # *** overloadable database functions ***
def database_init(self) -> bool: def database_init(self) -> bool:
@@ -236,6 +244,10 @@ class BaseSharing:
def verify(self) -> bool: def verify(self) -> bool:
""" verify database """ """ verify database """
logger.info("sharing database verification begin") logger.info("sharing database verification begin")
if not self._init_db():
return False
logger.info("sharing database verification call: %s", self.sharing_db_type) logger.info("sharing database verification call: %s", self.sharing_db_type)
result = self.database_verify() result = self.database_verify()
if result is not True: if result is not True:
@@ -261,7 +273,16 @@ class BaseSharing:
return False return False
else: else:
pass pass
# TODO: check PathMapped exists
# check PathMapped exists
with self._storage.acquire_lock("r", path=entry['PathMapped']):
item = next(iter(self._storage.discover(entry['PathMapped'])), None)
if not item:
logger.error("PathMapped is not existing: %r", entry['PathMapped'])
return False
else:
logger.debug("PathMapped exists(ok): %r", entry['PathMapped'])
logger.info("sharing database verification content successful") logger.info("sharing database verification content successful")
return True return True