feat: add logfile name to hook context for interpolation
Merge pull request #68 from diivi/feat/add-log-filename-to-hook-context
This commit is contained in:
commit
b4b1fa939d
2 changed files with 56 additions and 18 deletions
|
@ -267,6 +267,7 @@ def run_actions(
|
||||||
'repository': repository_path,
|
'repository': repository_path,
|
||||||
# Deprecated: For backwards compatibility with borgmatic < 1.6.0.
|
# Deprecated: For backwards compatibility with borgmatic < 1.6.0.
|
||||||
'repositories': ','.join([repo['path'] for repo in location['repositories']]),
|
'repositories': ','.join([repo['path'] for repo in location['repositories']]),
|
||||||
|
'log_file': global_arguments.log_file if global_arguments.log_file else '',
|
||||||
}
|
}
|
||||||
|
|
||||||
command.execute_hook(
|
command.execute_hook(
|
||||||
|
|
|
@ -408,7 +408,7 @@ def test_run_actions_runs_rcreate():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'rcreate': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'rcreate': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -423,6 +423,43 @@ def test_run_actions_runs_rcreate():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_run_actions_adds_log_file_to_hook_context():
|
||||||
|
flexmock(module).should_receive('add_custom_log_levels')
|
||||||
|
flexmock(module.command).should_receive('execute_hook')
|
||||||
|
expected = flexmock()
|
||||||
|
flexmock(borgmatic.actions.create).should_receive('run_create').with_args(
|
||||||
|
config_filename=object,
|
||||||
|
repository={'path': 'repo'},
|
||||||
|
location={'repositories': []},
|
||||||
|
storage=object,
|
||||||
|
hooks={},
|
||||||
|
hook_context={'repository': 'repo', 'repositories': '', 'log_file': 'foo'},
|
||||||
|
local_borg_version=object,
|
||||||
|
create_arguments=object,
|
||||||
|
global_arguments=object,
|
||||||
|
dry_run_label='',
|
||||||
|
local_path=object,
|
||||||
|
remote_path=object,
|
||||||
|
).once().and_return(expected)
|
||||||
|
|
||||||
|
result = tuple(
|
||||||
|
module.run_actions(
|
||||||
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'create': flexmock()},
|
||||||
|
config_filename=flexmock(),
|
||||||
|
location={'repositories': []},
|
||||||
|
storage=flexmock(),
|
||||||
|
retention=flexmock(),
|
||||||
|
consistency=flexmock(),
|
||||||
|
hooks={},
|
||||||
|
local_path=flexmock(),
|
||||||
|
remote_path=flexmock(),
|
||||||
|
local_borg_version=flexmock(),
|
||||||
|
repository={'path': 'repo'},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert result == (expected,)
|
||||||
|
|
||||||
|
|
||||||
def test_run_actions_runs_transfer():
|
def test_run_actions_runs_transfer():
|
||||||
flexmock(module).should_receive('add_custom_log_levels')
|
flexmock(module).should_receive('add_custom_log_levels')
|
||||||
flexmock(module.command).should_receive('execute_hook')
|
flexmock(module.command).should_receive('execute_hook')
|
||||||
|
@ -430,7 +467,7 @@ def test_run_actions_runs_transfer():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'transfer': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'transfer': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -453,7 +490,7 @@ def test_run_actions_runs_create():
|
||||||
|
|
||||||
result = tuple(
|
result = tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'create': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'create': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -476,7 +513,7 @@ def test_run_actions_runs_prune():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'prune': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'prune': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -498,7 +535,7 @@ def test_run_actions_runs_compact():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'compact': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'compact': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -521,7 +558,7 @@ def test_run_actions_runs_check_when_repository_enabled_for_checks():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'check': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'check': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -544,7 +581,7 @@ def test_run_actions_skips_check_when_repository_not_enabled_for_checks():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'check': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'check': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -566,7 +603,7 @@ def test_run_actions_runs_extract():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'extract': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'extract': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -588,7 +625,7 @@ def test_run_actions_runs_export_tar():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'export-tar': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'export-tar': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -610,7 +647,7 @@ def test_run_actions_runs_mount():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'mount': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'mount': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -632,7 +669,7 @@ def test_run_actions_runs_restore():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'restore': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'restore': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -655,7 +692,7 @@ def test_run_actions_runs_rlist():
|
||||||
|
|
||||||
result = tuple(
|
result = tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'rlist': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'rlist': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -679,7 +716,7 @@ def test_run_actions_runs_list():
|
||||||
|
|
||||||
result = tuple(
|
result = tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'list': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'list': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -703,7 +740,7 @@ def test_run_actions_runs_rinfo():
|
||||||
|
|
||||||
result = tuple(
|
result = tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'rinfo': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'rinfo': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -727,7 +764,7 @@ def test_run_actions_runs_info():
|
||||||
|
|
||||||
result = tuple(
|
result = tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'info': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'info': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -750,7 +787,7 @@ def test_run_actions_runs_break_lock():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'break-lock': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'break-lock': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -772,7 +809,7 @@ def test_run_actions_runs_borg():
|
||||||
|
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={'global': flexmock(dry_run=False), 'borg': flexmock()},
|
arguments={'global': flexmock(dry_run=False, log_file='foo'), 'borg': flexmock()},
|
||||||
config_filename=flexmock(),
|
config_filename=flexmock(),
|
||||||
location={'repositories': []},
|
location={'repositories': []},
|
||||||
storage=flexmock(),
|
storage=flexmock(),
|
||||||
|
@ -796,7 +833,7 @@ def test_run_actions_runs_multiple_actions_in_argument_order():
|
||||||
tuple(
|
tuple(
|
||||||
module.run_actions(
|
module.run_actions(
|
||||||
arguments={
|
arguments={
|
||||||
'global': flexmock(dry_run=False),
|
'global': flexmock(dry_run=False, log_file='foo'),
|
||||||
'borg': flexmock(),
|
'borg': flexmock(),
|
||||||
'restore': flexmock(),
|
'restore': flexmock(),
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue