fix: make check repositories work with dict and str repositories (#662).
Merge pull request #63 from diivi/fix/check-repositories-by-label
This commit is contained in:
commit
9d71bf916e
2 changed files with 22 additions and 3 deletions
|
@ -69,7 +69,10 @@ def apply_logical_validation(config_filename, parsed_configuration):
|
||||||
location_repositories = parsed_configuration.get('location', {}).get('repositories')
|
location_repositories = parsed_configuration.get('location', {}).get('repositories')
|
||||||
check_repositories = parsed_configuration.get('consistency', {}).get('check_repositories', [])
|
check_repositories = parsed_configuration.get('consistency', {}).get('check_repositories', [])
|
||||||
for repository in check_repositories:
|
for repository in check_repositories:
|
||||||
if repository not in location_repositories:
|
if not any(
|
||||||
|
repositories_match(repository, config_repository)
|
||||||
|
for config_repository in location_repositories
|
||||||
|
):
|
||||||
raise Validation_error(
|
raise Validation_error(
|
||||||
config_filename,
|
config_filename,
|
||||||
(
|
(
|
||||||
|
|
|
@ -51,17 +51,33 @@ def test_apply_locical_validation_raises_if_unknown_repository_in_check_reposito
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_apply_locical_validation_does_not_raise_if_known_repository_in_check_repositories():
|
def test_apply_locical_validation_does_not_raise_if_known_repository_path_in_check_repositories():
|
||||||
module.apply_logical_validation(
|
module.apply_logical_validation(
|
||||||
'config.yaml',
|
'config.yaml',
|
||||||
{
|
{
|
||||||
'location': {'repositories': ['repo.borg', 'other.borg']},
|
'location': {'repositories': [{'path': 'repo.borg'}, {'path': 'other.borg'}]},
|
||||||
'retention': {'keep_secondly': 1000},
|
'retention': {'keep_secondly': 1000},
|
||||||
'consistency': {'check_repositories': ['repo.borg']},
|
'consistency': {'check_repositories': ['repo.borg']},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_apply_locical_validation_does_not_raise_if_known_repository_label_in_check_repositories():
|
||||||
|
module.apply_logical_validation(
|
||||||
|
'config.yaml',
|
||||||
|
{
|
||||||
|
'location': {
|
||||||
|
'repositories': [
|
||||||
|
{'path': 'repo.borg', 'label': 'my_repo'},
|
||||||
|
{'path': 'other.borg', 'label': 'other_repo'},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'retention': {'keep_secondly': 1000},
|
||||||
|
'consistency': {'check_repositories': ['my_repo']},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_apply_logical_validation_does_not_raise_if_archive_name_format_and_prefix_present():
|
def test_apply_logical_validation_does_not_raise_if_archive_name_format_and_prefix_present():
|
||||||
module.apply_logical_validation(
|
module.apply_logical_validation(
|
||||||
'config.yaml',
|
'config.yaml',
|
||||||
|
|
Loading…
Reference in a new issue