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>

Reply via email to