Skip to content

Commit 2f28eca

Browse files
committed
more comments
1 parent a755503 commit 2f28eca

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/PerProjectClientManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ public void clusterChanged(ClusterChangedEvent event) {
6262
.build();
6363
final Map<String, S3ClientSettings> clientSettings = S3ClientSettings.load(currentSettings);
6464

65+
// TODO: clientSettings should not be empty, i.e. there should be at least one client configured
66+
// Maybe log a warning if it is empty and continue. The project will not have usable client but that is probably ok.
67+
6568
// TODO: Building and comparing the whole S3ClientSettings may be insufficient, we could just compare the relevant secrets
6669
if (newOrUpdated(project.id(), clientSettings)) {
6770
updatedPerProjectClients.put(

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobStore.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.apache.logging.log4j.LogManager;
2626
import org.apache.logging.log4j.Logger;
2727
import org.elasticsearch.ExceptionsHelper;
28-
import org.elasticsearch.cluster.metadata.Metadata;
2928
import org.elasticsearch.cluster.metadata.RepositoryMetadata;
3029
import org.elasticsearch.common.BackoffPolicy;
3130
import org.elasticsearch.common.Strings;
@@ -493,8 +492,8 @@ private static DeleteObjectsRequest bulkDelete(OperationPurpose purpose, S3BlobS
493492

494493
@Override
495494
public void close() throws IOException {
496-
// TODO: take actual project-id in account
497-
service.onBlobStoreClose(Metadata.DEFAULT_PROJECT_ID);
495+
// TODO: change to use service.onBlobStoreClose(projectId)
496+
service.onBlobStoreClose();
498497
}
499498

500499
@Override

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ public Collection<?> createComponents(PluginServices services) {
104104
)
105105
);
106106
this.service.get().refreshAndClearCache(S3ClientSettings.load(settings));
107-
108107
return List.of(service);
109108
}
110109

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3Service.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public AmazonS3Reference client(RepositoryMetadata repositoryMetadata) {
174174
* Otherwise, attempts to retrieve a per-project client by the project-id and repository metadata from the
175175
* per-project client manager. Throws if project-id or the client does not exist. The client maybe initialized lazily.
176176
*/
177-
public AmazonS3Reference client(ProjectId projectId, RepositoryMetadata repositoryMetadata) {
177+
public AmazonS3Reference client(@Nullable ProjectId projectId, RepositoryMetadata repositoryMetadata) {
178178
if (perProjectClientManager == null) {
179179
// Multi-Project is disabled and we have a single default project
180180
assert ProjectId.DEFAULT.equals(projectId) : projectId;
@@ -337,9 +337,18 @@ private synchronized void releaseCachedClients() {
337337
IdleConnectionReaper.shutdown();
338338
}
339339

340-
public void onBlobStoreClose(ProjectId projectId) {
340+
public void onBlobStoreClose() {
341+
releaseCachedClients();
342+
}
343+
344+
public void onBlobStoreClose(@Nullable ProjectId projectId) {
341345
if (perProjectClientManager == null) {
342-
releaseCachedClients();
346+
// Multi-Project is disabled and we have a single default project
347+
assert ProjectId.DEFAULT.equals(projectId) : projectId;
348+
onBlobStoreClose();
349+
} else if (projectId == null) {
350+
// Multi-Project is enabled and this is for the cluster level blobstore
351+
onBlobStoreClose();
343352
} else {
344353
perProjectClientManager.clearCacheForProject(projectId);
345354
}

0 commit comments

Comments
 (0)