aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-01-02 11:06:25 +0100
committerHarald Musum <musum@yahoo-inc.com>2017-01-02 11:06:25 +0100
commit8847d63b66998e46c98168e420243607039ee7dd (patch)
treed301ef735edbeaad0adf2b76a0e8ee19dd0e406f /configserver
parent25bf76b340b9bf108b1cdb2ede644d993aa3bc38 (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.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/SessionCreateResponse.java15
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandler.java2
-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.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareResponse.java12
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);
}