forked from TrueCloudLab/frostfs-testlib
69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
from typing import Optional
|
|
|
|
from neofs_testlib.cli.cli_command import CliCommand
|
|
from neofs_testlib.cli.neogo.network_type import NetworkType
|
|
from neofs_testlib.shell import CommandResult
|
|
|
|
|
|
class NeoGoDb(CliCommand):
|
|
def dump(
|
|
self,
|
|
config_path: str,
|
|
out: str,
|
|
network: NetworkType = NetworkType.PRIVATE,
|
|
count: int = 0,
|
|
start: int = 0,
|
|
) -> CommandResult:
|
|
"""Dump blocks (starting with block #1) to the file.
|
|
|
|
Args:
|
|
config_path: Path to config.
|
|
network: Select network type (default: private).
|
|
count: Number of blocks to be processed (default or 0: all chain) (default: 0).
|
|
start: Block number to start from (default: 0) (default: 0).
|
|
out: Output file (stdout if not given).
|
|
|
|
Returns:
|
|
Command's result.
|
|
"""
|
|
return self._execute(
|
|
"db dump",
|
|
**{network.value: True},
|
|
**{
|
|
param: param_value
|
|
for param, param_value in locals().items()
|
|
if param not in ["self"]
|
|
},
|
|
)
|
|
|
|
def restore(
|
|
self,
|
|
config_path: str,
|
|
input_file: str,
|
|
network: NetworkType = NetworkType.PRIVATE,
|
|
count: int = 0,
|
|
dump: Optional[str] = None,
|
|
incremental: bool = False,
|
|
) -> CommandResult:
|
|
"""Dump blocks (starting with block #1) to the file.
|
|
|
|
Args:
|
|
config_path: Path to config.
|
|
network: Select network type (default: private).
|
|
count: Number of blocks to be processed (default or 0: all chain) (default: 0).
|
|
input_file: Input file (stdin if not given).
|
|
dump: Directory for storing JSON dumps.
|
|
incremental: Use if dump is incremental.
|
|
|
|
Returns:
|
|
Command's result.
|
|
"""
|
|
return self._execute(
|
|
"db restore",
|
|
**{network.value: True},
|
|
**{
|
|
param: param_value
|
|
for param, param_value in locals().items()
|
|
if param not in ["self"]
|
|
},
|
|
)
|