10
10
11
11
import org .elasticsearch .ResourceNotFoundException ;
12
12
import org .elasticsearch .action .datastreams .DeleteDataStreamAction ;
13
+ import org .elasticsearch .cluster .ClusterName ;
13
14
import org .elasticsearch .cluster .ClusterState ;
14
15
import org .elasticsearch .cluster .SnapshotsInProgress ;
15
16
import org .elasticsearch .cluster .metadata .DataStream ;
16
17
import org .elasticsearch .cluster .metadata .DataStreamTestHelper ;
17
18
import org .elasticsearch .cluster .metadata .IndexNameExpressionResolver ;
18
19
import org .elasticsearch .cluster .metadata .ProjectId ;
20
+ import org .elasticsearch .cluster .metadata .ProjectMetadata ;
19
21
import org .elasticsearch .common .Strings ;
20
22
import org .elasticsearch .common .collect .ImmutableOpenMap ;
21
23
import org .elasticsearch .common .settings .Settings ;
@@ -47,61 +49,55 @@ public void testDeleteDataStream() {
47
49
final String dataStreamName = "my-data-stream" ;
48
50
final List <String > otherIndices = randomSubsetOf (List .of ("foo" , "bar" , "baz" ));
49
51
50
- final var projectId = randomProjectIdOrDefault ();
51
- ClusterState cs = DataStreamTestHelper .getClusterStateWithDataStreams (
52
- projectId ,
53
- List .of (new Tuple <>(dataStreamName , 2 )),
54
- otherIndices
55
- );
52
+ ProjectMetadata project = DataStreamTestHelper .getProjectWithDataStreams (List .of (new Tuple <>(dataStreamName , 2 )), otherIndices );
56
53
DeleteDataStreamAction .Request req = new DeleteDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] { dataStreamName });
57
54
ClusterState newState = TransportDeleteDataStreamAction .removeDataStream (
58
55
iner ,
59
- cs . projectState ( projectId ),
56
+ projectStateFromProject ( project ),
60
57
req ,
61
58
validator ,
62
59
Settings .EMPTY
63
60
);
64
- assertThat (newState .metadata ().getProject (projectId ).dataStreams ().size (), equalTo (0 ));
65
- assertThat (newState .metadata ().getProject (projectId ).indices ().size (), equalTo (otherIndices .size ()));
61
+ final var newProject = newState .metadata ().getProject (project .id ());
62
+ assertThat (newProject .dataStreams ().size (), equalTo (0 ));
63
+ assertThat (newProject .indices ().size (), equalTo (otherIndices .size ()));
66
64
for (String indexName : otherIndices ) {
67
- assertThat (newState . metadata (). getProject ( projectId ) .indices ().get (indexName ).getIndex ().getName (), equalTo (indexName ));
65
+ assertThat (newProject .indices ().get (indexName ).getIndex ().getName (), equalTo (indexName ));
68
66
}
69
67
}
70
68
71
69
public void testDeleteDataStreamWithFailureStore () {
72
70
final String dataStreamName = "my-data-stream" ;
73
71
final List <String > otherIndices = randomSubsetOf (List .of ("foo" , "bar" , "baz" ));
74
72
75
- final var projectId = randomProjectIdOrDefault ();
76
- ClusterState cs = DataStreamTestHelper .getClusterStateWithDataStreams (
77
- projectId ,
73
+ ProjectMetadata project = DataStreamTestHelper .getProjectWithDataStreams (
78
74
List .of (new Tuple <>(dataStreamName , 2 )),
79
75
otherIndices ,
80
76
System .currentTimeMillis (),
81
77
Settings .EMPTY ,
82
78
1 ,
83
- false
79
+ false ,
80
+ true
84
81
);
85
82
DeleteDataStreamAction .Request req = new DeleteDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] { dataStreamName });
86
83
ClusterState newState = TransportDeleteDataStreamAction .removeDataStream (
87
84
iner ,
88
- cs . projectState ( projectId ),
85
+ projectStateFromProject ( project ),
89
86
req ,
90
87
validator ,
91
88
Settings .EMPTY
92
89
);
93
- assertThat (newState .metadata ().getProject (projectId ).dataStreams ().size (), equalTo (0 ));
94
- assertThat (newState .metadata ().getProject (projectId ).indices ().size (), equalTo (otherIndices .size ()));
90
+ final var newProject = newState .metadata ().getProject (project .id ());
91
+ assertThat (newProject .dataStreams ().size (), equalTo (0 ));
92
+ assertThat (newProject .indices ().size (), equalTo (otherIndices .size ()));
95
93
for (String indexName : otherIndices ) {
96
- assertThat (newState . metadata (). getProject ( projectId ) .indices ().get (indexName ).getIndex ().getName (), equalTo (indexName ));
94
+ assertThat (newProject .indices ().get (indexName ).getIndex ().getName (), equalTo (indexName ));
97
95
}
98
96
}
99
97
100
98
public void testDeleteMultipleDataStreams () {
101
99
String [] dataStreamNames = { "foo" , "bar" , "baz" , "eggplant" };
102
- final var projectId = randomProjectIdOrDefault ();
103
- ClusterState cs = DataStreamTestHelper .getClusterStateWithDataStreams (
104
- projectId ,
100
+ ProjectMetadata project = DataStreamTestHelper .getProjectWithDataStreams (
105
101
List .of (
106
102
new Tuple <>(dataStreamNames [0 ], randomIntBetween (1 , 3 )),
107
103
new Tuple <>(dataStreamNames [1 ], randomIntBetween (1 , 3 )),
@@ -114,17 +110,18 @@ public void testDeleteMultipleDataStreams() {
114
110
DeleteDataStreamAction .Request req = new DeleteDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] { "ba*" , "eggplant" });
115
111
ClusterState newState = TransportDeleteDataStreamAction .removeDataStream (
116
112
iner ,
117
- cs . projectState ( projectId ),
113
+ projectStateFromProject ( project ),
118
114
req ,
119
115
validator ,
120
116
Settings .EMPTY
121
117
);
122
- assertThat (newState .metadata ().getProject (projectId ).dataStreams ().size (), equalTo (1 ));
123
- DataStream remainingDataStream = newState .metadata ().getProject (projectId ).dataStreams ().get (dataStreamNames [0 ]);
118
+ final var newProject = newState .metadata ().getProject (project .id ());
119
+ assertThat (newProject .dataStreams ().size (), equalTo (1 ));
120
+ DataStream remainingDataStream = newProject .dataStreams ().get (dataStreamNames [0 ]);
124
121
assertNotNull (remainingDataStream );
125
- assertThat (newState . metadata (). getProject ( projectId ) .indices ().size (), equalTo (remainingDataStream .getIndices ().size ()));
122
+ assertThat (newProject .indices ().size (), equalTo (remainingDataStream .getIndices ().size ()));
126
123
for (Index i : remainingDataStream .getIndices ()) {
127
- assertThat (newState . metadata (). getProject ( projectId ) .indices ().get (i .getName ()).getIndex (), equalTo (i ));
124
+ assertThat (newProject .indices ().get (i .getName ()).getIndex (), equalTo (i ));
128
125
}
129
126
}
130
127
@@ -133,12 +130,12 @@ public void testDeleteSnapshottingDataStream() {
133
130
final String dataStreamName2 = "my-data-stream2" ;
134
131
final List <String > otherIndices = randomSubsetOf (List .of ("foo" , "bar" , "baz" ));
135
132
136
- final var projectId = randomProjectIdOrDefault ();
137
- ClusterState cs = DataStreamTestHelper .getClusterStateWithDataStreams (
138
- projectId ,
133
+ ProjectMetadata project = DataStreamTestHelper .getProjectWithDataStreams (
139
134
List .of (new Tuple <>(dataStreamName , 2 ), new Tuple <>(dataStreamName2 , 2 )),
140
135
otherIndices
141
136
);
137
+ final var projectId = project .id ();
138
+ final ClusterState cs = ClusterState .builder (ClusterName .DEFAULT ).putProjectMetadata (project ).build ();
142
139
SnapshotsInProgress snapshotsInProgress = SnapshotsInProgress .EMPTY .withAddedEntry (
143
140
createEntry (dataStreamName , projectId , "repo1" , false )
144
141
).withAddedEntry (createEntry (dataStreamName2 , projectId , "repo2" , true ));
@@ -180,9 +177,7 @@ private SnapshotsInProgress.Entry createEntry(String dataStreamName, ProjectId p
180
177
public void testDeleteNonexistentDataStream () {
181
178
final String dataStreamName = "my-data-stream" ;
182
179
String [] dataStreamNames = { "foo" , "bar" , "baz" , "eggplant" };
183
- final var projectId = randomProjectIdOrDefault ();
184
- ClusterState cs = DataStreamTestHelper .getClusterStateWithDataStreams (
185
- projectId ,
180
+ ProjectMetadata project = DataStreamTestHelper .getProjectWithDataStreams (
186
181
List .of (
187
182
new Tuple <>(dataStreamNames [0 ], randomIntBetween (1 , 3 )),
188
183
new Tuple <>(dataStreamNames [1 ], randomIntBetween (1 , 3 )),
@@ -191,12 +186,13 @@ public void testDeleteNonexistentDataStream() {
191
186
),
192
187
List .of ()
193
188
);
189
+ final ClusterState cs = ClusterState .builder (ClusterName .DEFAULT ).putProjectMetadata (project ).build ();
194
190
195
191
expectThrows (
196
192
ResourceNotFoundException .class ,
197
193
() -> TransportDeleteDataStreamAction .removeDataStream (
198
194
iner ,
199
- cs .projectState (projectId ),
195
+ cs .projectState (project . id () ),
200
196
new DeleteDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] { dataStreamName }),
201
197
validator ,
202
198
Settings .EMPTY
@@ -209,20 +205,15 @@ public void testDeleteNonexistentDataStream() {
209
205
);
210
206
ClusterState newState = TransportDeleteDataStreamAction .removeDataStream (
211
207
iner ,
212
- cs .projectState (projectId ),
208
+ cs .projectState (project . id () ),
213
209
req ,
214
210
validator ,
215
211
Settings .EMPTY
216
212
);
217
213
assertThat (newState , sameInstance (cs ));
218
- assertThat (
219
- newState .metadata ().getProject (projectId ).dataStreams ().size (),
220
- equalTo (cs .metadata ().getProject (projectId ).dataStreams ().size ())
221
- );
222
- assertThat (
223
- newState .metadata ().getProject (projectId ).dataStreams ().keySet (),
224
- containsInAnyOrder (cs .metadata ().getProject (projectId ).dataStreams ().keySet ().toArray (Strings .EMPTY_ARRAY ))
225
- );
214
+ final var newProject = newState .metadata ().getProject (project .id ());
215
+ assertThat (newProject .dataStreams ().size (), equalTo (project .dataStreams ().size ()));
216
+ assertThat (newProject .dataStreams ().keySet (), containsInAnyOrder (project .dataStreams ().keySet ().toArray (Strings .EMPTY_ARRAY )));
226
217
}
227
218
228
219
}
0 commit comments