backup: Add a warning about the deprecated backup-destination flag

This commit is contained in:
Christian Decker
2020-11-11 16:42:58 +01:00
parent f34787d065
commit 3a1a89ecf8
2 changed files with 35 additions and 0 deletions

View File

@@ -299,6 +299,23 @@ def on_db_write(writes, data_version, plugin, **kwargs):
kill("Could not append DB change to the backup. Need to shutdown!")
@plugin.init()
def on_init(options, **kwargs):
dest = options.get('backup-destination', 'null')
if dest != 'null':
plugin.log(
"The `--backup-destination` option is deprecated and will be "
"removed in future versions of the backup plugin. Please remove "
"it from your configuration. The destination is now determined by "
"the `backup.lock` file in the lightning directory",
level="warn"
)
configs = plugin.rpc.listconfigs()
if not configs['wallet'].startswith('sqlite3'):
kill("The backup plugin only works with the sqlite3 database.")
def kill(message: str):
plugin.log(message)
time.sleep(1)

View File

@@ -189,3 +189,21 @@ def test_restore(node_factory, directory):
rdest = os.path.join(bpath, 'lightningd.sqlite.restore')
subprocess.check_call([cli_path, "restore", bdest, rdest])
def test_warning(directory, node_factory):
bpath = os.path.join(directory, 'lightning-1', 'regtest')
bdest = 'file://' + os.path.join(bpath, 'backup.dbak')
os.makedirs(bpath)
subprocess.check_call([cli_path, "init", bpath, bdest])
opts = {
'plugin': plugin_path,
'allow-deprecated-apis': deprecated_apis,
'backup-destination': 'somewhere/over/the/rainbox',
}
l1 = node_factory.get_node(options=opts, cleandir=False)
l1.stop()
assert(l1.daemon.is_in_log(
r'The `--backup-destination` option is deprecated and will be removed in future versions of the backup plugin.'
))