From 97c5bcec136eb549b57cdb74ebd9da7ca1338e90 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 15 Apr 2018 10:29:43 -0400 Subject: config: allow reading both the defaults file and the modified config In the process, rename config.proto to config.defaults (because that is what it is now). Also use dict.get('key', default_value) when querying os.environ, rather than an if block, as it is more pythonic/readable/concise, and reduces the number of dict lookups. This change allows aurweb configuration to be done via either: - copying config.defaults to config and modifying values - creating a new config only containing modified values, next to a config.defaults containing unmodified values The motivation for this change is to enable ansible configuration in our flagship deployment by storing only changed values, and deferring to config.defaults otherwise. A side benefit is, it is easier to see what has changed by inspecting only the site configuration file. If a config.defaults file does not exist next to $AUR_CONFIG or in $AUR_CONFIG_DEFAULTS, it is ignored and *all* values are expected to live in the modified config file. Signed-off-by: Eli Schwartz Signed-off-by: Lukas Fleischer --- conf/config.defaults | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ conf/config.proto | 81 ---------------------------------------------------- 2 files changed, 81 insertions(+), 81 deletions(-) create mode 100644 conf/config.defaults delete mode 100644 conf/config.proto (limited to 'conf') diff --git a/conf/config.defaults b/conf/config.defaults new file mode 100644 index 00000000..be37f430 --- /dev/null +++ b/conf/config.defaults @@ -0,0 +1,81 @@ +[database] +backend = mysql +host = localhost +socket = /var/run/mysqld/mysqld.sock +name = AUR +user = aur +password = aur + +[options] +username_min_len = 3 +username_max_len = 16 +passwd_min_len = 8 +default_lang = en +default_timezone = UTC +sql_debug = 0 +max_sessions_per_user = 8 +login_timeout = 7200 +persistent_cookie_timeout = 2592000 +max_filesize_uncompressed = 8388608 +disable_http_login = 1 +aur_location = https://aur.archlinux.org +git_clone_uri_anon = https://aur.archlinux.org/%s.git +git_clone_uri_priv = ssh://aur@aur.archlinux.org/%s.git +max_rpc_results = 5000 +max_depends = 1000 +aur_request_ml = aur-requests@archlinux.org +request_idle_time = 1209600 +request_archive_time = 15552000 +auto_orphan_age = 15552000 +auto_delete_age = 86400 +source_file_uri = https://aur.archlinux.org/cgit/aur.git/tree/%s?h=%s +log_uri = https://aur.archlinux.org/cgit/aur.git/log/?h=%s +commit_uri = https://aur.archlinux.org/cgit/aur.git/commit/?h=%s&id=%s +snapshot_uri = /cgit/aur.git/snapshot/%s.tar.gz +enable-maintenance = 1 +maintenance-exceptions = 127.0.0.1 +render-comment-cmd = /usr/local/bin/aurweb-rendercomment +# memcache or apc +cache = none +memcache_servers = 127.0.0.1:11211 + +[ratelimit] +request_limit = 4000 +window_length = 86400 + +[notifications] +notify-cmd = /usr/local/bin/aurweb-notify +sendmail = /usr/bin/sendmail +sender = notify@aur.archlinux.org +reply-to = noreply@aur.archlinux.org + +[fingerprints] +Ed25519 = SHA256:HQ03dn6EasJHNDlt51KpQpFkT3yBX83x7BoIkA1iv2k +ECDSA = SHA256:L71Q91yHwmHPYYkJMDgj0xmUuw16qFOhJbBr1mzsiOI +RSA = SHA256:Ju+yWiMb/2O+gKQ9RJCDqvRg7l+Q95KFAeqM5sr6l2s + +[auth] +valid-keytypes = ssh-rsa ssh-dss ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521 ssh-ed25519 +username-regex = [a-zA-Z0-9]+[.\-_]?[a-zA-Z0-9]+$ +git-serve-cmd = /usr/local/bin/aurweb-git-serve +ssh-options = restrict + +[serve] +repo-path = /srv/http/aurweb/aur.git/ +repo-regex = [a-z0-9][a-z0-9.+_-]*$ +git-shell-cmd = /usr/bin/git-shell +git-update-cmd = /usr/local/bin/aurweb-git-update +ssh-cmdline = ssh aur@aur.archlinux.org + +[update] +max-blob-size = 256000 + +[aurblup] +db-path = /srv/http/aurweb/aurblup/ +sync-dbs = core extra community multilib testing community-testing +server = ftp://mirrors.kernel.org/archlinux/%s/os/x86_64 + +[mkpkglists] +packagesfile = /srv/http/aurweb/web/html/packages.gz +pkgbasefile = /srv/http/aurweb/web/html/pkgbase.gz +userfile = /srv/http/aurweb/web/html/users.gz diff --git a/conf/config.proto b/conf/config.proto deleted file mode 100644 index be37f430..00000000 --- a/conf/config.proto +++ /dev/null @@ -1,81 +0,0 @@ -[database] -backend = mysql -host = localhost -socket = /var/run/mysqld/mysqld.sock -name = AUR -user = aur -password = aur - -[options] -username_min_len = 3 -username_max_len = 16 -passwd_min_len = 8 -default_lang = en -default_timezone = UTC -sql_debug = 0 -max_sessions_per_user = 8 -login_timeout = 7200 -persistent_cookie_timeout = 2592000 -max_filesize_uncompressed = 8388608 -disable_http_login = 1 -aur_location = https://aur.archlinux.org -git_clone_uri_anon = https://aur.archlinux.org/%s.git -git_clone_uri_priv = ssh://aur@aur.archlinux.org/%s.git -max_rpc_results = 5000 -max_depends = 1000 -aur_request_ml = aur-requests@archlinux.org -request_idle_time = 1209600 -request_archive_time = 15552000 -auto_orphan_age = 15552000 -auto_delete_age = 86400 -source_file_uri = https://aur.archlinux.org/cgit/aur.git/tree/%s?h=%s -log_uri = https://aur.archlinux.org/cgit/aur.git/log/?h=%s -commit_uri = https://aur.archlinux.org/cgit/aur.git/commit/?h=%s&id=%s -snapshot_uri = /cgit/aur.git/snapshot/%s.tar.gz -enable-maintenance = 1 -maintenance-exceptions = 127.0.0.1 -render-comment-cmd = /usr/local/bin/aurweb-rendercomment -# memcache or apc -cache = none -memcache_servers = 127.0.0.1:11211 - -[ratelimit] -request_limit = 4000 -window_length = 86400 - -[notifications] -notify-cmd = /usr/local/bin/aurweb-notify -sendmail = /usr/bin/sendmail -sender = notify@aur.archlinux.org -reply-to = noreply@aur.archlinux.org - -[fingerprints] -Ed25519 = SHA256:HQ03dn6EasJHNDlt51KpQpFkT3yBX83x7BoIkA1iv2k -ECDSA = SHA256:L71Q91yHwmHPYYkJMDgj0xmUuw16qFOhJbBr1mzsiOI -RSA = SHA256:Ju+yWiMb/2O+gKQ9RJCDqvRg7l+Q95KFAeqM5sr6l2s - -[auth] -valid-keytypes = ssh-rsa ssh-dss ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521 ssh-ed25519 -username-regex = [a-zA-Z0-9]+[.\-_]?[a-zA-Z0-9]+$ -git-serve-cmd = /usr/local/bin/aurweb-git-serve -ssh-options = restrict - -[serve] -repo-path = /srv/http/aurweb/aur.git/ -repo-regex = [a-z0-9][a-z0-9.+_-]*$ -git-shell-cmd = /usr/bin/git-shell -git-update-cmd = /usr/local/bin/aurweb-git-update -ssh-cmdline = ssh aur@aur.archlinux.org - -[update] -max-blob-size = 256000 - -[aurblup] -db-path = /srv/http/aurweb/aurblup/ -sync-dbs = core extra community multilib testing community-testing -server = ftp://mirrors.kernel.org/archlinux/%s/os/x86_64 - -[mkpkglists] -packagesfile = /srv/http/aurweb/web/html/packages.gz -pkgbasefile = /srv/http/aurweb/web/html/pkgbase.gz -userfile = /srv/http/aurweb/web/html/users.gz -- cgit v1.2.3-24-g4f1b