30 lines
882 B
Python
30 lines
882 B
Python
from . import snapshot
|
|
from .. import defaults, utils
|
|
|
|
|
|
@utils.rpc_callback
|
|
async def callback_func(data, uid):
|
|
# Get operation
|
|
if not isinstance(data, dict):
|
|
raise ValueError("data have to be a object.")
|
|
if "operation" not in data:
|
|
raise ValueError("'operation' isn't set.")
|
|
operation = data["operation"]
|
|
del data["operation"]
|
|
|
|
# Run operation
|
|
if operation == "create_backup":
|
|
# Get args
|
|
name = data["name"]
|
|
del data["name"]
|
|
utils.valid_name_check(name)
|
|
|
|
# Create snapshot
|
|
utils.check_empty_data_dict(data)
|
|
return await snapshot.create_snapshot(name, uid)
|
|
else:
|
|
raise NotImplementedError("%s isn't implemented." & repr(operation))
|
|
|
|
|
|
async def run_deamon(path:str=defaults.DEFAULT_PATH, fork:bool=False):
|
|
await utils.run_access_socket(path, callback_func, fork=fork) |