diff options
author | Harald Musum <musum@yahoo-inc.com> | 2016-12-09 14:38:20 +0100 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2016-12-09 14:38:20 +0100 |
commit | 21ef211263adaa197da80805318d85f3728b114d (patch) | |
tree | dcf88d0b3be4fc67130bc8b4e861f41448a8f297 /configserver | |
parent | 7d0a8de636b8ca5b1ebe4dfc54117cec90969cc7 (diff) |
Simplify and rename some methods
Diffstat (limited to 'configserver')
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) { |