summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2021-05-20 09:18:49 +0200
committerMorten Tokle <mortent@verizonmedia.com>2021-05-20 09:49:02 +0200
commit88b8b26507a499e1984492a06ec1b80a3911ddc3 (patch)
tree25d211cd8b0e081da28c6ac608ce150489a664fd /configserver
parent197960e8afa3a37859aa152acbe52b3a5ea0ac48 (diff)
Handle missing fields
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
index c9f4b8164eb..ca0db3d0792 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
@@ -276,12 +276,13 @@ public final class PrepareParams {
Slime slime = SlimeUtils.jsonToSlime(json);
Inspector params = slime.get();
- return new Builder().ignoreValidationErrors(params.field(IGNORE_VALIDATION_PARAM_NAME).asBool())
- .dryRun(params.field(DRY_RUN_PARAM_NAME).asBool())
- .verbose(params.field(VERBOSE_PARAM_NAME).asBool())
+ return new Builder()
+ .ignoreValidationErrors(booleanValue(params, IGNORE_VALIDATION_PARAM_NAME))
+ .dryRun(booleanValue(params, DRY_RUN_PARAM_NAME))
+ .verbose(booleanValue(params, VERBOSE_PARAM_NAME))
.timeoutBudget(SessionHandler.getTimeoutBudget(getTimeout(params, barrierTimeout)))
.applicationId(createApplicationId(params, tenant))
- .vespaVersion(params.field(VESPA_VERSION_PARAM_NAME).asString())
+ .vespaVersion(SlimeUtils.optionalString(params.field(VESPA_VERSION_PARAM_NAME)).orElse(null))
.containerEndpointList(deserialize(params.field(CONTAINER_ENDPOINTS_PARAM_NAME), ContainerEndpointSerializer::endpointListFromSlime, Collections.emptyList()))
.endpointCertificateMetadata(deserialize(params.field(ENDPOINT_CERTIFICATE_METADATA_PARAM_NAME), EndpointCertificateMetadataSerializer::fromSlime))
.dockerImageRepository(SlimeUtils.optionalString(params.field(DOCKER_IMAGE_REPOSITORY)).orElse(null))
@@ -289,8 +290,8 @@ public final class PrepareParams {
.applicationRoles(ApplicationRoles.fromString(SlimeUtils.optionalString(params.field(APPLICATION_HOST_ROLE)).orElse(null), SlimeUtils.optionalString(params.field(APPLICATION_CONTAINER_ROLE)).orElse(null)))
.quota(deserialize(params.field(QUOTA_PARAM_NAME), Quota::fromSlime))
.tenantSecretStores(SlimeUtils.optionalString(params.field(TENANT_SECRET_STORES_PARAM_NAME)).orElse(null))
- .force(params.field(FORCE_PARAM_NAME).asBool())
- .waitForResourcesInPrepare(params.field(WAIT_FOR_RESOURCES_IN_PREPARE).asBool())
+ .force(booleanValue(params, FORCE_PARAM_NAME))
+ .waitForResourcesInPrepare(booleanValue(params, WAIT_FOR_RESOURCES_IN_PREPARE))
.build();
}
@@ -303,6 +304,13 @@ public final class PrepareParams {
: defaultValue;
}
+ private static boolean booleanValue(Inspector inspector, String fieldName) {
+ Inspector field = inspector.field(fieldName);
+ return field.valid()
+ ? field.asBool()
+ : false;
+ }
+
private static Duration getTimeout(Inspector params, Duration defaultTimeout) {
if(params.field("timeout").valid()) {
return Duration.ofSeconds(params.field("timeout").asLong());