Skip to content

Commit 4e67df0

Browse files
committed
feat(async): add overwriteAlias
1 parent 9ee63d2 commit 4e67df0

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

src/main/java/io/weaviate/client/v1/async/backup/api/BackupRestorer.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class BackupRestorer extends AsyncBaseClient<BackupRestoreResponse>
4040
private String[] excludeClassNames;
4141
private String backend;
4242
private String backupId;
43+
private Boolean overwriteAlias;
4344
private BackupRestoreConfig config;
4445
private boolean waitForCompletion;
4546
private final Executor executor;
@@ -81,6 +82,11 @@ public BackupRestorer withWaitForCompletion(boolean waitForCompletion) {
8182
return this;
8283
}
8384

85+
public BackupRestorer withOverwriteAlias(boolean overwriteAlias) {
86+
this.overwriteAlias = overwriteAlias;
87+
return this;
88+
}
89+
8490
@Override
8591
public Future<Result<BackupRestoreResponse>> run(FutureCallback<Result<BackupRestoreResponse>> callback) {
8692
if (waitForCompletion) {
@@ -94,6 +100,7 @@ private Future<Result<BackupRestoreResponse>> restore(FutureCallback<Result<Back
94100
.config(BackupRestoreConfig.builder().build())
95101
.include(includeClassNames)
96102
.exclude(excludeClassNames)
103+
.overwriteAlias(overwriteAlias)
97104
.config(config)
98105
.build();
99106
String path = String.format("/backups/%s/%s/restore", UrlEncoder.encodePathParam(backend),
@@ -236,6 +243,8 @@ private static class BackupRestore {
236243
String[] include;
237244
@SerializedName("exclude")
238245
String[] exclude;
246+
@SerializedName("overwriteAlias")
247+
Boolean overwriteAlias;
239248
}
240249

241250
@Getter

src/test/java/io/weaviate/integration/client/async/backup/ClientBackupTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.weaviate.client.WeaviateAuthClient;
2323
import io.weaviate.client.WeaviateClient;
2424
import io.weaviate.client.base.Result;
25+
import io.weaviate.client.v1.aliases.model.Alias;
2526
import io.weaviate.client.v1.async.WeaviateAsyncClient;
2627
import io.weaviate.client.v1.async.backup.api.BackupCanceler;
2728
import io.weaviate.client.v1.async.backup.api.BackupCreateStatusGetter;
@@ -549,6 +550,57 @@ public void shouldRestoreWithRbacOptions() {
549550
}
550551
}
551552

553+
@Test
554+
public void testOverwriteAlias_true() throws InterruptedException, ExecutionException, Exception {
555+
String originalClass = "CollectionOverwriteAlias";
556+
String alias = originalClass + "Alias";
557+
String differentClass = "Different" + originalClass;
558+
559+
try (final WeaviateAsyncClient async = client.async()) {
560+
Runnable arrange = runnable(() -> {
561+
Result<?> res;
562+
563+
res = async.schema().classCreator()
564+
.withClass(WeaviateClass.builder().className(originalClass).build())
565+
.run().get();
566+
Assertions.assertThat(res.getError()).isNull();
567+
res = async.alias().creator().withClassName(originalClass).withAlias(alias).run().get();
568+
Assertions.assertThat(res.getError()).isNull();
569+
570+
res = async.backup().creator()
571+
.withBackupId(backupId)
572+
.withBackend(BackupTestSuite.BACKEND)
573+
.withIncludeClassNames(originalClass)
574+
.withWaitForCompletion(true)
575+
.run().get();
576+
Assertions.assertThat(res.getError()).isNull();
577+
578+
res = async.schema().classDeleter().withClassName(originalClass).run().get();
579+
Assertions.assertThat(res.getError()).isNull();
580+
res = async.schema().classCreator()
581+
.withClass(WeaviateClass.builder().className(differentClass).build())
582+
.run().get();
583+
Assertions.assertThat(res.getError()).isNull();
584+
res = async.alias().updater().withAlias(alias).withNewClassName(differentClass).run().get();
585+
Assertions.assertThat(res.getError()).isNull();
586+
587+
return null; // satisfy Callable
588+
});
589+
590+
Callable<Result<?>> act = () -> async.backup().restorer()
591+
.withBackupId(backupId)
592+
.withBackend(BackupTestSuite.BACKEND)
593+
.withIncludeClassNames(originalClass)
594+
.withWaitForCompletion(true)
595+
.withOverwriteAlias(true)
596+
.run().get();
597+
598+
Supplier<Alias> getAlias = supplier(() -> async.alias().getter().withAlias(alias).run().get().getResult());
599+
600+
BackupTestSuite.testOverwriteAlias_true(arrange, act, getAlias, originalClass);
601+
}
602+
}
603+
552604
@FunctionalInterface
553605
interface ThrowingSupplier<T> {
554606
T get() throws Exception;

0 commit comments

Comments
 (0)