feature: reverts removing 'default_when_empty' attribute

This commit is contained in:
ievgenii vdovenko 2025-08-06 12:25:47 +02:00
parent 53284fc1a5
commit 0af73439e5
3 changed files with 19 additions and 6 deletions

View file

@ -50,12 +50,14 @@ def _sanitize_settings_and_apply_defaults(settings):
settings_maker.make_setting(
config_keys.legacy_filesystem_storage_path,
default_store_dir,
default_when_empty=True,
)
# filesystem defaults
settings_maker.make_setting(
config_keys.filesystem_storage_path,
default_store_dir,
default_when_empty=True,
)
settings_maker.make_setting(config_keys.filesystem_shards, 8, parser="int")

View file

@ -122,11 +122,13 @@ def sanitize_settings_and_apply_defaults(global_config, settings):
"vcs.git.lfs.storage_location",
"/var/opt/rhodecode_repo_store/.cache/git_lfs_store",
parser="dir:ensured",
default_when_empty=True,
)
settings_maker.make_setting(
"vcs.hg.largefiles.storage_location",
"/var/opt/rhodecode_repo_store/.cache/hg_largefiles_store",
parser="dir:ensured",
default_when_empty=True,
)
settings_maker.make_setting("vcs.methods.cache", True, parser="bool")
@ -146,27 +148,31 @@ def sanitize_settings_and_apply_defaults(global_config, settings):
tmp_cache_dir = jn(temp_store, "rc_cache")
# save default, cache dir, and use it for all backends later.
default_cache_dir = settings_maker.make_setting("cache_dir", default=tmp_cache_dir, parser="dir:ensured")
default_cache_dir = settings_maker.make_setting(
"cache_dir", default=tmp_cache_dir, default_when_empty=True, parser="dir:ensured"
)
# exception store cache
settings_maker.make_setting(
"exception_tracker.store_path",
default=jn(default_cache_dir, "exc_store"),
parser="dir:ensured",
default_when_empty=True,
)
settings_maker.make_setting(
"celerybeat-schedule.path",
default=jn(default_cache_dir, "celerybeat_schedule", "celerybeat-schedule.db"),
default_when_empty=True,
parser="file:ensured",
)
# celery
broker_url = settings_maker.make_setting("celery.broker_url", "redis://redis:6379/8")
broker_url = settings_maker.make_setting("celery.broker_url", "redis://redis:6379/8", default_when_empty=True)
settings_maker.make_setting("celery.result_backend", broker_url)
settings_maker.make_setting("exception_tracker.send_email", False, parser="bool")
settings_maker.make_setting("exception_tracker.email_prefix", "[RHODECODE ERROR]")
settings_maker.make_setting("exception_tracker.email_prefix", "[RHODECODE ERROR]", default_when_empty=True)
# sessions, ensure file since no-value is memory
settings_maker.make_setting("beaker.session.type", "file")
@ -217,6 +223,7 @@ def sanitize_settings_and_apply_defaults(global_config, settings):
settings_maker.make_setting(
"archive_cache.filesystem.store_dir",
jn(default_cache_dir, "archive_cache"),
default_when_empty=True,
)
settings_maker.make_setting("archive_cache.filesystem.cache_shards", 8, parser="int")
settings_maker.make_setting("archive_cache.filesystem.cache_size_gb", 10, parser="float")
@ -229,6 +236,7 @@ def sanitize_settings_and_apply_defaults(global_config, settings):
settings_maker.make_setting(
"archive_cache.objectstore.url",
"http://s3-minio:9000",
default_when_empty=True,
)
settings_maker.make_setting("archive_cache.objectstore.key", "")
settings_maker.make_setting("archive_cache.objectstore.secret", "")
@ -236,6 +244,7 @@ def sanitize_settings_and_apply_defaults(global_config, settings):
settings_maker.make_setting(
"archive_cache.objectstore.bucket",
"rhodecode-archive-cache",
default_when_empty=True,
)
settings_maker.make_setting("archive_cache.objectstore.bucket_shards", 8, parser="int")

View file

@ -181,15 +181,17 @@ class SettingsMaker:
logging.config.fileConfig(f.name)
os.remove(f.name)
def make_setting(self, key, default, lower=False, parser=None, write_default_to_ini=False):
input_val = self.settings.get(key)
def make_setting(
self, key, default, lower=False, default_when_empty=False, parser=None, write_default_to_ini=False
):
input_val = self.settings.get(key, default)
if write_default_to_ini and not input_val:
initialize_ini_config_default_values_if_not_present(
ini_path=self.settings.get("__file__"), option=key, default_val=default
)
if not input_val:
if default_when_empty and not input_val:
# use default value when value is set in the config but it is empty
input_val = default