diff options
author | Harald Musum <musum@yahoo-inc.com> | 2017-01-02 11:06:25 +0100 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2017-01-02 11:06:25 +0100 |
commit | 8847d63b66998e46c98168e420243607039ee7dd (patch) | |
tree | d301ef735edbeaad0adf2b76a0e8ee19dd0e406f /configserver | |
parent | 25bf76b340b9bf108b1cdb2ede644d993aa3bc38 (diff) |
Refactor session create response
* Remove unnecessary interface
* Use tenant name instead of tenant instance
* Use session id instead of Session
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreate.java | 2 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreateResponse.java | 15 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java | 2 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponse.java (renamed from configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponseV2.java) | 21 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandler.java | 14 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java | 12 |
6 files changed, 26 insertions, 40 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreate.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreate.java index 0cac2a223aa..402c323d547 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreate.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreate.java @@ -11,6 +11,7 @@ import com.yahoo.io.IOUtils; import com.yahoo.log.LogLevel; import com.yahoo.slime.Slime; import com.yahoo.vespa.config.server.TimeoutBudget; +import com.yahoo.vespa.config.server.http.v2.SessionCreateResponse; import com.yahoo.vespa.config.server.session.LocalSession; import com.yahoo.vespa.config.server.session.LocalSessionRepo; import com.yahoo.vespa.config.server.session.SessionFactory; @@ -21,7 +22,6 @@ import java.io.IOException; /** * Creates a session from an application package, * or creates a new session from a previous session (with id or the "active" session). - * Handles /application/v2 requests * * @author lulf * @author hmusum diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreateResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreateResponse.java deleted file mode 100644 index c3fc33bcbd6..00000000000 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreateResponse.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.config.server.http; - -import com.yahoo.container.jdisc.HttpResponse; - -/** - * Interface for creating responses for SessionCreateHandler. - * - * @author hmusum - * @since 5.1.27 - */ -public interface SessionCreateResponse { - - public HttpResponse createResponse(String hostName, int port, long sessionId); -} 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 6dabc04cff2..d21d2c613bd 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 @@ -56,7 +56,7 @@ public class SessionCreateHandler extends SessionHandler { Utils.checkThatTenantExists(tenants, tenantName); Tenant tenant = tenants.getTenant(tenantName); final SessionCreate sessionCreate = new SessionCreate(tenant.getSessionFactory(), tenant.getLocalSessionRepo(), - new SessionCreateResponseV2(tenant, deployLog, deployLog.get())); + new SessionCreateResponse(tenantName, deployLog, deployLog.get())); TimeoutBudget timeoutBudget = SessionHandler.getTimeoutBudget(request, zookeeperBarrierTimeout); if (request.hasProperty("from")) { LocalSession fromSession = getExistingSession(tenant, request); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponseV2.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponse.java index 22ca1a8fe70..b9909b494f5 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponseV2.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateResponse.java @@ -1,37 +1,34 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.http.v2; +import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.slime.Cursor; import com.yahoo.slime.Slime; -import com.yahoo.vespa.config.server.http.SessionCreateResponse; import com.yahoo.vespa.config.server.http.SessionResponse; -import com.yahoo.vespa.config.server.tenant.Tenant; /** - * Creates a response for SessionCreateHandler (v2). + * Creates a response for SessionCreateHandler. * * @author hmusum * @since 5.1.27 */ -public class SessionCreateResponseV2 extends SessionResponse implements SessionCreateResponse { - private final Tenant tenant; +public class SessionCreateResponse extends SessionResponse { + private final TenantName tenantName; - public SessionCreateResponseV2(Tenant tenant, Slime deployLog, Cursor root) { + public SessionCreateResponse(TenantName tenantName, Slime deployLog, Cursor root) { super(deployLog, root); - this.tenant = tenant; + this.tenantName = tenantName; } - @Override public HttpResponse createResponse(String hostName, int port, long sessionId) { - String tenantName = tenant.getName().value(); - String path = "http://" + hostName + ":" + port + "/application/v2/tenant/" + tenantName + "/session/" + sessionId; + String path = "http://" + hostName + ":" + port + "/application/v2/tenant/" + tenantName.value() + "/session/" + sessionId; - this.root.setString("tenant", tenantName); + this.root.setString("tenant", tenantName.value()); this.root.setString("session-id", Long.toString(sessionId)); this.root.setString("prepared", path + "/prepared"); this.root.setString("content", path + "/content/"); - this.root.setString("message", "Session " + sessionId + " for tenant '" + tenantName + "' created."); + this.root.setString("message", "Session " + sessionId + " for tenant '" + tenantName.value() + "' created."); return this; } } 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 639df1fbffb..835e2c8d131 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,16 +13,19 @@ 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.application.TenantApplications; +import com.yahoo.vespa.config.server.session.LocalSession; +import com.yahoo.vespa.config.server.session.PrepareParams; +import com.yahoo.vespa.config.server.session.RemoteSession; +import com.yahoo.vespa.config.server.session.Session; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.Tenants; -import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; import com.yahoo.vespa.config.server.configchange.RefeedActions; import com.yahoo.vespa.config.server.configchange.RefeedActionsFormatter; import com.yahoo.vespa.config.server.configchange.RestartActionsFormatter; import com.yahoo.vespa.config.server.http.SessionHandler; import com.yahoo.vespa.config.server.http.Utils; -import com.yahoo.vespa.config.server.session.*; import java.time.Duration; import java.util.Optional; @@ -69,13 +72,13 @@ public class SessionPrepareHandler extends SessionHandler { // An app id currently using only the name ApplicationId appId = prepareParams.getApplicationId(); DeployLogger logger = createLogger(rawDeployLog, verbose, appId); - ConfigChangeActions actions = session.prepare(logger, + ConfigChangeActions actions = session.prepare(logger, prepareParams, getCurrentActiveApplicationSet(tenant, appId), tenant.getPath()); logConfigChangeActions(actions, logger); log.log(LogLevel.INFO, Tenants.logPre(appId) + "Session " + sessionId + " prepared successfully. "); - return new SessionPrepareResponse(rawDeployLog, tenant, request, session, actions); + return new SessionPrepareResponse(rawDeployLog, tenantName, request, sessionId, actions); } private static void logConfigChangeActions(ConfigChangeActions actions, DeployLogger logger) { @@ -97,7 +100,8 @@ public class SessionPrepareHandler extends SessionHandler { RemoteSession session = applicationRepository.getRemoteSession(tenant, getSessionIdV2(request)); validateThatSessionIsNotActive(session); validateThatSessionIsPrepared(session); - return new SessionPrepareResponse(createDeployLog(), tenant, request, session, new ConfigChangeActions()); + long sessionId = getSessionIdV2(request); + return new SessionPrepareResponse(createDeployLog(), tenant.getName(), request, sessionId, new ConfigChangeActions()); } private void validateThatSessionIsNotActive(Session session) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java index bf4db5524f3..84a2a50d12e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java @@ -1,13 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.http.v2; +import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.slime.Slime; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; import com.yahoo.vespa.config.server.configchange.ConfigChangeActionsSlimeConverter; import com.yahoo.vespa.config.server.http.SessionResponse; -import com.yahoo.vespa.config.server.session.Session; -import com.yahoo.vespa.config.server.tenant.Tenant; /** * Creates a response for SessionPrepareHandler. @@ -17,11 +16,12 @@ import com.yahoo.vespa.config.server.tenant.Tenant; */ class SessionPrepareResponse extends SessionResponse { - public SessionPrepareResponse(Slime deployLog, Tenant tenant, HttpRequest request, Session session, ConfigChangeActions actions) { + public SessionPrepareResponse(Slime deployLog, TenantName tenantName, HttpRequest request, long sessionId, ConfigChangeActions actions) { super(deployLog, deployLog.get()); - String message = "Session " + session.getSessionId() + " for tenant '" + tenant.getName() + "' prepared."; - this.root.setString("tenant", tenant.getName().value()); - this.root.setString("activate", "http://" + request.getHost() + ":" + request.getPort() + "/application/v2/tenant/" + tenant.getName() + "/session/" + session.getSessionId() + "/active"); + String message = "Session " + sessionId + " for tenant '" + tenantName.value() + "' prepared."; + this.root.setString("tenant", tenantName.value()); + this.root.setString("activate", "http://" + request.getHost() + ":" + request.getPort() + + "/application/v2/tenant/" + tenantName.value() + "/session/" + sessionId + "/active"); root.setString("message", message); new ConfigChangeActionsSlimeConverter(actions).toSlime(root); } |