get rid of legacy commands

This commit is contained in:
Simone Scarduzio
2025-10-03 19:12:50 +02:00
parent 03106b76a8
commit b760890a61
7 changed files with 27 additions and 317 deletions
+1 -125
View File
@@ -16,7 +16,7 @@ from ...adapters import (
UtcClockAdapter,
XdeltaAdapter,
)
from ...core import DeltaService, DeltaSpace, ObjectKey
from ...core import DeltaService, ObjectKey
from ...ports import MetricsPort
from .aws_compat import (
copy_s3_to_s3,
@@ -556,130 +556,6 @@ def sync(
sys.exit(1)
@cli.command()
@click.argument("file", type=click.Path(exists=True, path_type=Path))
@click.argument("s3_url")
@click.option("--max-ratio", type=float, help="Max delta/file ratio (default: 0.5)")
@click.pass_obj
def put(service: DeltaService, file: Path, s3_url: str, max_ratio: float | None) -> None:
"""Upload file as reference or delta (legacy command, use 'cp' instead)."""
# Parse S3 URL
if not s3_url.startswith("s3://"):
click.echo(f"Error: Invalid S3 URL: {s3_url}", err=True)
sys.exit(1)
# Extract bucket and prefix
s3_path = s3_url[5:].rstrip("/")
parts = s3_path.split("/", 1)
bucket = parts[0]
prefix = parts[1] if len(parts) > 1 else ""
delta_space = DeltaSpace(bucket=bucket, prefix=prefix)
try:
summary = service.put(file, delta_space, max_ratio)
# Output JSON summary
output = {
"operation": summary.operation,
"bucket": summary.bucket,
"key": summary.key,
"original_name": summary.original_name,
"file_size": summary.file_size,
"file_sha256": summary.file_sha256,
}
if summary.delta_size is not None:
output["delta_size"] = summary.delta_size
output["delta_ratio"] = round(summary.delta_ratio or 0, 3)
if summary.ref_key:
output["ref_key"] = summary.ref_key
output["ref_sha256"] = summary.ref_sha256
output["cache_hit"] = summary.cache_hit
click.echo(json.dumps(output, indent=2))
except Exception as e:
click.echo(f"Error: {e}", err=True)
sys.exit(1)
@cli.command()
@click.argument("s3_url")
@click.option("-o", "--output", type=click.Path(path_type=Path), help="Output file path")
@click.pass_obj
def get(service: DeltaService, s3_url: str, output: Path | None) -> None:
"""Download and hydrate delta file.
The S3 URL can be either:
- Full path to delta file: s3://bucket/path/to/file.zip.delta
- Path to original file (will append .delta): s3://bucket/path/to/file.zip
"""
# Parse S3 URL
if not s3_url.startswith("s3://"):
click.echo(f"Error: Invalid S3 URL: {s3_url}", err=True)
sys.exit(1)
s3_path = s3_url[5:]
parts = s3_path.split("/", 1)
if len(parts) != 2:
click.echo(f"Error: Invalid S3 URL: {s3_url}", err=True)
sys.exit(1)
bucket = parts[0]
key = parts[1]
# Try to determine if this is a direct file or needs .delta appended
# First try the key as-is
obj_key = ObjectKey(bucket=bucket, key=key)
# Check if the file exists using the service's storage port
# which already has proper credentials configured
try:
# Try to head the object as-is
obj_head = service.storage.head(f"{bucket}/{key}")
if obj_head is not None:
click.echo(f"Found file: s3://{bucket}/{key}")
else:
# If not found and doesn't end with .delta, try adding .delta
if not key.endswith(".delta"):
delta_key = f"{key}.delta"
delta_head = service.storage.head(f"{bucket}/{delta_key}")
if delta_head is not None:
key = delta_key
obj_key = ObjectKey(bucket=bucket, key=key)
click.echo(f"Found delta file: s3://{bucket}/{key}")
else:
click.echo(
f"Error: File not found: s3://{bucket}/{key} (also tried .delta)", err=True
)
sys.exit(1)
else:
click.echo(f"Error: File not found: s3://{bucket}/{key}", err=True)
sys.exit(1)
except Exception:
# For unexpected errors, just proceed with the original key
click.echo(f"Warning: Could not check file existence, proceeding with: s3://{bucket}/{key}")
# Determine output path
if output is None:
# Extract original name from delta name
if key.endswith(".delta"):
output = Path(Path(key).stem)
else:
output = Path(Path(key).name)
try:
service.get(obj_key, output)
click.echo(f"Successfully retrieved: {output}")
except Exception as e:
click.echo(f"Error: {e}", err=True)
sys.exit(1)
@cli.command()
@click.argument("s3_url")
@click.pass_obj