- } catch {
- session.loggedIn = false;
- } finally {
- session.status = SessionStatus.VALIDATED;
- dispatch(authActions.UPDATE_SESSION(session));
+ };
+
+ let fail: Error | null = null;
+ const info = await getRemoteHostInfo(session.remoteHost);
+ if (info !== null) {
+ try {
+ const { user, token } = await validateCluster(info, session.token);
+ setupSession(info.baseUrl, user, token);
+ } catch (e) {
+ fail = new Error(`Getting current user for ${session.remoteHost}: ${e.message}`);
+ try {
+ const { user, token } = await validateCluster(info, activeSession.token);
+ setupSession(info.baseUrl, user, token);
+ fail = null;
+ } catch (e2) {
+ if (e.message === invalidV2Token) {
+ fail = new Error(`Getting current user for ${session.remoteHost}: ${e2.message}`);
+ }
+ }
+ }
+ } else {
+ fail = new Error(`Could not get config for ${session.remoteHost}`);