mirror of
https://github.com/google/nomulus
synced 2026-01-10 16:00:52 +00:00
Make some quality of life improvements to set_num_instances command
Allows correct service names (i.e. lowercased, as they appear in App Engine configuration files and the GCP console), and adds single letter parameters for common flags. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=229194479
This commit is contained in:
@@ -35,6 +35,7 @@ import google.registry.tools.AppEngineConnection.Service;
|
||||
import google.registry.util.AppEngineServiceUtils;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
|
||||
@@ -57,21 +58,21 @@ final class SetNumInstancesCommand implements CommandWithRemoteApi {
|
||||
|
||||
// TODO(b/119629679): Use List<Service> after upgrading jcommander to latest version.
|
||||
@Parameter(
|
||||
names = "--services",
|
||||
names = {"-s", "--services"},
|
||||
description =
|
||||
"Comma-delimited list of App Engine services to set. "
|
||||
+ "Allowed values: [DEFAULT, TOOLS, BACKEND, PUBAPI]")
|
||||
private List<String> serviceNames = ImmutableList.of();
|
||||
|
||||
@Parameter(
|
||||
names = "--versions",
|
||||
names = {"-v", "--versions"},
|
||||
description =
|
||||
"Comma-delimited list of App Engine versions to set, e.g., canary. "
|
||||
+ "Cannot be set if --non_live_versions is set.")
|
||||
private List<String> versions = ImmutableList.of();
|
||||
|
||||
@Parameter(
|
||||
names = "--num_instances",
|
||||
names = {"-n", "--num_instances"},
|
||||
description =
|
||||
"The new number of instances for the given versions "
|
||||
+ "or for all non-live versions if --non_live_versions is set.",
|
||||
@@ -92,10 +93,11 @@ final class SetNumInstancesCommand implements CommandWithRemoteApi {
|
||||
String projectId;
|
||||
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
public void run() {
|
||||
|
||||
ImmutableSet<Service> services =
|
||||
serviceNames.stream()
|
||||
.map(s -> s.toUpperCase(Locale.US))
|
||||
.map(
|
||||
name ->
|
||||
checkArgumentPresent(
|
||||
|
||||
@@ -99,7 +99,7 @@ public class SetNumInstancesCommandTest extends CommandTestCase<SetNumInstancesC
|
||||
ParameterException.class, () -> runCommand("--services=DEFAULT", "--versions=version"));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("The following option is required: --num_instances");
|
||||
.contains("The following option is required: -n, --num_instances");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -156,6 +156,19 @@ public class SetNumInstancesCommandTest extends CommandTestCase<SetNumInstancesC
|
||||
verify(appEngineServiceUtils, times(1)).setNumInstances("default", "version", 10L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_validShortParametersAndLowercaseService_succeeds() throws Exception {
|
||||
command.appengine =
|
||||
new AppEngineAdminApiHelper.Builder()
|
||||
.setAppId(projectId)
|
||||
.setManualScalingVersionsMap(ImmutableMultimap.of("default", "version"))
|
||||
.build()
|
||||
.getAppengine();
|
||||
|
||||
runCommand("-s default", "-v version", "-n 10");
|
||||
verify(appEngineServiceUtils, times(1)).setNumInstances("default", "version", 10L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_settingMultipleServicesAndVersions_succeeds() throws Exception {
|
||||
command.appengine =
|
||||
|
||||
Reference in New Issue
Block a user