Skip to content

Commit 9ee63d2

Browse files
committed
feat(sync): add overwriteAlias
1 parent 606c518 commit 9ee63d2

4 files changed

Lines changed: 70 additions & 1 deletion

File tree

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class BackupRestorer extends BaseClient<BackupRestoreResponse> implements
2424
private String[] excludeClassNames;
2525
private String backend;
2626
private String backupId;
27+
private Boolean overwriteAlias;
2728
private BackupRestoreConfig config;
2829
private boolean waitForCompletion;
2930

@@ -47,6 +48,11 @@ public BackupRestorer withBackend(String backend) {
4748
return this;
4849
}
4950

51+
public BackupRestorer withOverwriteAlias(Boolean overwriteAlias) {
52+
this.overwriteAlias = overwriteAlias;
53+
return this;
54+
}
55+
5056
public BackupRestorer withConfig(BackupRestoreConfig config) {
5157
this.config = config;
5258
return this;
@@ -72,6 +78,7 @@ public Result<BackupRestoreResponse> run() {
7278
BackupRestore payload = BackupRestore.builder()
7379
.include(includeClassNames)
7480
.exclude(excludeClassNames)
81+
.overwriteAlias(overwriteAlias)
7582
.config(config)
7683
.build();
7784

@@ -146,6 +153,8 @@ private static class BackupRestore {
146153
String[] include;
147154
@SerializedName("exclude")
148155
String[] exclude;
156+
@SerializedName("overwriteAlias")
157+
Boolean overwriteAlias;
149158
}
150159

151160
@Getter

src/test/java/io/weaviate/integration/client/WeaviateVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public class WeaviateVersion {
44

55
// docker image version
6-
public static final String WEAVIATE_IMAGE = "1.32.0";
6+
public static final String WEAVIATE_IMAGE = "1.33.0-rc.0";
77

88
// to be set according to weaviate docker image
99
public static final String EXPECTED_WEAVIATE_VERSION = "1.32.0";

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.ArrayList;
44
import java.util.List;
55
import java.util.Random;
6+
import java.util.concurrent.Callable;
67
import java.util.function.Function;
78
import java.util.function.Supplier;
89

@@ -19,6 +20,7 @@
1920
import io.weaviate.client.WeaviateAuthClient;
2021
import io.weaviate.client.WeaviateClient;
2122
import io.weaviate.client.base.Result;
23+
import io.weaviate.client.v1.aliases.model.Alias;
2224
import io.weaviate.client.v1.auth.exception.AuthException;
2325
import io.weaviate.client.v1.backup.api.BackupCreator;
2426
import io.weaviate.client.v1.backup.api.BackupRestorer;
@@ -514,6 +516,53 @@ public void shouldRestoreWithRbacOptions() {
514516
() -> client.roles().getter().withName(roleName).run());
515517
}
516518

519+
@Test
520+
public void testOverwriteAlias_true() throws Exception {
521+
String originalClass = "CollectionOverwriteAlias";
522+
String alias = originalClass + "Alias";
523+
String differentClass = "Different" + originalClass;
524+
525+
Runnable arrange = () -> {
526+
Result<?> res;
527+
528+
res = client.schema().classCreator()
529+
.withClass(WeaviateClass.builder().className(originalClass).build())
530+
.run();
531+
Assertions.assertThat(res.getError()).isNull();
532+
res = client.alias().creator().withClassName(originalClass).withAlias(alias).run();
533+
Assertions.assertThat(res.getError()).isNull();
534+
535+
res = client.backup().creator()
536+
.withBackupId(backupId)
537+
.withBackend(BackupTestSuite.BACKEND)
538+
.withIncludeClassNames(originalClass)
539+
.withWaitForCompletion(true)
540+
.run();
541+
Assertions.assertThat(res.getError()).isNull();
542+
543+
res = client.schema().classDeleter().withClassName(originalClass).run();
544+
Assertions.assertThat(res.getError()).isNull();
545+
res = client.schema().classCreator()
546+
.withClass(WeaviateClass.builder().className(differentClass).build())
547+
.run();
548+
Assertions.assertThat(res.getError()).isNull();
549+
res = client.alias().updater().withAlias(alias).withNewClassName(differentClass).run();
550+
Assertions.assertThat(res.getError()).isNull();
551+
};
552+
553+
Callable<Result<?>> act = () -> client.backup().restorer()
554+
.withBackupId(backupId)
555+
.withBackend(BackupTestSuite.BACKEND)
556+
.withIncludeClassNames(originalClass)
557+
.withWaitForCompletion(true)
558+
.withOverwriteAlias(true)
559+
.run();
560+
561+
Supplier<Alias> getAlias = () -> client.alias().getter().withAlias(alias).run().getResult();
562+
563+
BackupTestSuite.testOverwriteAlias_true(arrange, act, getAlias, originalClass);
564+
}
565+
517566
@NotNull
518567
private Function<String, Result<GraphQLResponse>> createSupplierGQLOfClass() {
519568
return (String className) -> client.graphQL().get()

src/test/java/io/weaviate/integration/tests/backup/BackupTestSuite.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.weaviate.client.base.Result;
2020
import io.weaviate.client.base.WeaviateError;
2121
import io.weaviate.client.base.WeaviateErrorMessage;
22+
import io.weaviate.client.v1.aliases.model.Alias;
2223
import io.weaviate.client.v1.backup.model.Backend;
2324
import io.weaviate.client.v1.backup.model.BackupCreateResponse;
2425
import io.weaviate.client.v1.backup.model.BackupCreateStatusResponse;
@@ -639,6 +640,16 @@ public static void testBackupRestoreWithRbacOptions(String backupId,
639640

640641
}
641642

643+
public static void testOverwriteAlias_true(
644+
Runnable arrange,
645+
Callable<Result<?>> act,
646+
Supplier<Alias> supplierAlias, String wantClassName) throws Exception {
647+
arrange.run();
648+
Result<?> result = act.call();
649+
assertThat(result.getError()).isNull();
650+
assertThat(supplierAlias.get().getClassName()).isEqualTo(wantClassName);
651+
}
652+
642653
private static void assertThatAllPizzasExist(Function<String, Result<GraphQLResponse>> supplierGQLOfClass) {
643654
assertThatAllFoodObjectsExist(supplierGQLOfClass, "Pizza", "Quattro Formaggi", "Frutti di Mare", "Hawaii",
644655
"Doener");

0 commit comments

Comments
 (0)