Skip to content

Commit 117fc05

Browse files
authored
OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation (#2160)
* OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - refactor AzurePersistenceManager * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - fix unit tests * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - fix unit tests * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - remove AZURE_STORAGE_ACCOUNT_NAME * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - remove AZURE_STORAGE_ACCOUNT_NAME * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - PR review change * OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation - PR review change
1 parent 709fab2 commit 117fc05

File tree

19 files changed

+426
-295
lines changed

19 files changed

+426
-295
lines changed

oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.apache.commons.io.FileUtils;
3131
import org.apache.jackrabbit.oak.commons.pio.Closer;
3232
import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
33-
import org.apache.jackrabbit.oak.segment.azure.v8.AzureStorageCredentialManagerV8;
3433
import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils;
3534
import org.apache.jackrabbit.oak.segment.file.FileStore;
3635
import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
@@ -53,12 +52,10 @@ static NodeStore configureSegment(Options options, BlobStore blobStore, Whiteboa
5352

5453
FileStoreBuilder builder;
5554
if (segmentStoreType == ToolUtils.SegmentStoreType.AZURE) {
56-
final AzureStorageCredentialManagerV8 azureStorageCredentialManagerV8 = new AzureStorageCredentialManagerV8();
5755
SegmentNodeStorePersistence segmentNodeStorePersistence =
58-
ToolUtils.newSegmentNodeStorePersistence(segmentStoreType, pathOrUri, azureStorageCredentialManagerV8);
56+
ToolUtils.newSegmentNodeStorePersistence(segmentStoreType, pathOrUri);
5957
File tempDir = Files.createTempDirectory("azure-segment-store").toFile();
6058
closer.register(() -> FileUtils.deleteQuietly(tempDir));
61-
closer.register(azureStorageCredentialManagerV8);
6259
builder = fileStoreBuilder(tempDir).withCustomPersistence(segmentNodeStorePersistence);
6360
} else {
6461
builder = fileStoreBuilder(new File(pathOrUri)).withMaxFileSize(256);

oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/AzureSegmentStoreExplorerBackend.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
package org.apache.jackrabbit.oak.explorer;
2020

21-
import org.apache.jackrabbit.oak.segment.azure.v8.AzureStorageCredentialManagerV8;
2221
import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils;
2322
import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
2423
import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFile;
@@ -39,16 +38,14 @@
3938
public class AzureSegmentStoreExplorerBackend extends AbstractSegmentTarExplorerBackend {
4039
private final String path;
4140
private SegmentNodeStorePersistence persistence;
42-
private final AzureStorageCredentialManagerV8 azureStorageCredentialManagerV8;
4341

4442
public AzureSegmentStoreExplorerBackend(String path) {
4543
this.path = path;
46-
this.azureStorageCredentialManagerV8 = new AzureStorageCredentialManagerV8();
4744
}
4845

4946
@Override
5047
public void open() throws IOException {
51-
this.persistence = newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, path, azureStorageCredentialManagerV8);
48+
this.persistence = newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, path);
5249

5350
try {
5451
this.store = fileStoreBuilder(Files.createTempDirectory(getClass().getSimpleName() + "-").toFile())
@@ -63,7 +60,6 @@ public void open() throws IOException {
6360
@Override
6461
public void close() {
6562
super.close();
66-
azureStorageCredentialManagerV8.close();
6763
}
6864

6965
@Override

oak-run/src/main/java/org/apache/jackrabbit/oak/run/FileStoreDiffCommand.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import joptsimple.OptionSet;
2828
import joptsimple.OptionSpec;
2929
import org.apache.jackrabbit.oak.run.commons.Command;
30-
import org.apache.jackrabbit.oak.segment.azure.v8.AzureStorageCredentialManagerV8;
3130
import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils;
3231
import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore;
3332
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
@@ -86,22 +85,20 @@ public void execute(String... args) throws Exception {
8685
}
8786
} else {
8887
if (pathOrURI.startsWith("az:")) {
89-
try (AzureStorageCredentialManagerV8 azureStorageCredentialManagerV8 = new AzureStorageCredentialManagerV8()) {
90-
SegmentNodeStorePersistence azurePersistence = ToolUtils.newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, pathOrURI, azureStorageCredentialManagerV8);
91-
ReadOnlyFileStore store = fileStoreBuilder(Files.createTempDirectory(getClass().getSimpleName() + "-").toFile())
92-
.withCustomPersistence(azurePersistence).withBlobStore(newBasicReadOnlyBlobStore()).buildReadOnly();
93-
statusCode = Diff.builder()
94-
.withPath(pathOrURI)
95-
.withReadOnlyFileStore(store)
96-
.withOutput(out)
97-
.withInterval(interval)
98-
.withIncremental(incremental)
99-
.withFilter(path)
100-
.withIgnoreMissingSegments(ignoreSNFEs)
101-
.withRevisionsProcessor(ToolUtils::readRevisions)
102-
.build()
103-
.run();
104-
}
88+
SegmentNodeStorePersistence azurePersistence = ToolUtils.newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, pathOrURI);
89+
ReadOnlyFileStore store = fileStoreBuilder(Files.createTempDirectory(getClass().getSimpleName() + "-").toFile())
90+
.withCustomPersistence(azurePersistence).withBlobStore(newBasicReadOnlyBlobStore()).buildReadOnly();
91+
statusCode = Diff.builder()
92+
.withPath(pathOrURI)
93+
.withReadOnlyFileStore(store)
94+
.withOutput(out)
95+
.withInterval(interval)
96+
.withIncremental(incremental)
97+
.withFilter(path)
98+
.withIgnoreMissingSegments(ignoreSNFEs)
99+
.withRevisionsProcessor(ToolUtils::readRevisions)
100+
.build()
101+
.run();
105102
} else {
106103
ReadOnlyFileStore store = fileStoreBuilder(new File(pathOrURI)).withBlobStore(newBasicReadOnlyBlobStore()).buildReadOnly();
107104
statusCode = Diff.builder()

oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@
7171
import org.apache.jackrabbit.oak.run.cli.BlobStoreOptions.Type;
7272
import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
7373
import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
74-
import org.apache.jackrabbit.oak.segment.azure.v8.AzureStorageCredentialManagerV8;
75-
import org.apache.jackrabbit.oak.segment.azure.v8.AzureUtilitiesV8;
74+
import org.apache.jackrabbit.oak.segment.azure.AzurePersistenceManager;
7675
import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils;
7776
import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
7877
import org.apache.jackrabbit.oak.segment.file.FileStore;
@@ -1128,7 +1127,6 @@ class SegmentStoreFixture implements StoreFixture {
11281127
class AzureSegmentStoreFixture extends SegmentStoreFixture {
11291128
private static final String AZURE_DIR = "repository";
11301129
private String container;
1131-
private final AzureStorageCredentialManagerV8 azureStorageCredentialManagerV8 = new AzureStorageCredentialManagerV8();
11321130

11331131
@Override public NodeStore init(DataStoreBlobStore blobStore, File storeFile) throws Exception {
11341132
Properties props = AzureDataStoreUtils.getAzureConfig();
@@ -1138,14 +1136,14 @@ class AzureSegmentStoreFixture extends SegmentStoreFixture {
11381136
container = container + System.currentTimeMillis();
11391137
// Create the azure segment container
11401138
String connectionString = getAzureConnectionString(accessKey, secretKey, container, AZURE_DIR);
1141-
AzureUtilitiesV8.cloudBlobDirectoryFrom(connectionString, container, AZURE_DIR);
1139+
AzurePersistenceManager.createAzurePersistence(connectionString, null, accessKey, container, AZURE_DIR, false, true);
11421140

11431141
// get the azure uri expected by the command
11441142
storePath = getAzureUri(accessKey, container, AZURE_DIR);
11451143

11461144
// initialize azure segment for test setup
11471145
SegmentNodeStorePersistence segmentNodeStorePersistence =
1148-
ToolUtils.newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, storePath, azureStorageCredentialManagerV8);
1146+
ToolUtils.newSegmentNodeStorePersistence(ToolUtils.SegmentStoreType.AZURE, storePath);
11491147
fileStore = fileStoreBuilder(storeFile).withBlobStore(blobStore)
11501148
.withCustomPersistence(segmentNodeStorePersistence).build();
11511149

@@ -1177,7 +1175,6 @@ protected String getAzureConnectionString(String accountName, String secret, Str
11771175
public void after() {
11781176
try {
11791177
AzureDataStoreUtils.deleteContainer(container);
1180-
azureStorageCredentialManagerV8.close();
11811178
} catch(Exception e) {
11821179
log.error("Error in cleaning the container {}", container, e);
11831180
}

oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ public class AzurePersistence implements SegmentNodeStorePersistence {
5353

5454
protected WriteAccessController writeAccessController = new WriteAccessController();
5555

56+
public AzurePersistence(BlobContainerClient blobContainerClient, String rootPrefix) {
57+
this(blobContainerClient, blobContainerClient, blobContainerClient, rootPrefix);
58+
}
59+
5660
public AzurePersistence(BlobContainerClient readBlobContainerClient, BlobContainerClient writeBlobContainerClient, BlobContainerClient noRetryBlobContainerClient, String rootPrefix) {
5761
this(readBlobContainerClient, writeBlobContainerClient, noRetryBlobContainerClient, rootPrefix, null);
5862
}

0 commit comments

Comments
 (0)