feat: complete transfer and eviction execution
This commit is contained in:
@@ -22,6 +22,51 @@ from archive_control.v1 import (
|
||||
|
||||
|
||||
class DaemonTransportTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_eviction_assignment_and_steps_are_admitted(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory)
|
||||
token = root / "token"
|
||||
token.write_text("shared-secret", encoding="utf-8")
|
||||
os.chmod(token, 0o600)
|
||||
service = ServiceConfig(
|
||||
"http://local", PurePosixPath("/api"), root
|
||||
)
|
||||
config = ClientConfig(
|
||||
"cache-1", "Cache 1", "cache", "ws://control", token,
|
||||
root / "state.db", root / "backups", service, service,
|
||||
)
|
||||
probe = FilesystemProbe(root, True, True, True, True, True)
|
||||
daemon = ArchiveClientDaemon(config, [probe, probe], [])
|
||||
daemon.jobs = Mock()
|
||||
|
||||
assign = control_pb2.Command(command_id=str(uuid4()))
|
||||
definition = assign.assign_job.job
|
||||
definition.job_id = str(uuid4())
|
||||
definition.eviction.cache_client_id = "cache-1"
|
||||
acknowledgement = daemon._initial_acknowledgement(
|
||||
assign, set(), False
|
||||
)
|
||||
self.assertEqual(
|
||||
acknowledgement.status,
|
||||
control_pb2.COMMAND_ACK_STATUS_ACCEPTED,
|
||||
)
|
||||
|
||||
for step_kind in (
|
||||
job_pb2.JOB_STEP_KIND_VERIFY_ARCHIVE_COVERAGE,
|
||||
job_pb2.JOB_STEP_KIND_QB_REMOVE_ENTRY,
|
||||
job_pb2.JOB_STEP_KIND_SAFE_FILE_UNLINK,
|
||||
):
|
||||
execute = control_pb2.Command(command_id=str(uuid4()))
|
||||
execute.execute_step.job_id = definition.job_id
|
||||
execute.execute_step.step = step_kind
|
||||
acknowledgement = daemon._initial_acknowledgement(
|
||||
execute, set(), False
|
||||
)
|
||||
self.assertEqual(
|
||||
acknowledgement.status,
|
||||
control_pb2.COMMAND_ACK_STATUS_ACCEPTED,
|
||||
)
|
||||
|
||||
async def test_ensure_route_is_durable_and_duplicate_replays_updates(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory)
|
||||
|
||||
Reference in New Issue
Block a user