85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
from __future__ import annotations
|
|
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
if __package__ is None or __package__ == "":
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[4]))
|
|
|
|
from agents.sandbox.entries import (
|
|
AzureBlobMount,
|
|
DockerVolumeMountStrategy,
|
|
FuseMountPattern,
|
|
InContainerMountStrategy,
|
|
RcloneMountPattern,
|
|
)
|
|
from examples.sandbox.docker.mounts.mount_smoke import (
|
|
MountSmokeCase,
|
|
require_env,
|
|
run_mount_smoke_test,
|
|
)
|
|
|
|
|
|
def _mount_cases() -> list[MountSmokeCase]:
|
|
account = require_env("AZURE_STORAGE_ACCOUNT")
|
|
container = require_env("AZURE_STORAGE_CONTAINER")
|
|
endpoint = os.getenv("AZURE_STORAGE_ENDPOINT")
|
|
identity_client_id = os.getenv("AZURE_CLIENT_ID")
|
|
account_key = os.getenv("AZURE_STORAGE_ACCOUNT_KEY")
|
|
|
|
return [
|
|
MountSmokeCase(
|
|
name="docker_volume/rclone",
|
|
mount_dir="azure-docker-volume-rclone",
|
|
mount=AzureBlobMount(
|
|
account=account,
|
|
container=container,
|
|
endpoint=endpoint,
|
|
identity_client_id=identity_client_id,
|
|
account_key=account_key,
|
|
mount_strategy=DockerVolumeMountStrategy(driver="rclone"),
|
|
read_only=False,
|
|
),
|
|
),
|
|
MountSmokeCase(
|
|
name="in_container/rclone",
|
|
mount_dir="azure-in-container-rclone",
|
|
mount=AzureBlobMount(
|
|
account=account,
|
|
container=container,
|
|
endpoint=endpoint,
|
|
identity_client_id=identity_client_id,
|
|
account_key=account_key,
|
|
mount_strategy=InContainerMountStrategy(pattern=RcloneMountPattern()),
|
|
read_only=False,
|
|
),
|
|
),
|
|
MountSmokeCase(
|
|
name="in_container/fuse",
|
|
mount_dir="azure-in-container-fuse",
|
|
mount=AzureBlobMount(
|
|
account=account,
|
|
container=container,
|
|
endpoint=endpoint,
|
|
identity_client_id=identity_client_id,
|
|
account_key=account_key,
|
|
mount_strategy=InContainerMountStrategy(pattern=FuseMountPattern()),
|
|
read_only=False,
|
|
),
|
|
),
|
|
]
|
|
|
|
|
|
async def main() -> None:
|
|
await run_mount_smoke_test(
|
|
provider="azure",
|
|
agent_name="Azure Blob Mount Smoke Test",
|
|
mount_cases=_mount_cases(),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|