Skip to content

Commit 1dcd8f0

Browse files
committed
Adapt to latest UX changes.
The bucket argument was removed from the weaviate-python-client, so the code had to be adapted. The path is also passed as a config in the get collection-export.
1 parent f31907d commit 1dcd8f0

6 files changed

Lines changed: 41 additions & 48 deletions

File tree

test/unittests/test_managers/test_export_manager.py

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -157,29 +157,27 @@ def test_create_export_passes_none_collections_when_not_specified(
157157
assert call_kwargs["exclude_collections"] is None
158158

159159

160-
def test_create_export_passes_config_with_bucket_and_path(
160+
def test_create_export_passes_config_with_path(
161161
export_manager: ExportManager, mock_client_with_export: MagicMock
162162
) -> None:
163-
"""create_export passes ExportConfig when bucket/path are set."""
163+
"""create_export passes ExportConfig when path is set."""
164164
export_manager.create_export(
165165
export_id="my-export",
166166
backend="s3",
167167
file_format="parquet",
168-
bucket="my-bucket",
169168
path="/my/path",
170169
)
171170

172171
call_kwargs = mock_client_with_export.export.create.call_args.kwargs
173172
config = call_kwargs["config"]
174173
assert config is not None
175-
assert config.bucket == "my-bucket"
176174
assert config.path == "/my/path"
177175

178176

179-
def test_create_export_no_config_when_bucket_and_path_none(
177+
def test_create_export_no_config_when_path_none(
180178
export_manager: ExportManager, mock_client_with_export: MagicMock
181179
) -> None:
182-
"""create_export passes config=None when bucket and path are not set."""
180+
"""create_export passes config=None when path is not set."""
183181
export_manager.create_export(
184182
export_id="my-export",
185183
backend="filesystem",
@@ -242,19 +240,31 @@ def test_get_export_status_json_output(export_manager: ExportManager, capsys) ->
242240
def test_get_export_status_passes_correct_args(
243241
export_manager: ExportManager, mock_client_with_export: MagicMock
244242
) -> None:
245-
"""get_export_status passes correct args to client."""
243+
"""get_export_status passes correct args to client, wrapping path in ExportConfig."""
246244
export_manager.get_export_status(
247245
export_id="my-export",
248246
backend="s3",
249-
bucket="my-bucket",
250247
path="/my/path",
251248
)
252249

253250
mock_client_with_export.export.get_status.assert_called_once()
254251
call_kwargs = mock_client_with_export.export.get_status.call_args.kwargs
255252
assert call_kwargs["export_id"] == "my-export"
256-
assert call_kwargs["bucket"] == "my-bucket"
257-
assert call_kwargs["path"] == "/my/path"
253+
assert call_kwargs["config"] is not None
254+
assert call_kwargs["config"].path == "/my/path"
255+
256+
257+
def test_get_export_status_no_config_when_path_none(
258+
export_manager: ExportManager, mock_client_with_export: MagicMock
259+
) -> None:
260+
"""get_export_status passes config=None when path is not set."""
261+
export_manager.get_export_status(
262+
export_id="my-export",
263+
backend="filesystem",
264+
)
265+
266+
call_kwargs = mock_client_with_export.export.get_status.call_args.kwargs
267+
assert call_kwargs["config"] is None
258268

259269

260270
def test_get_export_status_with_shard_status_json(
@@ -342,19 +352,31 @@ def test_cancel_export_success_json_output(
342352
def test_cancel_export_passes_correct_args(
343353
export_manager: ExportManager, mock_client_with_export: MagicMock
344354
) -> None:
345-
"""cancel_export passes correct args to client."""
355+
"""cancel_export passes correct args to client, wrapping path in ExportConfig."""
346356
export_manager.cancel_export(
347357
export_id="my-export",
348358
backend="gcs",
349-
bucket="my-bucket",
350359
path="/my/path",
351360
)
352361

353362
mock_client_with_export.export.cancel.assert_called_once()
354363
call_kwargs = mock_client_with_export.export.cancel.call_args.kwargs
355364
assert call_kwargs["export_id"] == "my-export"
356-
assert call_kwargs["bucket"] == "my-bucket"
357-
assert call_kwargs["path"] == "/my/path"
365+
assert call_kwargs["config"] is not None
366+
assert call_kwargs["config"].path == "/my/path"
367+
368+
369+
def test_cancel_export_no_config_when_path_none(
370+
export_manager: ExportManager, mock_client_with_export: MagicMock
371+
) -> None:
372+
"""cancel_export passes config=None when path is not set."""
373+
export_manager.cancel_export(
374+
export_id="my-export",
375+
backend="filesystem",
376+
)
377+
378+
call_kwargs = mock_client_with_export.export.cancel.call_args.kwargs
379+
assert call_kwargs["config"] is None
358380

359381

360382
# ---------------------------------------------------------------------------

weaviate_cli/commands/cancel.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,6 @@ def cancel_replication_cli(ctx: click.Context, op_id: str, json_output: bool) ->
101101
type=click.Choice(["filesystem", "s3", "gcs", "azure"]),
102102
help=f"The backend used for storing the export (default: {CancelExportCollectionDefaults.backend}).",
103103
)
104-
@click.option(
105-
"--bucket",
106-
default=CancelExportCollectionDefaults.bucket,
107-
help="Bucket name for cloud storage backends.",
108-
)
109104
@click.option(
110105
"--path",
111106
default=CancelExportCollectionDefaults.path,
@@ -119,7 +114,6 @@ def cancel_export_collection_cli(
119114
ctx: click.Context,
120115
export_id: str,
121116
backend: str,
122-
bucket: Optional[str],
123117
path: Optional[str],
124118
json_output: bool,
125119
) -> None:
@@ -131,7 +125,6 @@ def cancel_export_collection_cli(
131125
export_manager.cancel_export(
132126
export_id=export_id,
133127
backend=backend,
134-
bucket=bucket,
135128
path=path,
136129
json_output=json_output,
137130
)

weaviate_cli/commands/create.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -922,11 +922,6 @@ def create_replication_cli(
922922
is_flag=True,
923923
help="Wait for the export to complete before returning.",
924924
)
925-
@click.option(
926-
"--bucket",
927-
default=CreateExportCollectionDefaults.bucket,
928-
help="Bucket name for cloud storage backends.",
929-
)
930925
@click.option(
931926
"--path",
932927
default=CreateExportCollectionDefaults.path,
@@ -944,7 +939,6 @@ def create_export_collection_cli(
944939
include: Optional[str],
945940
exclude: Optional[str],
946941
wait: bool,
947-
bucket: Optional[str],
948942
path: Optional[str],
949943
json_output: bool,
950944
) -> None:
@@ -960,7 +954,6 @@ def create_export_collection_cli(
960954
include=include,
961955
exclude=exclude,
962956
wait=wait,
963-
bucket=bucket,
964957
path=path,
965958
json_output=json_output,
966959
)

weaviate_cli/commands/get.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -581,11 +581,6 @@ def get_replications_cli(ctx: click.Context, json_output: bool) -> None:
581581
type=click.Choice(["filesystem", "s3", "gcs", "azure"]),
582582
help=f"The backend used for storing the export (default: {GetExportCollectionDefaults.backend}).",
583583
)
584-
@click.option(
585-
"--bucket",
586-
default=GetExportCollectionDefaults.bucket,
587-
help="Bucket name for cloud storage backends.",
588-
)
589584
@click.option(
590585
"--path",
591586
default=GetExportCollectionDefaults.path,
@@ -599,7 +594,6 @@ def get_export_collection_cli(
599594
ctx: click.Context,
600595
export_id: str,
601596
backend: str,
602-
bucket: Optional[str],
603597
path: Optional[str],
604598
json_output: bool,
605599
) -> None:
@@ -611,7 +605,6 @@ def get_export_collection_cli(
611605
export_manager.get_export_status(
612606
export_id=export_id,
613607
backend=backend,
614-
bucket=bucket,
615608
path=path,
616609
json_output=json_output,
617610
)

weaviate_cli/defaults.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,21 +321,18 @@ class CreateExportCollectionDefaults:
321321
include: Optional[str] = None
322322
exclude: Optional[str] = None
323323
wait: bool = False
324-
bucket: Optional[str] = None
325324
path: Optional[str] = None
326325

327326

328327
@dataclass
329328
class GetExportCollectionDefaults:
330329
export_id: str = "test-export"
331330
backend: str = "filesystem"
332-
bucket: Optional[str] = None
333331
path: Optional[str] = None
334332

335333

336334
@dataclass
337335
class CancelExportCollectionDefaults:
338336
export_id: str = "test-export"
339337
backend: str = "filesystem"
340-
bucket: Optional[str] = None
341338
path: Optional[str] = None

weaviate_cli/managers/export_manager.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ def create_export(
3939
include: Optional[str] = CreateExportCollectionDefaults.include,
4040
exclude: Optional[str] = CreateExportCollectionDefaults.exclude,
4141
wait: bool = CreateExportCollectionDefaults.wait,
42-
bucket: Optional[str] = CreateExportCollectionDefaults.bucket,
4342
path: Optional[str] = CreateExportCollectionDefaults.path,
4443
json_output: bool = False,
4544
) -> None:
@@ -51,9 +50,7 @@ def create_export(
5150
backend_enum = BACKEND_MAP[backend]
5251
file_format_enum = FILE_FORMAT_MAP[file_format]
5352

54-
config = None
55-
if bucket or path:
56-
config = ExportConfig(bucket=bucket, path=path)
53+
config = ExportConfig(path=path) if path else None
5754

5855
include_collections = (
5956
[c.strip() for c in include.split(",") if c.strip()] if include else None
@@ -95,17 +92,16 @@ def get_export_status(
9592
self,
9693
export_id: str = GetExportCollectionDefaults.export_id,
9794
backend: str = GetExportCollectionDefaults.backend,
98-
bucket: Optional[str] = GetExportCollectionDefaults.bucket,
9995
path: Optional[str] = GetExportCollectionDefaults.path,
10096
json_output: bool = False,
10197
) -> None:
10298
backend_enum = BACKEND_MAP[backend]
10399

100+
config = ExportConfig(path=path) if path else None
104101
result = self.client.export.get_status(
105102
export_id=export_id,
106103
backend=backend_enum,
107-
bucket=bucket,
108-
path=path,
104+
config=config,
109105
)
110106

111107
self._print_export_status(result, json_output=json_output)
@@ -114,17 +110,16 @@ def cancel_export(
114110
self,
115111
export_id: str = CancelExportCollectionDefaults.export_id,
116112
backend: str = CancelExportCollectionDefaults.backend,
117-
bucket: Optional[str] = CancelExportCollectionDefaults.bucket,
118113
path: Optional[str] = CancelExportCollectionDefaults.path,
119114
json_output: bool = False,
120115
) -> None:
121116
backend_enum = BACKEND_MAP[backend]
122117

118+
config = ExportConfig(path=path) if path else None
123119
success = self.client.export.cancel(
124120
export_id=export_id,
125121
backend=backend_enum,
126-
bucket=bucket,
127-
path=path,
122+
config=config,
128123
)
129124

130125
if success:

0 commit comments

Comments
 (0)