Skip to content

Commit 0955b5f

Browse files
Address review comments
1 parent 6c4ce88 commit 0955b5f

File tree

6 files changed

+36
-33
lines changed

6 files changed

+36
-33
lines changed

server/src/main/java/org/elasticsearch/cluster/ClusterModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.elasticsearch.cluster.metadata.RepositoriesMetadata;
2929
import org.elasticsearch.cluster.metadata.StreamsMetadata;
3030
import org.elasticsearch.cluster.project.ProjectResolver;
31-
import org.elasticsearch.cluster.project.ProjectsStateRegistry;
31+
import org.elasticsearch.cluster.project.ProjectStateRegistry;
3232
import org.elasticsearch.cluster.routing.DelayedAllocationService;
3333
import org.elasticsearch.cluster.routing.ShardRouting;
3434
import org.elasticsearch.cluster.routing.ShardRoutingRoleStrategy;
@@ -293,7 +293,7 @@ public static List<Entry> getNamedWriteables() {
293293
RegisteredPolicySnapshots::new,
294294
RegisteredPolicySnapshots.RegisteredSnapshotsDiff::new
295295
);
296-
registerClusterCustom(entries, ProjectsStateRegistry.TYPE, ProjectsStateRegistry::new, ProjectsStateRegistry::readDiffFrom);
296+
registerClusterCustom(entries, ProjectStateRegistry.TYPE, ProjectStateRegistry::new, ProjectStateRegistry::readDiffFrom);
297297
// Secrets
298298
registerClusterCustom(entries, ClusterSecrets.TYPE, ClusterSecrets::new, ClusterSecrets::readDiffFrom);
299299
registerProjectCustom(entries, ProjectSecrets.TYPE, ProjectSecrets::new, ProjectSecrets::readDiffFrom);

server/src/main/java/org/elasticsearch/cluster/ProjectState.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.elasticsearch.cluster.block.ClusterBlocks;
1313
import org.elasticsearch.cluster.metadata.ProjectId;
1414
import org.elasticsearch.cluster.metadata.ProjectMetadata;
15-
import org.elasticsearch.cluster.project.ProjectsStateRegistry;
15+
import org.elasticsearch.cluster.project.ProjectStateRegistry;
1616
import org.elasticsearch.cluster.routing.RoutingTable;
1717
import org.elasticsearch.common.Strings;
1818
import org.elasticsearch.common.settings.Settings;
@@ -37,7 +37,7 @@ public final class ProjectState {
3737
this.cluster = clusterState;
3838
this.project = projectId;
3939
this.projectMetadata = clusterState.metadata().getProject(projectId);
40-
this.projectSettings = ProjectsStateRegistry.getProjectSettings(projectId, clusterState);
40+
this.projectSettings = ProjectStateRegistry.getProjectSettings(projectId, clusterState);
4141
this.routingTable = clusterState.routingTable(projectId);
4242
}
4343

server/src/main/java/org/elasticsearch/cluster/project/ProjectsStateRegistry.java renamed to server/src/main/java/org/elasticsearch/cluster/project/ProjectStateRegistry.java

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,33 @@
2727
import java.util.Iterator;
2828
import java.util.Map;
2929

30-
public class ProjectsStateRegistry extends AbstractNamedDiffable<ClusterState.Custom> implements ClusterState.Custom {
30+
/**
31+
* Represents a registry for managing and retrieving project-specific state in the cluster state.
32+
*/
33+
public class ProjectStateRegistry extends AbstractNamedDiffable<ClusterState.Custom> implements ClusterState.Custom {
3134
public static final String TYPE = "projects_registry";
32-
public static final ProjectsStateRegistry EMPTY = new ProjectsStateRegistry(Collections.emptyMap());
35+
public static final ProjectStateRegistry EMPTY = new ProjectStateRegistry(Collections.emptyMap());
3336

3437
private final Map<ProjectId, Settings> projectsSettings;
3538

36-
public ProjectsStateRegistry(StreamInput in) throws IOException {
39+
public ProjectStateRegistry(StreamInput in) throws IOException {
3740
projectsSettings = in.readMap(ProjectId::readFrom, Settings::readSettingsFromStream);
3841
}
3942

40-
public ProjectsStateRegistry(Map<ProjectId, Settings> projectsSettings) {
43+
private ProjectStateRegistry(Map<ProjectId, Settings> projectsSettings) {
4144
this.projectsSettings = projectsSettings;
4245
}
4346

47+
/**
48+
* Retrieves the settings for a specific project based on its project ID from the specified cluster state without creating a new object.
49+
* If you need a full state of the project rather than just its setting, please use {@link ClusterState#projectState(ProjectId)}
50+
*
51+
* @param projectId id of the project
52+
* @param clusterState cluster state
53+
* @return the settings for the specified project, or an empty settings object if no settings are found
54+
*/
4455
public static Settings getProjectSettings(ProjectId projectId, ClusterState clusterState) {
45-
ProjectsStateRegistry registry = clusterState.custom(TYPE, EMPTY);
56+
ProjectStateRegistry registry = clusterState.custom(TYPE, EMPTY);
4657
return registry.projectsSettings.getOrDefault(projectId, Settings.EMPTY);
4758
}
4859

@@ -90,19 +101,12 @@ public int size() {
90101
return projectsSettings.size();
91102
}
92103

93-
/**
94-
* Returns a new instance of ProjectsStateRegistry containing all projects from the cluster state and settings for the specified project
95-
*/
96-
public static ProjectsStateRegistry setProjectSettings(ClusterState clusterState, ProjectId projectId, Settings settings) {
97-
return ProjectsStateRegistry.builder(clusterState).putProjectSettings(projectId, settings).build();
98-
}
99-
100104
public static Builder builder(ClusterState original) {
101-
ProjectsStateRegistry projectRegistry = original.custom(TYPE, EMPTY);
105+
ProjectStateRegistry projectRegistry = original.custom(TYPE, EMPTY);
102106
return builder(projectRegistry);
103107
}
104108

105-
public static Builder builder(ProjectsStateRegistry projectRegistry) {
109+
public static Builder builder(ProjectStateRegistry projectRegistry) {
106110
return new Builder(projectRegistry);
107111
}
108112

@@ -117,7 +121,7 @@ private Builder() {
117121
this.projectsSettings = ImmutableOpenMap.builder();
118122
}
119123

120-
private Builder(ProjectsStateRegistry original) {
124+
private Builder(ProjectStateRegistry original) {
121125
this.projectsSettings = ImmutableOpenMap.builder(original.projectsSettings);
122126
}
123127

@@ -126,9 +130,8 @@ public Builder putProjectSettings(ProjectId projectId, Settings settings) {
126130
return this;
127131
}
128132

129-
public ProjectsStateRegistry build() {
130-
return new ProjectsStateRegistry(projectsSettings.build());
133+
public ProjectStateRegistry build() {
134+
return new ProjectStateRegistry(projectsSettings.build());
131135
}
132136
}
133-
134137
}

server/src/main/java/org/elasticsearch/reservedstate/service/ReservedProjectStateUpdateTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.elasticsearch.cluster.ClusterState;
1515
import org.elasticsearch.cluster.metadata.ProjectId;
1616
import org.elasticsearch.cluster.metadata.ProjectMetadata;
17-
import org.elasticsearch.cluster.project.ProjectsStateRegistry;
17+
import org.elasticsearch.cluster.project.ProjectStateRegistry;
1818
import org.elasticsearch.common.settings.Settings;
1919
import org.elasticsearch.gateway.GatewayService;
2020
import org.elasticsearch.reservedstate.ReservedProjectStateHandler;
@@ -73,10 +73,10 @@ protected ClusterState execute(ClusterState currentState) {
7373
}
7474

7575
ClusterState updatedClusterState = result.v1();
76-
Settings updatedSettings = ProjectsStateRegistry.getProjectSettings(projectId, updatedClusterState);
76+
Settings updatedSettings = ProjectStateRegistry.getProjectSettings(projectId, updatedClusterState);
7777
ProjectMetadata updatedProject = updatedClusterState.getMetadata().getProject(projectId);
7878
return ClusterState.builder(currentState)
79-
.putCustom(ProjectsStateRegistry.TYPE, ProjectsStateRegistry.setProjectSettings(currentState, projectId, updatedSettings))
79+
.putCustom(ProjectStateRegistry.TYPE, ProjectStateRegistry.builder(currentState).putProjectSettings(projectId, updatedSettings).build())
8080
.putProjectMetadata(ProjectMetadata.builder(updatedProject).put(result.v2()))
8181
.build();
8282
}

server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIngestTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import org.elasticsearch.cluster.metadata.Template;
3939
import org.elasticsearch.cluster.node.DiscoveryNode;
4040
import org.elasticsearch.cluster.node.DiscoveryNodes;
41-
import org.elasticsearch.cluster.project.ProjectsStateRegistry;
41+
import org.elasticsearch.cluster.project.ProjectStateRegistry;
4242
import org.elasticsearch.cluster.project.TestProjectResolvers;
4343
import org.elasticsearch.cluster.service.ClusterService;
4444
import org.elasticsearch.common.TriConsumer;
@@ -353,8 +353,8 @@ public void setupAction() {
353353
when(state.getMetadata()).thenReturn(metadata);
354354
when(state.metadata()).thenReturn(metadata);
355355
when(state.blocks()).thenReturn(mock(ClusterBlocks.class));
356-
when(state.custom(eq(ProjectsStateRegistry.TYPE), any())).thenReturn(
357-
ProjectsStateRegistry.builder().putProjectSettings(projectId, Settings.builder().build()).build()
356+
when(state.custom(eq(ProjectStateRegistry.TYPE), any())).thenReturn(
357+
ProjectStateRegistry.builder().putProjectSettings(projectId, Settings.builder().build()).build()
358358
);
359359
when(clusterService.state()).thenReturn(state);
360360
doAnswer(invocation -> {

server/src/test/java/org/elasticsearch/cluster/ClusterStateTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.elasticsearch.cluster.node.DiscoveryNode;
3030
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
3131
import org.elasticsearch.cluster.node.DiscoveryNodes;
32-
import org.elasticsearch.cluster.project.ProjectsStateRegistry;
32+
import org.elasticsearch.cluster.project.ProjectStateRegistry;
3333
import org.elasticsearch.cluster.routing.GlobalRoutingTable;
3434
import org.elasticsearch.cluster.routing.GlobalRoutingTableTestHelper;
3535
import org.elasticsearch.cluster.routing.IndexRoutingTable;
@@ -921,8 +921,8 @@ private static ClusterState buildMultiProjectClusterState(DiscoveryNode... nodes
921921
.nodes(discoveryNodes.build())
922922
.routingTable(GlobalRoutingTableTestHelper.buildRoutingTable(metadata, RoutingTable.Builder::addAsNew))
923923
.putCustom(
924-
ProjectsStateRegistry.TYPE,
925-
ProjectsStateRegistry.builder()
924+
ProjectStateRegistry.TYPE,
925+
ProjectStateRegistry.builder()
926926
.putProjectSettings(
927927
projectId1,
928928
Settings.builder().put(PROJECT_SETTING.getKey(), 42).put(PROJECT_SETTING2.getKey(), 43).build()
@@ -2225,8 +2225,8 @@ public static int expectedChunkCount(ToXContent.Params params, ClusterState clus
22252225
chunkCount += 2 + snapshotDeletionsInProgress.getEntries().size();
22262226
} else if (custom instanceof SnapshotsInProgress snapshotsInProgress) {
22272227
chunkCount += 2 + snapshotsInProgress.asStream().count();
2228-
} else if (custom instanceof ProjectsStateRegistry projectsStateRegistry) {
2229-
chunkCount += 2 + projectsStateRegistry.size();
2228+
} else if (custom instanceof ProjectStateRegistry projectStateRegistry) {
2229+
chunkCount += 2 + projectStateRegistry.size();
22302230
} else {
22312231
// could be anything, we have to just try it
22322232
chunkCount += Iterables.size(

0 commit comments

Comments
 (0)