5 changed files with 76 additions and 7 deletions
@ -0,0 +1,39 @@ |
|||
#!/usr/bin/env python3 |
|||
"""This plugin is used to check that db_write calls are working correctly. |
|||
""" |
|||
from lightning import Plugin, RpcError |
|||
import sqlite3 |
|||
|
|||
plugin = Plugin() |
|||
plugin.sqlite_pre_init_cmds = [] |
|||
plugin.initted = False |
|||
|
|||
|
|||
@plugin.init() |
|||
def init(configuration, options, plugin): |
|||
if not plugin.get_option('dblog-file'): |
|||
raise RpcError("No dblog-file specified") |
|||
plugin.conn = sqlite3.connect(plugin.get_option('dblog-file'), |
|||
isolation_level=None) |
|||
plugin.log("replaying pre-init data:") |
|||
for c in plugin.sqlite_pre_init_cmds: |
|||
plugin.conn.execute(c) |
|||
plugin.log("{}".format(c)) |
|||
plugin.initted = True |
|||
plugin.log("initialized") |
|||
|
|||
|
|||
@plugin.hook('db_write') |
|||
def db_write(plugin, writes): |
|||
if not plugin.initted: |
|||
plugin.log("deferring {} commands".format(len(writes))) |
|||
plugin.sqlite_pre_init_cmds += writes |
|||
else: |
|||
for c in writes: |
|||
plugin.conn.execute(c) |
|||
plugin.log("{}".format(c)) |
|||
return True |
|||
|
|||
|
|||
plugin.add_option('dblog-file', None, 'The db file to create.') |
|||
plugin.run() |
Loading…
Reference in new issue