Allow for dynamic configuration validation rules

This commit is contained in:
Jean-Paul Calderone
2019-06-17 16:44:17 -04:00
parent 4216bd6ed1
commit fb4c5cf91f
4 changed files with 172 additions and 29 deletions

View File

@ -18,7 +18,10 @@ from allmydata.immutable.upload import Uploader
from allmydata.immutable.offloaded import Helper
from allmydata.control import ControlServer
from allmydata.introducer.client import IntroducerClient
from allmydata.util import (hashutil, base32, pollmixin, log, idlib, yamlutil)
from allmydata.util import (
hashutil, base32, pollmixin, log, idlib,
yamlutil, configutil,
)
from allmydata.util.encodingutil import (get_filesystem_encoding,
from_utf8_or_none)
from allmydata.util.abbreviate import parse_abbreviated_size
@ -39,9 +42,9 @@ GiB=1024*MiB
TiB=1024*GiB
PiB=1024*TiB
def _valid_config_sections():
cfg = node._common_config_sections()
cfg.update({
def _valid_config():
cfg = node._common_valid_config()
return cfg.update(configutil.ValidConfiguration({
"client": (
"helper.furl",
"introducer.furl",
@ -93,8 +96,7 @@ def _valid_config_sections():
"local.directory",
"poll_interval",
),
})
return cfg
}))
# this is put into README in new node-directories
CLIENT_README = """
@ -180,7 +182,7 @@ def read_config(basedir, portnumfile, generated_files=[]):
return node.read_config(
basedir, portnumfile,
generated_files=generated_files,
_valid_config_sections=_valid_config_sections,
_valid_config=_valid_config(),
)