Allow using empty string to remove all whitelisted IPs

Currently, you have to set "--ip_whitelist=null", which is unintuitive.

This adds the option to just give an empty string: "--ip_whitelist="

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=227550896
This commit is contained in:
guyben 2019-01-02 11:19:52 -08:00 committed by Ben McIlwain
parent 2e7d71b238
commit 566f60d495
2 changed files with 20 additions and 3 deletions

View file

@ -154,7 +154,7 @@ abstract class CreateOrUpdateRegistrarCommand extends MutatingCommand {
@Parameter(
names = "--ip_whitelist",
description = "Comma-delimited list of IP ranges")
description = "Comma-delimited list of IP ranges. An empty string clears the whitelist.")
List<String> ipWhitelist = new ArrayList<>();
@Nullable
@ -332,7 +332,9 @@ abstract class CreateOrUpdateRegistrarCommand extends MutatingCommand {
ImmutableList.Builder<CidrAddressBlock> ipWhitelistBuilder = new ImmutableList.Builder<>();
if (!(ipWhitelist.size() == 1 && ipWhitelist.get(0).contains("null"))) {
for (String ipRange : ipWhitelist) {
ipWhitelistBuilder.add(CidrAddressBlock.create(ipRange));
if (!ipRange.isEmpty()) {
ipWhitelistBuilder.add(CidrAddressBlock.create(ipRange));
}
}
}
builder.setIpAddressWhitelist(ipWhitelistBuilder.build());

View file

@ -134,7 +134,7 @@ public class UpdateRegistrarCommandTest extends CommandTestCase<UpdateRegistrarC
}
@Test
public void testSuccess_clearIpWhitelist() throws Exception {
public void testSuccess_clearIpWhitelist_useNull() throws Exception {
persistResource(
loadRegistrar("NewRegistrar")
.asBuilder()
@ -148,6 +148,21 @@ public class UpdateRegistrarCommandTest extends CommandTestCase<UpdateRegistrarC
assertThat(loadRegistrar("NewRegistrar").getIpAddressWhitelist()).isEmpty();
}
@Test
public void testSuccess_clearIpWhitelist_useEmpty() throws Exception {
persistResource(
loadRegistrar("NewRegistrar")
.asBuilder()
.setIpAddressWhitelist(
ImmutableList.of(
CidrAddressBlock.create("192.168.1.1"),
CidrAddressBlock.create("192.168.0.2/16")))
.build());
assertThat(loadRegistrar("NewRegistrar").getIpAddressWhitelist()).isNotEmpty();
runCommand("--ip_whitelist=", "--force", "NewRegistrar");
assertThat(loadRegistrar("NewRegistrar").getIpAddressWhitelist()).isEmpty();
}
@Test
public void testSuccess_certFile() throws Exception {
Registrar registrar = loadRegistrar("NewRegistrar");