From 610e7ee561bc9800200d704a5eac23a013173c36 Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Fri, 31 Mar 2023 10:44:15 +0800 Subject: [PATCH] Add api and script to restore --- api/__init__.py | 3 ++- api/database.py | 5 +++++ restore_project.py | 12 ++++++++++++ restore_projects.py | 8 ++++++++ tjnetwork.py | 3 +++ 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 restore_project.py create mode 100644 restore_projects.py diff --git a/api/__init__.py b/api/__init__.py index 02f4cc8..e222df7 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -16,7 +16,8 @@ from .database import update_snapshot, update_snapshot_for_current_operation from .database import delete_snapshot, delete_snapshot_by_operation from .database import get_operation_by_snapshot, get_snapshot_by_operation from .database import pick_snapshot -from .database import pick_operation, sync_with_server, get_restore_operation, set_restore_operation, set_restore_operation_to_current +from .database import pick_operation, sync_with_server +from .database import get_restore_operation, set_restore_operation, set_restore_operation_to_current, restore from .batch_cmd import execute_batch_command from .batch_cmds import execute_batch_commands diff --git a/api/database.py b/api/database.py index 6d9089f..a3e4788 100644 --- a/api/database.py +++ b/api/database.py @@ -339,3 +339,8 @@ def set_restore_operation(name: str, operation: int) -> None: def set_restore_operation_to_current(name: str) -> None: return set_restore_operation(name, get_current_operation(name)) + + +def restore(name: str, discard: bool) -> ChangeSet: + op = get_restore_operation(name) + return pick_operation(name, op, discard) diff --git a/restore_project.py b/restore_project.py new file mode 100644 index 0000000..af92e9c --- /dev/null +++ b/restore_project.py @@ -0,0 +1,12 @@ +import sys +from tjnetwork import * + +def main(): + if len(sys.argv) != 2: + print("restore_project name") + return + + restore(sys.argv[1]) + +if __name__ == '__main__': + main() diff --git a/restore_projects.py b/restore_projects.py new file mode 100644 index 0000000..bd1126e --- /dev/null +++ b/restore_projects.py @@ -0,0 +1,8 @@ +from tjnetwork import * + +def main(): + for p in list_project(): + restore(p) + +if __name__ == '__main__': + main() diff --git a/tjnetwork.py b/tjnetwork.py index d291b6e..8890429 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -291,6 +291,9 @@ def set_restore_operation(name: str, operation: int) -> None: def set_restore_operation_to_current(name: str) -> None: return api.set_restore_operation_to_current(name) +def restore(name: str, discard: bool = False) -> ChangeSet: + return api.restore(name, discard) + ############################################################ # type