summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2016-12-09 14:38:20 +0100
committerHarald Musum <musum@yahoo-inc.com>2016-12-09 14:38:20 +0100
commit21ef211263adaa197da80805318d85f3728b114d (patch)
treedcf88d0b3be4fc67130bc8b4e861f41448a8f297 /configserver
parent7d0a8de636b8ca5b1ebe4dfc54117cec90969cc7 (diff)
Simplify and rename some methods
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/Utils.java25
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandler.java18
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentRequestV2.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java10
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java19
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenants.java13
10 files changed, 53 insertions, 55 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index b7843b90c6b..f46ed8b0aef 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -5,6 +5,7 @@ import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.Provisioner;
+import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.container.jdisc.HttpResponse;
@@ -17,6 +18,7 @@ import com.yahoo.vespa.config.server.application.TenantApplications;
import com.yahoo.vespa.config.server.deploy.Deployment;
import com.yahoo.vespa.config.server.http.ContentHandler;
import com.yahoo.vespa.config.server.http.NotFoundException;
+import com.yahoo.vespa.config.server.http.Utils;
import com.yahoo.vespa.config.server.http.v2.ApplicationContentRequest;
import com.yahoo.vespa.config.server.provision.HostProvisionerProvider;
import com.yahoo.vespa.config.server.session.LocalSession;
@@ -197,7 +199,9 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
}
public Tenant verifyTenantAndApplication(ApplicationId applicationId) {
- Tenant tenant = tenants.checkThatTenantExists(applicationId.tenant());
+ final TenantName tenantName = applicationId.tenant();
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
List<ApplicationId> applicationIds = listApplicationIds(tenant);
if (!applicationIds.contains(applicationId)) {
throw new IllegalArgumentException("No such application id: " + applicationId);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/Utils.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/Utils.java
index 95fe05ff31b..28730a08e56 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/Utils.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/Utils.java
@@ -43,35 +43,22 @@ public class Utils {
return request.getUri().getScheme() + "://" + request.getHost() + ":" + request.getPort() + pathPrefix;
}
- // Wrapper for getting the right exception if it fails
- public static Tenant checkThatTenantExists(Tenants tenants, TenantName tenantName) {
- try {
- return tenants.checkThatTenantExists(tenantName);
- } catch (IllegalArgumentException e) {
- throw new NotFoundException(e.getMessage());
- }
- }
-
- // Wrapper for getting the right exception if it fails
- public static void checkThatTenantDoesNotExist(Tenants tenants, TenantName tenant) {
- try {
- tenants.checkThatTenantDoesNotExist(tenant);
- } catch (IllegalArgumentException e) {
- throw new BadRequestException(e.getMessage());
- }
+ public static void checkThatTenantExists(Tenants tenants, TenantName tenantName) {
+ if ( ! tenants.checkThatTenantExists(tenantName))
+ throw new NotFoundException("Tenant '" + tenantName + "' was not found.");
}
- public static TenantName getTenantFromRequest(HttpRequest request) {
+ public static TenantName getTenantNameFromRequest(HttpRequest request) {
BindingMatch<?> bm = getBindingMatch(request, "http://*/application/v2/tenant/*");
return TenantName.from(bm.group(2));
}
- public static TenantName getTenantFromSessionRequest(HttpRequest request) {
+ public static TenantName getTenantNameFromSessionRequest(HttpRequest request) {
BindingMatch<?> bm = getBindingMatch(request, "http://*/application/v2/tenant/*/session*");
return TenantName.from(bm.group(2));
}
- public static TenantName getTenantFromApplicationsRequest(HttpRequest request) {
+ public static TenantName getTenantNameFromApplicationsRequest(HttpRequest request) {
BindingMatch<?> bm = getBindingMatch(request, "http://*/application/v2/tenant/*/application*");
return TenantName.from(bm.group(2));
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java
index 8b7c138642a..aaf10db3991 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java
@@ -37,7 +37,7 @@ public class ListApplicationsHandler extends HttpHandler {
@Override
public HttpResponse handleGET(HttpRequest request) {
- TenantName tenantName = Utils.getTenantFromApplicationsRequest(request);
+ TenantName tenantName = Utils.getTenantNameFromApplicationsRequest(request);
final String urlBase = Utils.getUrlBase(request, "/application/v2/tenant/" + tenantName + "/application/");
List<ApplicationId> applicationIds = listApplicationIds(tenantName);
@@ -51,7 +51,8 @@ public class ListApplicationsHandler extends HttpHandler {
}
private List<ApplicationId> listApplicationIds(TenantName tenantName) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, tenantName);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
TenantApplications applicationRepo = tenant.getApplicationRepo();
return applicationRepo.listApplications();
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java
index 5fafd42235f..135ddef4e6a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java
@@ -43,8 +43,9 @@ public class SessionActiveHandler extends SessionActiveHandlerBase {
@Override
protected HttpResponse handlePUT(HttpRequest request) {
TimeoutBudget timeoutBudget = getTimeoutBudget(request, SessionHandler.DEFAULT_ACTIVATE_TIMEOUT);
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromSessionRequest(request));
- TenantName tenantName = tenant.getName();
+ final TenantName tenantName = Utils.getTenantNameFromSessionRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
LocalSession localSession = applicationRepository.getLocalSession(tenant, getSessionIdV2(request));
activate(request, tenant.getLocalSessionRepo(), tenant.getActivateLock(), timeoutBudget, localSession);
return new SessionActiveResponse(localSession.getMetaData().getSlime(), tenantName, request, localSession, zone);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandler.java
index 1164b1b6fe1..7b55fdea11a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandler.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.config.server.http.v2;
import com.google.inject.Inject;
+import com.yahoo.config.provision.TenantName;
import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.container.logging.AccessLog;
@@ -37,22 +38,27 @@ public class SessionContentHandler extends SessionHandler {
@Override
public HttpResponse handleGET(HttpRequest request) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromSessionRequest(request));
- LocalSession session = applicationRepository.getLocalSession(tenant, getSessionIdV2(request));
+ LocalSession session = validateRequestAndGetSession(request);
return contentHandler.get(SessionContentRequestV2.create(request, session));
}
@Override
public HttpResponse handlePUT(HttpRequest request) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromSessionRequest(request));
- LocalSession session = applicationRepository.getLocalSession(tenant, getSessionIdV2(request));
+ LocalSession session = validateRequestAndGetSession(request);
return contentHandler.put(SessionContentRequestV2.create(request, session));
}
@Override
public HttpResponse handleDELETE(HttpRequest request) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromSessionRequest(request));
- LocalSession session = applicationRepository.getLocalSession(tenant, getSessionIdV2(request));
+ LocalSession session = validateRequestAndGetSession(request);
return contentHandler.delete(SessionContentRequestV2.create(request, session));
}
+
+ private LocalSession validateRequestAndGetSession(HttpRequest request) {
+ final TenantName tenantName = Utils.getTenantNameFromSessionRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
+ return applicationRepository.getLocalSession(tenant, getSessionIdV2(request));
+ }
+
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentRequestV2.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentRequestV2.java
index 1bdd37dd685..30af00dd4d1 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentRequestV2.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionContentRequestV2.java
@@ -27,7 +27,7 @@ class SessionContentRequestV2 extends ContentRequest {
}
static ContentRequest create(HttpRequest request, LocalSession session) {
- return new SessionContentRequestV2(request, session, Utils.getTenantFromSessionRequest(request));
+ return new SessionContentRequestV2(request, session, Utils.getTenantNameFromSessionRequest(request));
}
@Override
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java
index 9931383229b..e33cf6dcda0 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java
@@ -52,8 +52,9 @@ public class SessionCreateHandler extends SessionHandler {
@Override
protected HttpResponse handlePOST(HttpRequest request) {
Slime deployLog = createDeployLog();
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromSessionRequest(request));
- TenantName tenantName = tenant.getName();
+ final TenantName tenantName = Utils.getTenantNameFromSessionRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
final SessionCreate sessionCreate = new SessionCreate(tenant.getSessionFactory(), tenant.getLocalSessionRepo(),
new SessionCreateResponseV2(tenant, deployLog, deployLog.get()));
TimeoutBudget timeoutBudget = SessionHandler.getTimeoutBudget(request, Duration.ofSeconds(configserverConfig.zookeeper().barrierTimeout()));
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java
index b799cbf9457..9ae2966c425 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java
@@ -13,7 +13,6 @@ import com.yahoo.log.LogLevel;
import com.yahoo.slime.Slime;
import com.yahoo.vespa.config.server.ApplicationRepository;
import com.yahoo.vespa.config.server.application.ApplicationSet;
-import com.yahoo.vespa.config.server.http.NotFoundException;
import com.yahoo.vespa.config.server.tenant.Tenant;
import com.yahoo.vespa.config.server.tenant.Tenants;
import com.yahoo.vespa.config.server.application.TenantApplications;
@@ -121,11 +120,8 @@ public class SessionPrepareHandler extends SessionHandler {
}
private Tenant getExistingTenant(HttpRequest request) {
- TenantName tenant = Utils.getTenantFromSessionRequest(request);
- try {
- return tenants.checkThatTenantExists(tenant);
- } catch (IllegalArgumentException e) {
- throw new NotFoundException(e.getMessage());
- }
+ TenantName tenantName = Utils.getTenantNameFromSessionRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ return tenants.getTenant(tenantName);
}
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
index 7b3ec20825a..04cb9a038c5 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
@@ -51,8 +51,8 @@ public class TenantHandler extends HttpHandler {
* @return tenant name
*/
private TenantName getAndValidateTenantFromRequest(HttpRequest request) {
- final TenantName tenantName = Utils.getTenantFromRequest(request);
- Utils.checkThatTenantDoesNotExist(tenants, tenantName);
+ final TenantName tenantName = Utils.getTenantNameFromRequest(request);
+ checkThatTenantDoesNotExist(tenantName);
validateTenantName(tenantName);
return tenantName;
}
@@ -65,14 +65,16 @@ public class TenantHandler extends HttpHandler {
@Override
protected HttpResponse handleGET(HttpRequest request) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromRequest(request));
- return new TenantGetResponse(tenant.getName());
+ final TenantName tenantName = Utils.getTenantNameFromRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ return new TenantGetResponse(tenantName);
}
@Override
protected HttpResponse handleDELETE(HttpRequest request) {
- Tenant tenant = Utils.checkThatTenantExists(tenants, Utils.getTenantFromRequest(request));
- final TenantName tenantName = tenant.getName();
+ final TenantName tenantName = Utils.getTenantNameFromRequest(request);
+ Utils.checkThatTenantExists(tenants, tenantName);
+ Tenant tenant = tenants.getTenant(tenantName);
TenantApplications applicationRepo = tenant.getApplicationRepo();
final List<ApplicationId> activeApplications = applicationRepo.listApplications();
if (activeApplications.isEmpty()) {
@@ -88,4 +90,9 @@ public class TenantHandler extends HttpHandler {
return new TenantDeleteResponse(tenantName);
}
+ private void checkThatTenantDoesNotExist(TenantName tenantName) {
+ if (tenants.checkThatTenantExists(tenantName))
+ throw new BadRequestException("There already exists a tenant '" + tenantName + "'");
+ }
+
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenants.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenants.java
index dcc403b620f..42fce5e4d3b 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenants.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenants.java
@@ -345,17 +345,12 @@ public class Tenants implements ConnectionStateListener, PathChildrenCacheListen
}
}
- public void checkThatTenantDoesNotExist(TenantName tenant) {
- if (tenantsCopy().containsKey(tenant)) {
- throw new IllegalArgumentException("There already exists a tenant '" + tenant + "'");
- }
+ public boolean checkThatTenantExists(TenantName tenant) {
+ return tenantsCopy().containsKey(tenant);
}
- public Tenant checkThatTenantExists(TenantName tenant) {
- if ( ! tenantsCopy().containsKey(tenant)) {
- throw new IllegalArgumentException("Tenant '" + tenant + "' was not found.");
- }
- return tenantsCopy().get(tenant);
+ public Tenant getTenant(TenantName tenantName) {
+ return tenantsCopy().get(tenantName);
}
private static int redeployProgress(Tenant tenant, int applicationsRedeployed, int totalNumberOfApplications) {