-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecate setting 'reindex.remote.whitelist' and introduce the alternative setting 'reindex.remote.allowlist' #2221
Changes from 8 commits
c8dfd68
848dcb4
7790606
43ce60b
10536de
eaace67
9ac3616
8047f5d
f933699
ae615e7
0d43e53
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.index.reindex; | ||
|
||
import org.junit.Before; | ||
import org.opensearch.common.settings.Setting; | ||
import org.opensearch.common.settings.Settings; | ||
import org.opensearch.test.OpenSearchTestCase; | ||
|
||
import java.util.Arrays; | ||
import java.util.List; | ||
|
||
/** | ||
* A unit test to validate the former name of the setting 'reindex.remote.allowlist' still take effect, | ||
* after it is deprecated, so that the backwards compatibility is maintained. | ||
* The test can be removed along with removing support of the deprecated setting. | ||
*/ | ||
public class ReindexRenamedSettingTests extends OpenSearchTestCase { | ||
ReindexPlugin plugin; | ||
|
||
@Before | ||
public void setup() { | ||
this.plugin = new ReindexPlugin(); | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nitpick, but I think you can replace all this with just:
There's generally no need for a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thank you so much for sharing this knowledge to me! 👍👍 I totally had no idea with it. 😲 I will make the change. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. JUnit5 allows you to specify the test instance lifecycle, though the create-new-instance-for-each-test-method behavior is the default and matches the behavior of all previous versions of JUnit. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks a lot for telling me the background theory! Hope more people notice it. 😄 I see, since the default lifecycle is "per method", so any class variable will be initialized before calling any method. |
||
|
||
/** | ||
* Validate the both settings are known and supported. | ||
*/ | ||
public void testReindexSettingsExist() { | ||
List<Setting<?>> settings = plugin.getSettings(); | ||
assertTrue( | ||
"Both 'reindex.remote.allowlist' and its predecessor should be supported settings of Reindex plugin", | ||
settings.containsAll( | ||
Arrays.asList(TransportReindexAction.REMOTE_CLUSTER_WHITELIST, TransportReindexAction.REMOTE_CLUSTER_ALLOWLIST) | ||
) | ||
); | ||
} | ||
|
||
/** | ||
* Validate the default value of the both settings is the same. | ||
*/ | ||
public void testSettingFallback() { | ||
assertEquals( | ||
TransportReindexAction.REMOTE_CLUSTER_ALLOWLIST.get(Settings.EMPTY), | ||
TransportReindexAction.REMOTE_CLUSTER_WHITELIST.get(Settings.EMPTY) | ||
); | ||
} | ||
|
||
/** | ||
* Validate the new setting can be configured correctly, and it doesn't impact the old setting. | ||
*/ | ||
public void testSettingGetValue() { | ||
Settings settings = Settings.builder().put("reindex.remote.allowlist", "127.0.0.1:*").build(); | ||
assertEquals(TransportReindexAction.REMOTE_CLUSTER_ALLOWLIST.get(settings), Arrays.asList("127.0.0.1:*")); | ||
assertEquals( | ||
TransportReindexAction.REMOTE_CLUSTER_WHITELIST.get(settings), | ||
TransportReindexAction.REMOTE_CLUSTER_WHITELIST.getDefault(Settings.EMPTY) | ||
); | ||
} | ||
|
||
/** | ||
* Validate the value of the old setting will be applied to the new setting, if the new setting is not configured. | ||
*/ | ||
public void testSettingGetValueWithFallback() { | ||
Settings settings = Settings.builder().put("reindex.remote.whitelist", "127.0.0.1:*").build(); | ||
assertEquals(TransportReindexAction.REMOTE_CLUSTER_ALLOWLIST.get(settings), Arrays.asList("127.0.0.1:*")); | ||
assertSettingDeprecationsAndWarnings(new Setting<?>[] { TransportReindexAction.REMOTE_CLUSTER_WHITELIST }); | ||
} | ||
|
||
/** | ||
* Validate the value of the old setting will be ignored, if the new setting is configured. | ||
*/ | ||
public void testSettingGetValueWhenBothAreConfigured() { | ||
Settings settings = Settings.builder() | ||
.put("reindex.remote.allowlist", "127.0.0.1:*") | ||
.put("reindex.remote.whitelist", "[::1]:*, 127.0.0.1:*") | ||
.build(); | ||
assertEquals(TransportReindexAction.REMOTE_CLUSTER_ALLOWLIST.get(settings), Arrays.asList("127.0.0.1:*")); | ||
assertEquals(TransportReindexAction.REMOTE_CLUSTER_WHITELIST.get(settings), Arrays.asList("[::1]:*", "127.0.0.1:*")); | ||
assertSettingDeprecationsAndWarnings(new Setting<?>[] { TransportReindexAction.REMOTE_CLUSTER_WHITELIST }); | ||
} | ||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -308,7 +308,7 @@ | |
--- | ||
"unwhitelisted remote host fails": | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this test description be changed? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good catch! Thank you. This one is missed in PR #2178, I changed it in this PR. |
||
- do: | ||
catch: /\[badremote:9200\] not whitelisted in reindex.remote.whitelist/ | ||
catch: /\[badremote:9200\] not whitelisted in reindex.remote.allowlist/ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This will need to be updated if you change the exception message, I think. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as above. (Since PR #2178 is merged, the "whitelisted" in the exception messages have changed to "allowlisted") 😁 |
||
reindex: | ||
body: | ||
source: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we change this exception message?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @andrross, renaming the exception message is covered in PR #2178 , so I didn't touch it. 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since PR #2178 is merged, the "whitelisted" in the exception messages have changed to "allowlisted".