|
78 | 78 | @SuppressForbidden(reason = "this test uses a HttpServer to emulate a Google Cloud Storage endpoint")
|
79 | 79 | public class GoogleCloudStorageBlobStoreRepositoryTests extends ESMockAPIBasedRepositoryIntegTestCase {
|
80 | 80 |
|
81 |
| - private static byte[] serviceAccount; |
82 |
| - |
83 | 81 | @Override
|
84 | 82 | protected String repositoryType() {
|
85 | 83 | return GoogleCloudStorageRepository.TYPE;
|
@@ -114,16 +112,13 @@ protected HttpHandler createErroneousHttpHandler(final HttpHandler delegate) {
|
114 | 112 |
|
115 | 113 | @Override
|
116 | 114 | protected Settings nodeSettings(int nodeOrdinal) {
|
117 |
| - if (serviceAccount == null) { |
118 |
| - serviceAccount = TestUtils.createServiceAccount(random()); |
119 |
| - } |
120 |
| - |
121 | 115 | final Settings.Builder settings = Settings.builder();
|
122 | 116 | settings.put(super.nodeSettings(nodeOrdinal));
|
123 | 117 | settings.put(ENDPOINT_SETTING.getConcreteSettingForNamespace("test").getKey(), httpServerUrl());
|
124 | 118 | settings.put(TOKEN_URI_SETTING.getConcreteSettingForNamespace("test").getKey(), httpServerUrl() + "/token");
|
125 | 119 |
|
126 | 120 | final MockSecureSettings secureSettings = new MockSecureSettings();
|
| 121 | + final byte[] serviceAccount = TestUtils.createServiceAccount(random()); |
127 | 122 | secureSettings.setFile(CREDENTIALS_FILE_SETTING.getConcreteSettingForNamespace("test").getKey(), serviceAccount);
|
128 | 123 | settings.setSecureSettings(secureSettings);
|
129 | 124 | return settings.build();
|
@@ -410,6 +405,15 @@ private static class GoogleErroneousHttpHandler extends ErroneousHttpHandler {
|
410 | 405 |
|
411 | 406 | @Override
|
412 | 407 | protected String requestUniqueId(HttpExchange exchange) {
|
| 408 | + if ("/token".equals(exchange.getRequestURI().getPath())) { |
| 409 | + try { |
| 410 | + // token content is unique per node (not per request) |
| 411 | + return Streams.readFully(exchange.getRequestBody()).utf8ToString(); |
| 412 | + } catch (IOException e) { |
| 413 | + throw new AssertionError("Unable to read token request body", e); |
| 414 | + } |
| 415 | + } |
| 416 | + |
413 | 417 | final String range = exchange.getRequestHeaders().getFirst("Content-Range");
|
414 | 418 | return exchange.getRemoteAddress().toString()
|
415 | 419 | + " " + exchange.getRequestMethod()
|
|
0 commit comments