|
46 | 46 | import java.time.Instant; |
47 | 47 | import java.util.ArrayList; |
48 | 48 | import java.util.Arrays; |
| 49 | +import java.util.EnumSet; |
49 | 50 | import java.util.HashMap; |
50 | 51 | import java.util.HashSet; |
51 | 52 | import java.util.List; |
@@ -170,6 +171,84 @@ public void testResolveStarWithAllOptions() { |
170 | 171 | validateDataStreams(dataStreams, "logs-mysql-prod", "logs-mysql-test"); |
171 | 172 | } |
172 | 173 |
|
| 174 | + public void testResolveModesFilter() { |
| 175 | + String[] names = randomFrom(new String[] { "*" }, new String[] { "_all" }); |
| 176 | + List<ResolvedIndex> indices = new ArrayList<>(); |
| 177 | + List<ResolvedAlias> aliases = new ArrayList<>(); |
| 178 | + List<ResolvedDataStream> dataStreams = new ArrayList<>(); |
| 179 | + |
| 180 | + // One type |
| 181 | + TransportAction.resolveIndices( |
| 182 | + names, |
| 183 | + IndicesOptions.STRICT_EXPAND_OPEN_CLOSED_HIDDEN, |
| 184 | + projectState, |
| 185 | + resolver, |
| 186 | + indices, |
| 187 | + aliases, |
| 188 | + dataStreams, |
| 189 | + EnumSet.of(IndexMode.TIME_SERIES) |
| 190 | + ); |
| 191 | + validateIndices(indices, "logs-pgsql-prod-20200102"); |
| 192 | + assertThat(aliases.size(), equalTo(2)); |
| 193 | + var alias1 = aliases.get(0); |
| 194 | + assertThat(alias1.getName(), equalTo("logs-pgsql-prod")); |
| 195 | + assertThat(alias1.getIndices(), arrayContaining("logs-pgsql-prod-20200102")); |
| 196 | + var alias2 = aliases.get(1); |
| 197 | + assertThat(alias2.getName(), equalTo("one-off-alias")); |
| 198 | + assertThat(alias2.getIndices(), arrayContaining("logs-pgsql-prod-20200102")); |
| 199 | + assertThat(dataStreams.size(), equalTo(0)); |
| 200 | + |
| 201 | + indices = new ArrayList<>(); |
| 202 | + aliases = new ArrayList<>(); |
| 203 | + dataStreams = new ArrayList<>(); |
| 204 | + // Everything |
| 205 | + TransportAction.resolveIndices( |
| 206 | + names, |
| 207 | + IndicesOptions.STRICT_EXPAND_OPEN_CLOSED_HIDDEN, |
| 208 | + projectState, |
| 209 | + resolver, |
| 210 | + indices, |
| 211 | + aliases, |
| 212 | + dataStreams, |
| 213 | + EnumSet.of(IndexMode.TIME_SERIES, IndexMode.STANDARD) |
| 214 | + ); |
| 215 | + validateIndices( |
| 216 | + indices, |
| 217 | + ".ds-logs-mysql-prod-" + dateString + "-000001", |
| 218 | + ".ds-logs-mysql-prod-" + dateString + "-000002", |
| 219 | + ".ds-logs-mysql-prod-" + dateString + "-000003", |
| 220 | + ".ds-logs-mysql-prod-" + dateString + "-000004", |
| 221 | + ".ds-logs-mysql-test-" + dateString + "-000001", |
| 222 | + ".ds-logs-mysql-test-" + dateString + "-000002", |
| 223 | + ".test-system-index", |
| 224 | + "logs-pgsql-prod-20200101", |
| 225 | + "logs-pgsql-prod-20200102", |
| 226 | + "logs-pgsql-prod-20200103", |
| 227 | + "logs-pgsql-test-20200101", |
| 228 | + "logs-pgsql-test-20200102", |
| 229 | + "logs-pgsql-test-20200103" |
| 230 | + ); |
| 231 | + validateAliases(aliases, "logs-pgsql-prod", "logs-pgsql-test", "one-off-alias"); |
| 232 | + validateDataStreams(dataStreams, "logs-mysql-prod", "logs-mysql-test"); |
| 233 | + // Not matched |
| 234 | + indices = new ArrayList<>(); |
| 235 | + aliases = new ArrayList<>(); |
| 236 | + dataStreams = new ArrayList<>(); |
| 237 | + TransportAction.resolveIndices( |
| 238 | + names, |
| 239 | + IndicesOptions.STRICT_EXPAND_OPEN_CLOSED_HIDDEN, |
| 240 | + projectState, |
| 241 | + resolver, |
| 242 | + indices, |
| 243 | + aliases, |
| 244 | + dataStreams, |
| 245 | + EnumSet.of(IndexMode.LOOKUP) |
| 246 | + ); |
| 247 | + assertThat(indices.size(), equalTo(0)); |
| 248 | + assertThat(aliases.size(), equalTo(0)); |
| 249 | + assertThat(dataStreams.size(), equalTo(0)); |
| 250 | + } |
| 251 | + |
173 | 252 | public void testResolveWithPattern() { |
174 | 253 | String[] names = new String[] { "logs-pgsql*" }; |
175 | 254 | IndicesOptions indicesOptions = Request.DEFAULT_INDICES_OPTIONS; |
|
0 commit comments