Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CD1D0108B5 for ; Wed, 17 Jul 2013 17:35:37 +0000 (UTC) Received: (qmail 27527 invoked by uid 500); 17 Jul 2013 17:35:10 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 27441 invoked by uid 500); 17 Jul 2013 17:35:10 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 26645 invoked by uid 99); 17 Jul 2013 17:35:00 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Jul 2013 17:35:00 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 750AD8AC53D; Wed, 17 Jul 2013 17:35:00 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: chipchilders@apache.org To: commits@cloudstack.apache.org Date: Wed, 17 Jul 2013 17:35:08 -0000 Message-Id: <720d75657d0b4346a475a5f0f9b7d1d8@git.apache.org> In-Reply-To: <3faeaf39edf94446882d887c431d21b9@git.apache.org> References: <3faeaf39edf94446882d887c431d21b9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [09/50] [abbrv] UserContext switched to CallContext. Added generic storage mechanism for other code to carry information throughout a call. Made the calling User and Account a must have. Added an interface to carry entities in error. Fixed up the cod http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/admin/ratelimit/ResetApiLimitCmd.java ---------------------------------------------------------------------- diff --git a/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/admin/ratelimit/ResetApiLimitCmd.java b/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/admin/ratelimit/ResetApiLimitCmd.java index 7ec5316..0fdf391 100644 --- a/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/admin/ratelimit/ResetApiLimitCmd.java +++ b/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/admin/ratelimit/ResetApiLimitCmd.java @@ -26,13 +26,14 @@ import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.AccountResponse; import org.apache.cloudstack.api.response.ApiLimitResponse; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.ratelimit.ApiRateLimitService; + import org.apache.log4j.Logger; import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.user.Account; -import com.cloud.user.UserContext; import javax.inject.Inject; @@ -84,7 +85,7 @@ public class ResetApiLimitCmd extends BaseCmd { @Override public long getEntityOwnerId() { - Account account = UserContext.current().getCaller(); + Account account = CallContext.current().getCallingAccount(); if (account != null) { return account.getId(); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/user/ratelimit/GetApiLimitCmd.java ---------------------------------------------------------------------- diff --git a/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/user/ratelimit/GetApiLimitCmd.java b/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/user/ratelimit/GetApiLimitCmd.java index ba92e8b..6add147 100644 --- a/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/user/ratelimit/GetApiLimitCmd.java +++ b/plugins/api/rate-limit/src/org/apache/cloudstack/api/command/user/ratelimit/GetApiLimitCmd.java @@ -31,10 +31,12 @@ import org.apache.cloudstack.api.command.admin.ratelimit.ResetApiLimitCmd; import org.apache.cloudstack.api.response.AccountResponse; import org.apache.cloudstack.api.response.ApiLimitResponse; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.response.ListResponse; +import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.ratelimit.ApiRateLimitService; import com.cloud.configuration.Config; @@ -45,7 +47,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.user.Account; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; import javax.inject.Inject; @@ -73,7 +74,7 @@ public class GetApiLimitCmd extends BaseCmd { @Override public long getEntityOwnerId() { - Account account = UserContext.current().getCaller(); + Account account = CallContext.current().getCallingAccount(); if (account != null) { return account.getId(); } @@ -87,7 +88,7 @@ public class GetApiLimitCmd extends BaseCmd { if ( !apiLimitEnabled ){ throw new ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, "This api is only available when api.throttling.enabled = true."); } - Account caller = UserContext.current().getCaller(); + Account caller = CallContext.current().getCallingAccount(); ApiLimitResponse response = _apiLimitService.searchApiLimit(caller); response.setResponseName(getCommandName()); response.setObjectName("apilimit"); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java b/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java index c321b22..15d553e 100755 --- a/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java +++ b/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java @@ -25,6 +25,7 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; import com.cloud.utils.component.AdapterBase; + import org.apache.cloudstack.api.commands.DedicateClusterCmd; import org.apache.cloudstack.api.commands.DedicateHostCmd; import org.apache.cloudstack.api.commands.DedicatePodCmd; @@ -41,6 +42,8 @@ import org.apache.cloudstack.api.response.DedicateClusterResponse; import org.apache.cloudstack.api.response.DedicateHostResponse; import org.apache.cloudstack.api.response.DedicatePodResponse; import org.apache.cloudstack.api.response.DedicateZoneResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -66,7 +69,6 @@ import com.cloud.host.dao.HostDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; -import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; @@ -107,7 +109,7 @@ public class DedicatedResourceManagerImpl implements DedicatedService { Long accountId = null; List hosts = null; if(accountName != null){ - Account caller = UserContext.current().getCaller(); + Account caller = CallContext.current().getCallingAccount(); Account owner = _accountMgr.finalizeOwner(caller, accountName, domainId, null); accountId = owner.getId(); } @@ -236,7 +238,7 @@ public class DedicatedResourceManagerImpl implements DedicatedService { public List dedicatePod(Long podId, Long domainId, String accountName) { Long accountId = null; if(accountName != null){ - Account caller = UserContext.current().getCaller(); + Account caller = CallContext.current().getCallingAccount(); Account owner = _accountMgr.finalizeOwner(caller, accountName, domainId, null); accountId = owner.getId(); } @@ -354,7 +356,7 @@ public class DedicatedResourceManagerImpl implements DedicatedService { Long accountId = null; List hosts = null; if(accountName != null){ - Account caller = UserContext.current().getCaller(); + Account caller = CallContext.current().getCallingAccount(); Account owner = _accountMgr.finalizeOwner(caller, accountName, domainId, null); accountId = owner.getId(); } @@ -456,7 +458,7 @@ public class DedicatedResourceManagerImpl implements DedicatedService { public List dedicateHost(Long hostId, Long domainId, String accountName) { Long accountId = null; if(accountName != null){ - Account caller = UserContext.current().getCaller(); + Account caller = CallContext.current().getCallingAccount(); Account owner = _accountMgr.finalizeOwner(caller, accountName, domainId, null); accountId = owner.getId(); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java ---------------------------------------------------------------------- diff --git a/plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java b/plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java index 58aae23..72890f2 100644 --- a/plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java +++ b/plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java @@ -22,17 +22,15 @@ import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.when; import java.io.IOException; +import java.util.UUID; import javax.inject.Inject; -import javax.naming.ConfigurationException; import junit.framework.Assert; -import org.apache.cloudstack.dedicated.DedicatedResourceManagerImpl; -import org.apache.cloudstack.test.utils.SpringUtils; import org.apache.log4j.Logger; +import org.junit.After; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; @@ -48,6 +46,10 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.apache.cloudstack.context.CallContext; +import org.apache.cloudstack.dedicated.DedicatedResourceManagerImpl; +import org.apache.cloudstack.test.utils.SpringUtils; + import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dc.DedicatedResourceVO; import com.cloud.dc.dao.ClusterDao; @@ -61,7 +63,7 @@ import com.cloud.host.dao.HostDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; -import com.cloud.user.UserContext; +import com.cloud.user.UserVO; import com.cloud.user.dao.AccountDao; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.exception.CloudRuntimeException; @@ -108,24 +110,26 @@ public class DedicatedApiUnitTest { private static long accountId = 5L; private static String accountName = "admin"; - @BeforeClass - public static void setUp() throws ConfigurationException { - - } - @Before - public void testSetUp() { + public void setUp() { ComponentContext.initComponentsLifeCycle(); AccountVO account = new AccountVO(accountName, domainId, "networkDomain", Account.ACCOUNT_TYPE_NORMAL, "uuid"); DomainVO domain = new DomainVO("rootDomain", 5L, 5L, "networkDomain"); - UserContext.registerContext(1, account, null, true); + UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString()); + + CallContext.register(user, account); when(_acctMgr.finalizeOwner((Account) anyObject(), anyString(), anyLong(), anyLong())).thenReturn(account); when(_accountDao.findByIdIncludingRemoved(0L)).thenReturn(account); when(_accountDao.findById(anyLong())).thenReturn(account); when(_domainDao.findById(domainId)).thenReturn(domain); } + @After + public void tearDown() { + CallContext.unregister(); + } + @Test(expected = InvalidParameterValueException.class) public void InvalidDomainIDForAccountTest() { _dedicatedService.dedicateZone(10L, domainId, accountName); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java ---------------------------------------------------------------------- diff --git a/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java b/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java index e519668..02124a2 100644 --- a/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java +++ b/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java @@ -16,8 +16,8 @@ // under the License. package org.apache.cloudstack.implicitplanner; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; @@ -30,15 +30,12 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.UUID; import javax.inject.Inject; -import javax.naming.ConfigurationException; -import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; -import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; -import org.apache.cloudstack.test.utils.SpringUtils; +import org.junit.After; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; @@ -54,6 +51,11 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.apache.cloudstack.context.CallContext; +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; +import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; +import org.apache.cloudstack.test.utils.SpringUtils; + import com.cloud.capacity.CapacityManager; import com.cloud.capacity.CapacityVO; import com.cloud.capacity.dao.CapacityDao; @@ -82,7 +84,7 @@ import com.cloud.storage.dao.VolumeDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; -import com.cloud.user.UserContext; +import com.cloud.user.UserVO; import com.cloud.utils.Pair; import com.cloud.utils.component.ComponentContext; import com.cloud.vm.UserVmVO; @@ -151,12 +153,8 @@ public class ImplicitPlannerTest { int ramInOffering = 512; AccountVO acct = new AccountVO(accountId); - @BeforeClass - public static void setUp() throws ConfigurationException { - } - @Before - public void testSetUp() { + public void setUp() { ComponentContext.initComponentsLifeCycle(); acct.setType(Account.ACCOUNT_TYPE_NORMAL); @@ -164,7 +162,14 @@ public class ImplicitPlannerTest { acct.setDomainId(domainId); acct.setId(accountId); - UserContext.registerContext(1, acct, null, true); + UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString()); + + CallContext.register(user, acct); + } + + @After + public void tearDown() { + CallContext.unregister(); } @Test http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java index 7c56a8a..04c9137 100755 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java @@ -30,6 +30,8 @@ import org.apache.cloudstack.api.response.PhysicalNetworkResponse; import org.apache.cloudstack.api.response.PodResponse; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.baremetal.database.BaremetalDhcpVO; @@ -41,7 +43,6 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.user.UserContext; @APICommand(name="addBaremetalDhcp", description="adds a baremetal dhcp server", responseObject = BaremetalDhcpResponse.class) public class AddBaremetalDhcpCmd extends BaseAsyncCmd { private static final String s_name = "addexternaldhcpresponse"; @@ -102,7 +103,7 @@ public class AddBaremetalDhcpCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } public Long getPodId() { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java index e1b39e9..49effca 100755 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java @@ -30,6 +30,8 @@ import org.apache.cloudstack.api.response.PhysicalNetworkResponse; import org.apache.cloudstack.api.response.PodResponse; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.baremetal.database.BaremetalPxeVO; @@ -40,7 +42,6 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.user.UserContext; public class AddBaremetalPxeCmd extends BaseAsyncCmd { private static final String s_name = "addexternalpxeresponse"; public static final Logger s_logger = Logger.getLogger(AddBaremetalPxeCmd.class); @@ -95,7 +96,7 @@ public class AddBaremetalPxeCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } public Long getPhysicalNetworkId() { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java index d79d41e..d313bfa 100644 --- a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java +++ b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java @@ -17,7 +17,6 @@ package com.cloud.hypervisor.vmware; -import static org.junit.Assert.*; import static org.mockito.Mockito.when; import java.io.IOException; @@ -28,12 +27,7 @@ import java.util.UUID; import javax.inject.Inject; import javax.naming.ConfigurationException; -import junit.framework.TestCase; - -import org.apache.cloudstack.api.command.admin.zone.AddVmwareDcCmd; -import org.apache.cloudstack.api.command.admin.zone.RemoveVmwareDcCmd; -import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; -import org.apache.cloudstack.test.utils.SpringUtils; +import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -41,7 +35,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.mockito.Spy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; @@ -54,13 +47,19 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.apache.cloudstack.api.command.admin.zone.AddVmwareDcCmd; +import org.apache.cloudstack.api.command.admin.zone.RemoveVmwareDcCmd; +import org.apache.cloudstack.context.CallContext; +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; +import org.apache.cloudstack.test.utils.SpringUtils; + import com.cloud.agent.AgentManager; import com.cloud.cluster.ClusterManager; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterDetailsVO; -import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.ClusterVO; +import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; import com.cloud.dc.dao.ClusterDao; @@ -77,7 +76,6 @@ import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao; import com.cloud.hypervisor.vmware.dao.LegacyZoneDao; import com.cloud.hypervisor.vmware.dao.VmwareDatacenterDao; import com.cloud.hypervisor.vmware.dao.VmwareDatacenterZoneMapDao; -import com.cloud.hypervisor.vmware.manager.VmwareManager; import com.cloud.hypervisor.vmware.manager.VmwareManagerImpl; import com.cloud.network.NetworkModel; import com.cloud.network.dao.CiscoNexusVSMDeviceDao; @@ -90,7 +88,7 @@ import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.AccountService; import com.cloud.user.AccountVO; -import com.cloud.user.UserContext; +import com.cloud.user.UserVO; import com.cloud.user.dao.AccountDao; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.exception.CloudRuntimeException; @@ -176,7 +174,10 @@ public class VmwareDatacenterApiUnitTest { acct.setType(Account.ACCOUNT_TYPE_ADMIN); acct.setAccountName("admin"); acct.setDomainId(domainId); - UserContext.registerContext(1, acct, null, true); + + UserVO user1 = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString()); + + CallContext.register(user1, acct); when(_accountDao.findByIdIncludingRemoved(0L)).thenReturn(acct); @@ -222,6 +223,11 @@ public class VmwareDatacenterApiUnitTest { Mockito.when(removeCmd.getZoneId()).thenReturn(1L); } + @After + public void tearDown() { + CallContext.unregister(); + } + //@Test(expected = InvalidParameterValueException.class) public void testAddVmwareDcToInvalidZone() throws ResourceInUseException, IllegalArgumentException, DiscoveryException, Exception { Mockito.when(addCmd.getZoneId()).thenReturn(2L); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java index 30f631d..a068d43 100644 --- a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java +++ b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java @@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; +import org.apache.cloudstack.context.CallContext; import com.cloud.api.response.BigSwitchVnsDeviceResponse; import com.cloud.exception.ConcurrentOperationException; @@ -34,7 +35,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.BigSwitchVnsDeviceVO; import com.cloud.network.element.BigSwitchVnsElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "addBigSwitchVnsDevice", responseObject=BigSwitchVnsDeviceResponse.class, description="Adds a BigSwitch VNS device", since = "4.1.0") @@ -96,7 +96,7 @@ public class AddBigSwitchVnsDeviceCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java index 9a7dc48..d7b6706 100644 --- a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java +++ b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java @@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; import com.cloud.api.response.BigSwitchVnsDeviceResponse; import com.cloud.exception.ConcurrentOperationException; @@ -33,7 +34,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.BigSwitchVnsElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "deleteBigSwitchVnsDevice", responseObject=SuccessResponse.class, description=" delete a bigswitch vns device", since = "4.1.0") @@ -86,7 +86,7 @@ public class DeleteBigSwitchVnsDeviceCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoAsa1000vResourceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoAsa1000vResourceCmd.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoAsa1000vResourceCmd.java index c880199..183b7ac 100755 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoAsa1000vResourceCmd.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoAsa1000vResourceCmd.java @@ -26,6 +26,8 @@ import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.ClusterResponse; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.api.response.CiscoAsa1000vResourceResponse; @@ -36,7 +38,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.cisco.CiscoAsa1000vDevice; import com.cloud.network.element.CiscoAsa1000vService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name="addCiscoAsa1000vResource", responseObject=CiscoAsa1000vResourceResponse.class, description="Adds a Cisco Asa 1000v appliance") @@ -111,6 +112,6 @@ public class AddCiscoAsa1000vResourceCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoVnmcResourceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoVnmcResourceCmd.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoVnmcResourceCmd.java index bfd6db9..0aeb863 100644 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoVnmcResourceCmd.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/AddCiscoVnmcResourceCmd.java @@ -25,6 +25,8 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.api.response.CiscoVnmcResourceResponse; @@ -35,7 +37,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.cisco.CiscoVnmcController; import com.cloud.network.element.CiscoVnmcElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name="addCiscoVnmcResource", responseObject=CiscoVnmcResourceResponse.class, description="Adds a Cisco Vnmc Controller") @@ -110,6 +111,6 @@ public class AddCiscoVnmcResourceCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoAsa1000vResourceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoAsa1000vResourceCmd.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoAsa1000vResourceCmd.java index d4f86fa..717ec60 100755 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoAsa1000vResourceCmd.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoAsa1000vResourceCmd.java @@ -25,6 +25,8 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.api.response.CiscoAsa1000vResourceResponse; @@ -34,7 +36,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.CiscoAsa1000vService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name="deleteCiscoAsa1000vResource", responseObject=SuccessResponse.class, description="Deletes a Cisco ASA 1000v appliance") @@ -87,7 +88,7 @@ public class DeleteCiscoAsa1000vResourceCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoVnmcResourceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoVnmcResourceCmd.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoVnmcResourceCmd.java index d2a3720..f175b71 100644 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoVnmcResourceCmd.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/api/commands/DeleteCiscoVnmcResourceCmd.java @@ -25,6 +25,8 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import com.cloud.api.response.CiscoVnmcResourceResponse; @@ -34,7 +36,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.CiscoVnmcElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name="deleteCiscoVnmcResource", responseObject=SuccessResponse.class, description="Deletes a Cisco Vnmc controller") @@ -87,7 +88,7 @@ public class DeleteCiscoVnmcResourceCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java index 553325c..de52c21 100644 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java @@ -28,7 +28,9 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; +import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice; + import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; @@ -117,7 +119,6 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; import com.cloud.user.Account; -import com.cloud.user.UserContext; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @@ -359,8 +360,8 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro } if (outsideIp == null) { // none available, acquire one try { - Account caller = UserContext.current().getCaller(); - long callerUserId = UserContext.current().getCallerUserId(); + Account caller = CallContext.current().getCallingAccount(); + long callerUserId = CallContext.current().getCallingUserId(); outsideIp = _networkMgr.allocateIp(owner, false, caller, callerUserId, zone); } catch (ResourceAllocationException e) { s_logger.error("Unable to allocate additional public Ip address. Exception details " + e); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index 5f603b3..9c34a8b 100644 --- a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -37,6 +37,7 @@ import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd; +import org.apache.cloudstack.context.CallContext; import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager.OnError; @@ -112,7 +113,6 @@ import com.cloud.storage.dao.VMTemplateDao; import com.cloud.user.Account; import com.cloud.user.AccountService; import com.cloud.user.User; -import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; @@ -656,11 +656,11 @@ ElasticLoadBalancerManager, VirtualMachineGuru { result = _lbMgr.createPublicLoadBalancer(lb.getXid(), lb.getName(), lb.getDescription(), lb.getSourcePortStart(), lb.getDefaultPortStart(), ipId.longValue(), lb.getProtocol(), - lb.getAlgorithm(), false, UserContext.current()); + lb.getAlgorithm(), false, CallContext.current()); } catch (NetworkRuleConflictException e) { s_logger.warn("Failed to create LB rule, not continuing with ELB deployment"); if (newIp) { - releaseIp(ipId, UserContext.current().getCallerUserId(), account); + releaseIp(ipId, CallContext.current().getCallingUserId(), account); } throw e; } @@ -674,7 +674,7 @@ ElasticLoadBalancerManager, VirtualMachineGuru { if (elbVm == null) { s_logger.warn("Failed to deploy a new ELB vm for ip " + ipAddr + " in network " + network + "lb name=" + lb.getName()); if (newIp) - releaseIp(ipId, UserContext.current().getCallerUserId(), account); + releaseIp(ipId, CallContext.current().getCallingUserId(), account); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java index 1670351..7960c22 100644 --- a/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java +++ b/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java @@ -21,9 +21,12 @@ import javax.inject.Inject; import org.apache.cloudstack.api.*; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.F5LoadBalancerResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -33,7 +36,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.dao.ExternalLoadBalancerDeviceVO; import com.cloud.network.element.F5ExternalLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "addF5LoadBalancer", responseObject=F5LoadBalancerResponse.class, description="Adds a F5 BigIP load balancer device") @@ -127,6 +129,6 @@ public class AddF5LoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java index 209a258..4b5f805 100644 --- a/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java +++ b/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java @@ -20,9 +20,12 @@ package com.cloud.api.commands; import javax.inject.Inject; import org.apache.cloudstack.api.*; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.F5LoadBalancerResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -32,7 +35,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.dao.ExternalLoadBalancerDeviceVO; import com.cloud.network.element.F5ExternalLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "configureF5LoadBalancer", responseObject=F5LoadBalancerResponse.class, description="configures a F5 load balancer device") @@ -105,6 +107,6 @@ public class ConfigureF5LoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java index 691643d..2c3b52f 100644 --- a/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java +++ b/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java @@ -22,7 +22,6 @@ import javax.inject.Inject; import org.apache.log4j.Logger; import org.apache.cloudstack.api.BaseAsyncCmd; - import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.BaseCmd; @@ -30,6 +29,8 @@ import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.F5LoadBalancerResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -38,7 +39,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.F5ExternalLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "deleteF5LoadBalancer", responseObject=SuccessResponse.class, description=" delete a F5 load balancer device") @@ -102,6 +102,6 @@ public class DeleteF5LoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java b/plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java index 5a1d56f..70dafa3 100644 --- a/plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java +++ b/plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java @@ -5,7 +5,7 @@ // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, @@ -23,7 +23,7 @@ import javax.inject.Inject; import junit.framework.TestCase; -import org.apache.cloudstack.network.lb.InternalLoadBalancerVMService; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -31,6 +31,9 @@ import org.mockito.Mockito; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.apache.cloudstack.context.CallContext; +import org.apache.cloudstack.network.lb.InternalLoadBalancerVMService; + import com.cloud.deploy.DeploymentPlan; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; @@ -48,13 +51,12 @@ import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; import com.cloud.user.User; import com.cloud.user.UserVO; +import com.cloud.user.dao.AccountDao; import com.cloud.utils.component.ComponentContext; import com.cloud.vm.DomainRouterVO; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.dao.DomainRouterDao; -import com.cloud.user.UserContext; -import com.cloud.user.dao.AccountDao; /** @@ -80,6 +82,7 @@ public class InternalLBVMServiceTest extends TestCase { long nonExistingVmId = 2L; long nonInternalLbVmId = 3L; + @Override @Before public void setUp() { //mock system offering creation as it's used by configure() method called by initComponentsLifeCycle @@ -94,7 +97,7 @@ public class InternalLBVMServiceTest extends TestCase { Mockito.when(_accountMgr.getSystemUser()).thenReturn(new UserVO(1)); Mockito.when(_accountMgr.getSystemAccount()).thenReturn(new AccountVO(2)); Mockito.when(_accountDao.findByIdIncludingRemoved(Mockito.anyLong())).thenReturn(new AccountVO(2)); - UserContext.registerContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false); + CallContext.register(_accountMgr.getSystemUser(), _accountMgr.getSystemAccount()); DomainRouterVO validVm = new DomainRouterVO(validVmId,off.getId(),1,"alena",1,HypervisorType.XenServer,1,1,1, @@ -136,6 +139,12 @@ public class InternalLBVMServiceTest extends TestCase { } + @Override + @After + public void tearDown() { + CallContext.unregister(); + } + //TESTS FOR START COMMAND http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/AddSrxFirewallCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/AddSrxFirewallCmd.java b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/AddSrxFirewallCmd.java index f5bb037..e3ca4ea 100644 --- a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/AddSrxFirewallCmd.java +++ b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/AddSrxFirewallCmd.java @@ -19,6 +19,7 @@ package com.cloud.api.commands; import javax.inject.Inject; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.ApiConstants; @@ -28,6 +29,8 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.SrxFirewallResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -37,7 +40,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.dao.ExternalFirewallDeviceVO; import com.cloud.network.element.JuniperSRXFirewallElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "addSrxFirewall", responseObject=SrxFirewallResponse.class, description="Adds a SRX firewall device") @@ -130,6 +132,6 @@ public class AddSrxFirewallCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/ConfigureSrxFirewallCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/ConfigureSrxFirewallCmd.java b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/ConfigureSrxFirewallCmd.java index 9bffee1..1f92b8e 100644 --- a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/ConfigureSrxFirewallCmd.java +++ b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/ConfigureSrxFirewallCmd.java @@ -27,6 +27,8 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.SrxFirewallResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +38,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.dao.ExternalFirewallDeviceVO; import com.cloud.network.element.JuniperSRXFirewallElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "configureSrxFirewall", responseObject=SrxFirewallResponse.class, description="Configures a SRX firewall device") @@ -109,6 +110,6 @@ public class ConfigureSrxFirewallCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/DeleteSrxFirewallCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/DeleteSrxFirewallCmd.java b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/DeleteSrxFirewallCmd.java index ce804a7..364195b 100644 --- a/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/DeleteSrxFirewallCmd.java +++ b/plugins/network-elements/juniper-srx/src/com/cloud/api/commands/DeleteSrxFirewallCmd.java @@ -28,6 +28,8 @@ import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.SrxFirewallResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +38,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.JuniperSRXFirewallElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "deleteSrxFirewall", responseObject=SuccessResponse.class, description=" delete a SRX firewall device") @@ -100,6 +101,6 @@ public class DeleteSrxFirewallCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/netscaler/src/com/cloud/api/commands/AddNetscalerLoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/netscaler/src/com/cloud/api/commands/AddNetscalerLoadBalancerCmd.java b/plugins/network-elements/netscaler/src/com/cloud/api/commands/AddNetscalerLoadBalancerCmd.java index e4327b4..d04a183 100644 --- a/plugins/network-elements/netscaler/src/com/cloud/api/commands/AddNetscalerLoadBalancerCmd.java +++ b/plugins/network-elements/netscaler/src/com/cloud/api/commands/AddNetscalerLoadBalancerCmd.java @@ -20,10 +20,12 @@ import com.cloud.event.EventTypes; import com.cloud.exception.*; import com.cloud.network.dao.ExternalLoadBalancerDeviceVO; import com.cloud.network.element.NetscalerLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; + import org.apache.cloudstack.api.*; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; +import org.apache.cloudstack.context.CallContext; + import org.apache.log4j.Logger; import javax.inject.Inject; @@ -143,6 +145,6 @@ public class AddNetscalerLoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/netscaler/src/com/cloud/api/commands/ConfigureNetscalerLoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/netscaler/src/com/cloud/api/commands/ConfigureNetscalerLoadBalancerCmd.java b/plugins/network-elements/netscaler/src/com/cloud/api/commands/ConfigureNetscalerLoadBalancerCmd.java index a04a48d..b6ce214 100644 --- a/plugins/network-elements/netscaler/src/com/cloud/api/commands/ConfigureNetscalerLoadBalancerCmd.java +++ b/plugins/network-elements/netscaler/src/com/cloud/api/commands/ConfigureNetscalerLoadBalancerCmd.java @@ -20,9 +20,12 @@ import javax.inject.Inject; import org.apache.cloudstack.api.*; import org.apache.cloudstack.api.response.PodResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.NetscalerLoadBalancerResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -32,7 +35,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.dao.ExternalLoadBalancerDeviceVO; import com.cloud.network.element.NetscalerLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "configureNetscalerLoadBalancer", responseObject=NetscalerLoadBalancerResponse.class, description="configures a netscaler load balancer device") @@ -129,6 +131,6 @@ public class ConfigureNetscalerLoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/netscaler/src/com/cloud/api/commands/DeleteNetscalerLoadBalancerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/netscaler/src/com/cloud/api/commands/DeleteNetscalerLoadBalancerCmd.java b/plugins/network-elements/netscaler/src/com/cloud/api/commands/DeleteNetscalerLoadBalancerCmd.java index 76f0273..bf6b22a 100644 --- a/plugins/network-elements/netscaler/src/com/cloud/api/commands/DeleteNetscalerLoadBalancerCmd.java +++ b/plugins/network-elements/netscaler/src/com/cloud/api/commands/DeleteNetscalerLoadBalancerCmd.java @@ -27,6 +27,8 @@ import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.NetscalerLoadBalancerResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -35,7 +37,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.NetscalerLoadBalancerElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "deleteNetscalerLoadBalancer", responseObject=SuccessResponse.class, description=" delete a netscaler load balancer device") @@ -100,6 +101,6 @@ public class DeleteNetscalerLoadBalancerCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java index 5b2dacf..7f0d87c 100644 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java @@ -20,9 +20,12 @@ import javax.inject.Inject; import org.apache.cloudstack.api.*; import org.apache.cloudstack.api.response.PhysicalNetworkResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.context.CallContext; + import com.cloud.api.response.NiciraNvpDeviceResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; @@ -32,7 +35,6 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.NiciraNvpDeviceVO; import com.cloud.network.element.NiciraNvpElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "addNiciraNvpDevice", responseObject=NiciraNvpDeviceResponse.class, description="Adds a Nicira NVP device") @@ -122,7 +124,7 @@ public class AddNiciraNvpDeviceCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java index 9ba1c83..948f1bf 100755 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java @@ -19,6 +19,7 @@ package com.cloud.api.commands; import javax.inject.Inject; import com.cloud.api.response.NiciraNvpDeviceResponse; + import org.apache.log4j.Logger; import org.apache.cloudstack.api.ApiConstants; @@ -29,6 +30,8 @@ import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.context.CallContext; + import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; @@ -36,7 +39,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.element.NiciraNvpElementService; -import com.cloud.user.UserContext; import com.cloud.utils.exception.CloudRuntimeException; @APICommand(name = "deleteNiciraNvpDevice", responseObject=SuccessResponse.class, description=" delete a nicira nvp device") @@ -90,7 +92,7 @@ public class DeleteNiciraNvpDeviceCmd extends BaseAsyncCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java b/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java index bbdf110..34246dd 100644 --- a/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java +++ b/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java @@ -20,9 +20,12 @@ import javax.ejb.Local; import javax.inject.Inject; import com.cloud.event.ActionEventUtils; + import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import org.apache.cloudstack.context.CallContext; + import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.deploy.DeployDestination; @@ -40,7 +43,6 @@ import com.cloud.network.dao.NetworkVO; import com.cloud.network.ovs.OvsTunnelManager; import com.cloud.offering.NetworkOffering; import com.cloud.user.Account; -import com.cloud.user.UserContext; import com.cloud.vm.ReservationContext; @Component @@ -100,7 +102,7 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru { throw new InsufficientVirtualNetworkCapcityException("Unable to allocate vnet as a part of network " + network + " implement ", DataCenter.class, dcId); } implemented.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(vnet)); - ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), 0); + ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), 0); } else { implemented.setBroadcastUri(network.getBroadcastUri()); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/AddSspCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/AddSspCmd.java b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/AddSspCmd.java index d42ee67..cc0a672 100644 --- a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/AddSspCmd.java +++ b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/AddSspCmd.java @@ -23,7 +23,9 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.response.SspResponse; import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.network.element.SspService; + import org.apache.log4j.Logger; import com.cloud.dc.dao.DataCenterDao; @@ -33,7 +35,6 @@ import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.host.Host; -import com.cloud.user.UserContext; @APICommand(name="addStratosphereSsp", responseObject=SspResponse.class, description="Adds stratosphere ssp server") @@ -70,7 +71,7 @@ public class AddSspCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/DeleteSspCmd.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/DeleteSspCmd.java b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/DeleteSspCmd.java index bfbd5d9..8278dd0 100644 --- a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/DeleteSspCmd.java +++ b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/api/commands/DeleteSspCmd.java @@ -24,7 +24,9 @@ import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.network.element.SspService; + import org.apache.log4j.Logger; import com.cloud.exception.ConcurrentOperationException; @@ -32,7 +34,6 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.user.UserContext; @APICommand(name="deleteStratosphereSsp", responseObject=SuccessResponse.class, description="Removes stratosphere ssp server") public class DeleteSspCmd extends BaseCmd { @@ -51,7 +52,7 @@ public class DeleteSspCmd extends BaseCmd { @Override public long getEntityOwnerId() { - return UserContext.current().getCaller().getId(); + return CallContext.current().getCallingAccount().getId(); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/agent/manager/AgentManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index b24a238..75a77f4 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -39,8 +39,11 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; -import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.log4j.Logger; + +import org.apache.cloudstack.context.ServerContexts; +import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; + import com.cloud.agent.AgentManager; import com.cloud.agent.Listener; import com.cloud.agent.StartupCommandProcessor; @@ -103,7 +106,6 @@ import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.resource.DummySecondaryStorageResource; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.user.AccountManager; -import com.cloud.utils.ActionDelegate; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.ManagerBase; @@ -760,7 +762,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl Host h = _resourceMgr.createHostAndAgent(host.getId(), resource, host.getDetails(), false, null, true); return (h == null ? false : true); } else { - _executor.execute(new SimulateStartTask(host.getId(), resource, host.getDetails(), null)); + _executor.execute(new SimulateStartTask(host.getId(), resource, host.getDetails())); return true; } } @@ -1112,17 +1114,16 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl ServerResource resource; Map details; long id; - ActionDelegate actionDelegate; - public SimulateStartTask(long id, ServerResource resource, Map details, ActionDelegate actionDelegate) { + public SimulateStartTask(long id, ServerResource resource, Map details) { this.id = id; this.resource = resource; this.details = details; - this.actionDelegate = actionDelegate; } @Override public void run() { + ServerContexts.registerSystemContext(); try { if (s_logger.isDebugEnabled()) { s_logger.debug("Simulating start for resource " + resource.getName() + " id " + id); @@ -1132,9 +1133,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl } catch (Exception e) { s_logger.warn("Unable to simulate start on resource " + id + " name " + resource.getName(), e); } finally { - if (actionDelegate != null) { - actionDelegate.action(new Long(id)); - } + ServerContexts.unregisterSystemContext(); } } } @@ -1152,15 +1151,20 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl @Override public void run() { - _request.logD("Processing the first command "); - StartupCommand[] startups = new StartupCommand[_cmds.length]; - for (int i = 0; i < _cmds.length; i++) { - startups[i] = (StartupCommand) _cmds[i]; - } + ServerContexts.registerSystemContext(); + try { + _request.logD("Processing the first command "); + StartupCommand[] startups = new StartupCommand[_cmds.length]; + for (int i = 0; i < _cmds.length; i++) { + startups[i] = (StartupCommand)_cmds[i]; + } - AgentAttache attache = handleConnectedAgent(_link, startups, _request); - if (attache == null) { - s_logger.warn("Unable to create attache for agent: " + _request); + AgentAttache attache = handleConnectedAgent(_link, startups, _request); + if (attache == null) { + s_logger.warn("Unable to create attache for agent: " + _request); + } + } finally { + ServerContexts.unregisterSystemContext(); } } }