Repository: lens Updated Branches: refs/heads/master ac2f6e884 -> 11885b981
LENS-1527 : Fix session restore issue Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/11885b98 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/11885b98 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/11885b98 Branch: refs/heads/master Commit: 11885b9812ecce9093c18259084de2c6c5ccbb02 Parents: ac2f6e8 Author: Rajitha R <rajit...@apache.org> Authored: Fri Aug 10 13:44:39 2018 +0530 Committer: Rajitha.R <rajit...@im0318-l0.corp.inmobi.com> Committed: Fri Aug 10 13:44:39 2018 +0530 ---------------------------------------------------------------------- .../lens/server/api/session/SessionService.java | 3 ++- .../org/apache/lens/server/BaseLensService.java | 18 ++++++++++++------ .../lens/server/session/HiveSessionService.java | 2 +- lens-server/src/test/resources/lens-site.xml | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/11885b98/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java ---------------------------------------------------------------------- diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java b/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java index d96d430..ccd2a3b 100644 --- a/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java +++ b/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java @@ -56,7 +56,8 @@ public interface SessionService { * @throws LensException the lens exception */ - void restoreSession(LensSessionHandle sessionHandle, String userName, String password) throws LensException; + void restoreSession(LensSessionHandle sessionHandle, String userName, String password, + Map<String, String> configuration) throws LensException; /** * Close session. http://git-wip-us.apache.org/repos/asf/lens/blob/11885b98/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java index 2598c2e..ebb3a95 100644 --- a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java +++ b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java @@ -254,21 +254,27 @@ public abstract class BaseLensService extends CompositeService implements Extern * @param password the password * @throws LensException the lens exception */ - public void restoreSession(LensSessionHandle sessionHandle, String userName, String password) throws LensException { + public void restoreSession(LensSessionHandle sessionHandle, String userName, String password, + Map<String, String> configuration) throws LensException { HandleIdentifier handleIdentifier = new HandleIdentifier(sessionHandle.getPublicId(), sessionHandle.getSecretId()); SessionHandle hiveSessionHandle = new SessionHandle(new TSessionHandle(handleIdentifier.toTHandleIdentifier())); try { cliService.createSessionWithSessionHandle(hiveSessionHandle, userName, password, - new HashMap<String, String>()); + new HashMap<>()); LensSessionHandle restoredSession = new LensSessionHandle(hiveSessionHandle.getHandleIdentifier().getPublicId(), hiveSessionHandle.getHandleIdentifier().getSecretId()); SESSION_MAP.put(restoredSession.getPublicId().toString(), restoredSession); - SessionUser sessionUser = SESSION_USER_INSTANCE_MAP.get(userName); + + String loggedinUser = userName; + if (configuration!= null) { + loggedinUser = configuration.getOrDefault(LensConfConstants.SESSION_LOGGEDIN_USER, userName); + } + SessionUser sessionUser = SESSION_USER_INSTANCE_MAP.get(loggedinUser); if (sessionUser == null) { - sessionUser = new SessionUser(userName); - SESSION_USER_INSTANCE_MAP.put(userName, sessionUser); + sessionUser = new SessionUser(loggedinUser); + SESSION_USER_INSTANCE_MAP.put(loggedinUser, sessionUser); } - updateSessionsPerUser(userName); + updateSessionsPerUser(loggedinUser); } catch (HiveSQLException e) { throw new LensException("Error restoring session " + sessionHandle, e); } http://git-wip-us.apache.org/repos/asf/lens/blob/11885b98/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java index d1ef716..f6d43d7 100644 --- a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java +++ b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java @@ -364,7 +364,7 @@ public class HiveSessionService extends BaseLensService implements SessionServic for (LensSessionImpl.LensSessionPersistInfo persistInfo : restorableSessions) { try { LensSessionHandle sessionHandle = persistInfo.getSessionHandle(); - restoreSession(sessionHandle, persistInfo.getUsername(), persistInfo.getPassword()); + restoreSession(sessionHandle, persistInfo.getUsername(), persistInfo.getPassword(), persistInfo.getConfig()); LensSessionImpl session = getSession(sessionHandle); session.getLensSessionPersistInfo().setLastAccessTime(persistInfo.getLastAccessTime()); session.getLensSessionPersistInfo().setConfig(persistInfo.getConfig()); http://git-wip-us.apache.org/repos/asf/lens/blob/11885b98/lens-server/src/test/resources/lens-site.xml ---------------------------------------------------------------------- diff --git a/lens-server/src/test/resources/lens-site.xml b/lens-server/src/test/resources/lens-site.xml index bc1e2bc..0010889 100644 --- a/lens-server/src/test/resources/lens-site.xml +++ b/lens-server/src/test/resources/lens-site.xml @@ -184,7 +184,7 @@ </property> <property> <name>lens.server.max.sessions.per.user</name> - <value>20</value> + <value>100</value> <description>Number of sessions can be allowed for each user.</description> </property> <property>