Skip to content

Commit e311151

Browse files
authored
Merge pull request #454 from weaviate/feat/overwrite_alias
feat: add `overwriteAlias` to backup restore
2 parents 113ee6a + f6505a0 commit e311151

File tree

9 files changed

+706
-519
lines changed

9 files changed

+706
-519
lines changed

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/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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
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
9-
public static final String EXPECTED_WEAVIATE_VERSION = "1.32.0";
9+
public static final String EXPECTED_WEAVIATE_VERSION = "1.33.0-rc.0";
1010
// to be set according to weaviate docker image
11-
public static final String EXPECTED_WEAVIATE_GIT_HASH = "7cebee0";
11+
public static final String EXPECTED_WEAVIATE_GIT_HASH = "15c08c7";
1212

1313
private WeaviateVersion() {
1414
}

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)