From da26302049f48839dc364eefd32cd5597ac05bdc Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Wed, 8 Aug 2012 11:13:30 -0700 Subject: [PATCH] Initialize user context from AccountManager Conflicts: server/src/com/cloud/configuration/DefaultComponentLibrary.java server/src/com/cloud/network/vpc/VpcManagerImpl.java --- api/src/com/cloud/user/UserContext.java | 15 ++++++++------- server/src/com/cloud/user/AccountManagerImpl.java | 3 +++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java index b140728e596..ed33e88d027 100644 --- a/api/src/com/cloud/user/UserContext.java +++ b/api/src/com/cloud/user/UserContext.java @@ -16,14 +16,11 @@ // under the License. package com.cloud.user; -import com.cloud.server.ManagementService; -import com.cloud.utils.component.ComponentLocator; public class UserContext { private static ThreadLocal s_currentContext = new ThreadLocal(); - private static final ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name); - private static final AccountService _accountMgr = locator.getManager(AccountService.class); + private static UserContext s_adminContext = null; private long userId; private String sessionId; @@ -33,9 +30,7 @@ public class UserContext { private String eventDetails; private boolean apiServer; - - private static UserContext s_adminContext = new UserContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false); - + public UserContext() { } @@ -134,4 +129,10 @@ public class UserContext { public String getEventDetails() { return eventDetails; } + + public static synchronized void setAdminContext(UserContext adminContext) { + if (adminContext == null) { + UserContext.s_adminContext = adminContext; + } + } } diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 0a11dc4d884..16314829296 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -239,6 +239,9 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag if (_userAuthenticators == null || !_userAuthenticators.isSet()) { s_logger.error("Unable to find an user authenticator."); } + + //initialize admin context + UserContext.setAdminContext(new UserContext(getSystemUser().getId(), getSystemAccount(), null, false)); return true; }