You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/07/16 20:24:24 UTC
[01/12] git commit: updated refs/heads/master to aa13152
Updated Branches:
refs/heads/master fa9ca72f3 -> aa131525b
Added missing files
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/aa131525
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/aa131525
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/aa131525
Branch: refs/heads/master
Commit: aa131525babb5079de50c5b99e24f2dd9b45a4ad
Parents: 11e1e58
Author: ahuang <al...@citrix.com>
Authored: Tue Jul 16 02:41:33 2013 -0700
Committer: ahuang <al...@citrix.com>
Committed: Tue Jul 16 11:24:21 2013 -0700
----------------------------------------------------------------------
.../cloudstack/context/ServerContexts.java | 66 ++++++++++++++++++++
utils/src/com/cloud/utils/UuidUtils.java | 23 +++++++
.../com/cloud/utils/exception/ErrorContext.java | 28 +++++++++
3 files changed, 117 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa131525/engine/components-api/src/org/apache/cloudstack/context/ServerContexts.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/org/apache/cloudstack/context/ServerContexts.java b/engine/components-api/src/org/apache/cloudstack/context/ServerContexts.java
new file mode 100644
index 0000000..006ba2b
--- /dev/null
+++ b/engine/components-api/src/org/apache/cloudstack/context/ServerContexts.java
@@ -0,0 +1,66 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// 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,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.context;
+
+import com.cloud.async.AsyncJob;
+import com.cloud.utils.db.Transaction;
+
+/**
+ * ServerContextInitializer is responsible for properly setting up the
+ * contexts that all of the CloudStack code expects. This includes
+ * - CallContext
+ * - JobContext
+ * - TransactionContext
+ */
+public class ServerContexts {
+ public static void registerUserContext(long userId, long accountId) {
+ Transaction txn = Transaction.open(Thread.currentThread().getName());
+ CallContext context = CallContext.register(userId, accountId);
+ context.putContextParameter("Transaction", txn);
+// AsyncJobExecutionContext.registerPseudoExecutionContext(userId, accountId);
+ }
+
+ public static void unregisterUserContext() {
+ CallContext context = CallContext.unregister();
+ if (context != null) {
+// AsyncJobExecutionContext.unregister();
+ Transaction txn = (Transaction)context.getContextParameter("Transaction");
+ txn.close(Thread.currentThread().getName());
+ }
+ }
+
+ /**
+ * Use this method to initialize the internal background threads.
+ */
+ public static void registerSystemContext() {
+ Transaction txn = Transaction.open(Thread.currentThread().getName());
+ CallContext context = CallContext.registerSystemCallContextOnceOnly();
+ context.putContextParameter("Transaction", txn);
+// AsyncJobExecutionContext.registerPseudoExecutionContext(Account.ACCOUNT_ID_SYSTEM, User.UID_SYSTEM);
+ }
+
+ public static void unregisterSystemContext() {
+ CallContext context = CallContext.unregister();
+// AsyncJobExecutionContext.unregister();
+ Transaction txn = (Transaction)context.getContextParameter("Transaction");
+ txn.close(Thread.currentThread().getName());
+ }
+
+ public static void registerJobContext(long userId, long accountId, AsyncJob job) {
+ CallContext.register(userId, accountId);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa131525/utils/src/com/cloud/utils/UuidUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/UuidUtils.java b/utils/src/com/cloud/utils/UuidUtils.java
new file mode 100644
index 0000000..7831bea
--- /dev/null
+++ b/utils/src/com/cloud/utils/UuidUtils.java
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// 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,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.utils;
+
+public class UuidUtils {
+ public final static String first(String uuid) {
+ return uuid.substring(0, uuid.indexOf('-'));
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa131525/utils/src/com/cloud/utils/exception/ErrorContext.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/exception/ErrorContext.java b/utils/src/com/cloud/utils/exception/ErrorContext.java
new file mode 100644
index 0000000..7680a88
--- /dev/null
+++ b/utils/src/com/cloud/utils/exception/ErrorContext.java
@@ -0,0 +1,28 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// 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,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.utils.exception;
+
+import java.util.List;
+
+import com.cloud.utils.Pair;
+
+public interface ErrorContext {
+
+ ErrorContext add(Class<?> entity, String uuid);
+
+ List<Pair<Class<?>, String>> getEntitiesInError();
+}
[02/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/vpc/NetworkACLServiceTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/NetworkACLServiceTest.java b/server/test/com/cloud/vpc/NetworkACLServiceTest.java
index e71fabf..b2588aa 100644
--- a/server/test/com/cloud/vpc/NetworkACLServiceTest.java
+++ b/server/test/com/cloud/vpc/NetworkACLServiceTest.java
@@ -15,23 +15,15 @@
package com.cloud.vpc;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.network.NetworkManager;
-import com.cloud.network.NetworkModel;
-import com.cloud.network.dao.NetworkDao;
-import com.cloud.network.vpc.*;
-import com.cloud.network.vpc.dao.NetworkACLDao;
-import com.cloud.network.vpc.dao.VpcGatewayDao;
-import com.cloud.tags.dao.ResourceTagDao;
-import com.cloud.user.Account;
-import com.cloud.user.AccountManager;
-import com.cloud.user.AccountVO;
-import com.cloud.user.UserContext;
-import com.cloud.utils.component.ComponentContext;
+import java.io.IOException;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
import junit.framework.TestCase;
-import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd;
-import org.apache.cloudstack.test.utils.SpringUtils;
+
import org.apache.log4j.Logger;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -47,9 +39,31 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.UUID;
+import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.test.utils.SpringUtils;
+
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.vpc.NetworkACLItem;
+import com.cloud.network.vpc.NetworkACLItemDao;
+import com.cloud.network.vpc.NetworkACLItemVO;
+import com.cloud.network.vpc.NetworkACLManager;
+import com.cloud.network.vpc.NetworkACLService;
+import com.cloud.network.vpc.NetworkACLServiceImpl;
+import com.cloud.network.vpc.NetworkACLVO;
+import com.cloud.network.vpc.VpcManager;
+import com.cloud.network.vpc.VpcVO;
+import com.cloud.network.vpc.dao.NetworkACLDao;
+import com.cloud.network.vpc.dao.VpcGatewayDao;
+import com.cloud.tags.dao.ResourceTagDao;
+import com.cloud.user.Account;
+import com.cloud.user.AccountManager;
+import com.cloud.user.AccountVO;
+import com.cloud.user.UserVO;
+import com.cloud.utils.component.ComponentContext;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
@@ -74,11 +88,14 @@ public class NetworkACLServiceTest extends TestCase{
private static final Logger s_logger = Logger.getLogger( NetworkACLServiceTest.class);
+ @Override
@Before
public void setUp() {
ComponentContext.initComponentsLifeCycle();
Account account = new AccountVO("testaccount", 1, "testdomain", (short) 0, UUID.randomUUID().toString());
- UserContext.registerContext(1, account, null, true);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
createACLItemCmd = new CreateNetworkACLCmd(){
@Override
@@ -118,6 +135,12 @@ public class NetworkACLServiceTest extends TestCase{
};
}
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testCreateACL() throws Exception {
Mockito.when(_vpcMgr.getVpc(Mockito.anyLong())).thenReturn(new VpcVO());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/vpc/VpcTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/VpcTest.java b/server/test/com/cloud/vpc/VpcTest.java
index 52e837e..24c011b 100644
--- a/server/test/com/cloud/vpc/VpcTest.java
+++ b/server/test/com/cloud/vpc/VpcTest.java
@@ -15,6 +15,33 @@
package com.cloud.vpc;
+import java.io.IOException;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.FilterType;
+import org.springframework.core.type.classreading.MetadataReader;
+import org.springframework.core.type.classreading.MetadataReaderFactory;
+import org.springframework.core.type.filter.TypeFilter;
+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.test.utils.SpringUtils;
+
import com.cloud.configuration.ConfigurationManager;
import com.cloud.configuration.dao.ConfigurationDao;
import com.cloud.dc.dao.DataCenterDao;
@@ -27,7 +54,12 @@ import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.Site2SiteVpnGatewayDao;
-import com.cloud.network.vpc.*;
+import com.cloud.network.vpc.NetworkACLManager;
+import com.cloud.network.vpc.Vpc;
+import com.cloud.network.vpc.VpcManager;
+import com.cloud.network.vpc.VpcOfferingVO;
+import com.cloud.network.vpc.VpcService;
+import com.cloud.network.vpc.VpcVO;
import com.cloud.network.vpc.dao.PrivateIpDao;
import com.cloud.network.vpc.dao.StaticRouteDao;
import com.cloud.network.vpc.dao.VpcDao;
@@ -43,34 +75,10 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
+import com.cloud.user.UserVO;
import com.cloud.utils.component.ComponentContext;
import com.cloud.vm.dao.DomainRouterDao;
-import junit.framework.TestCase;
-import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd;
-import org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd;
-import org.apache.cloudstack.test.utils.SpringUtils;
-import org.apache.log4j.Logger;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
-import org.springframework.core.type.classreading.MetadataReader;
-import org.springframework.core.type.classreading.MetadataReaderFactory;
-import org.springframework.core.type.filter.TypeFilter;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.UUID;
-
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public class VpcTest extends TestCase {
@@ -93,14 +101,23 @@ public class VpcTest extends TestCase {
private VpcVO vpc;
private static final Logger s_logger = Logger.getLogger(VpcTest.class);
+ @Override
@Before
public void setUp() {
ComponentContext.initComponentsLifeCycle();
Account account = new AccountVO("testaccount", 1, "testdomain", (short) 0, UUID.randomUUID().toString());
- UserContext.registerContext(1, account, null, true);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
vpc = new VpcVO(1, "myvpc", "myvpc", 2, 1, 1, "10.0.1.0/16", "mydomain");
}
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testCreateVpc() throws Exception {
Mockito.when(
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java b/server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
index 8c1c114..d62b4ff 100644
--- a/server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
+++ b/server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
@@ -17,7 +17,6 @@
package org.apache.cloudstack.affinity;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyObject;
@@ -28,13 +27,12 @@ import static org.mockito.Mockito.when;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.UUID;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
-import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
-import org.apache.cloudstack.test.utils.SpringUtils;
+import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -52,8 +50,13 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.cloud.dc.dao.DedicatedResourceDao;
-import com.cloud.event.ActionEventUtils;
+import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
+import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.test.utils.SpringUtils;
+
+import com.cloud.dc.dao.DedicatedResourceDao;
+import com.cloud.event.ActionEventUtils;
import com.cloud.event.EventVO;
import com.cloud.event.dao.EventDao;
import com.cloud.exception.InvalidParameterValueException;
@@ -63,14 +66,12 @@ 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.user.dao.UserDao;
import com.cloud.utils.component.ComponentContext;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine;
-import com.cloud.user.dao.UserDao;
import com.cloud.vm.dao.UserVmDao;
@RunWith(SpringJUnit4ClassRunner.class)
@@ -115,18 +116,20 @@ public class AffinityApiUnitTest {
@BeforeClass
- public static void setUp() throws ConfigurationException {
+ public static void setUpClass() throws ConfigurationException {
}
@Before
- public void testSetUp() {
+ public void setUp() {
ComponentContext.initComponentsLifeCycle();
AccountVO acct = new AccountVO(200L);
acct.setType(Account.ACCOUNT_TYPE_NORMAL);
acct.setAccountName("user");
acct.setDomainId(domainId);
- UserContext.registerContext(1, acct, null, true);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, acct);
when(_acctMgr.finalizeOwner((Account) anyObject(), anyString(), anyLong(), anyLong())).thenReturn(acct);
when(_processor.getType()).thenReturn("mock");
@@ -141,6 +144,11 @@ public class AffinityApiUnitTest {
Mockito.when(_eventDao.persist(Mockito.any(EventVO.class))).thenReturn(new EventVO());
}
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void createAffinityGroupTest() {
when(_groupDao.isNameInUse(anyLong(), anyLong(), eq("group1"))).thenReturn(false);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/lb/ApplicationLoadBalancerTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/lb/ApplicationLoadBalancerTest.java b/server/test/org/apache/cloudstack/lb/ApplicationLoadBalancerTest.java
index 461cbbd..bd2374f 100644
--- a/server/test/org/apache/cloudstack/lb/ApplicationLoadBalancerTest.java
+++ b/server/test/org/apache/cloudstack/lb/ApplicationLoadBalancerTest.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,
@@ -24,9 +24,7 @@ import javax.inject.Inject;
import junit.framework.TestCase;
-import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
-import org.apache.cloudstack.network.lb.ApplicationLoadBalancerManagerImpl;
-import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,6 +32,11 @@ 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.lb.dao.ApplicationLoadBalancerRuleDao;
+import org.apache.cloudstack.network.lb.ApplicationLoadBalancerManagerImpl;
+import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
+
import com.cloud.event.dao.UsageEventDao;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
@@ -53,7 +56,6 @@ import com.cloud.network.rules.FirewallRuleVO;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.exception.CloudRuntimeException;
@@ -94,6 +96,7 @@ public class ApplicationLoadBalancerTest extends TestCase{
+ @Override
@Before
public void setUp() {
ComponentContext.initComponentsLifeCycle();
@@ -133,7 +136,7 @@ public class ApplicationLoadBalancerTest extends TestCase{
Mockito.when(_accountMgr.getSystemUser()).thenReturn(new UserVO(1));
Mockito.when(_accountMgr.getSystemAccount()).thenReturn(new AccountVO(2));
- UserContext.registerContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
+ CallContext.register(_accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
Mockito.when(_ntwkModel.areServicesSupportedInNetwork(Mockito.anyLong(), Mockito.any(Network.Service.class))).thenReturn(true);
@@ -146,6 +149,12 @@ public class ApplicationLoadBalancerTest extends TestCase{
}
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
/**
* TESTS FOR .getApplicationLoadBalancer
*/
@@ -165,7 +174,7 @@ public class ApplicationLoadBalancerTest extends TestCase{
try {
rule = _appLbSvc.getApplicationLoadBalancer(nonExistingLbId);
if (rule != null) {
- notFound = false;
+ notFound = false;
}
} catch (InvalidParameterValueException ex) {
notFound = true;
@@ -182,11 +191,11 @@ public class ApplicationLoadBalancerTest extends TestCase{
@Test
//Positive test - delete existing lb
public void deleteExistingLoadBalancer() {
- boolean result = false;
+ boolean result = false;
try {
result = _appLbSvc.deleteApplicationLoadBalancer(existingLbId);
} finally {
- assertTrue("Couldn't delete existing application load balancer", result);
+ assertTrue("Couldn't delete existing application load balancer", result);
}
}
@@ -204,17 +213,17 @@ public class ApplicationLoadBalancerTest extends TestCase{
/**
* TESTS FOR .createApplicationLoadBalancer
- * @throws NetworkRuleConflictException
- * @throws InsufficientVirtualNetworkCapcityException
- * @throws InsufficientAddressCapacityException
+ * @throws NetworkRuleConflictException
+ * @throws InsufficientVirtualNetworkCapcityException
+ * @throws InsufficientAddressCapacityException
*/
@Test (expected = CloudRuntimeException.class)
//Positive test
public void createValidLoadBalancer() throws InsufficientAddressCapacityException,
- InsufficientVirtualNetworkCapcityException, NetworkRuleConflictException {
+ InsufficientVirtualNetworkCapcityException, NetworkRuleConflictException {
_appLbSvc.createApplicationLoadBalancer("alena", "alena", Scheme.Internal, validGuestNetworkId, validRequestedIp,
- 22, 22, "roundrobin", validGuestNetworkId, validAccountId);
+ 22, 22, "roundrobin", validGuestNetworkId, validAccountId);
}
@@ -230,7 +239,7 @@ public class ApplicationLoadBalancerTest extends TestCase{
@Test(expected = InvalidParameterValueException.class)
//Negative test - invalid SourcePort
public void createWithInvalidSourcePort() throws InsufficientAddressCapacityException,
- InsufficientVirtualNetworkCapcityException, NetworkRuleConflictException {
+ InsufficientVirtualNetworkCapcityException, NetworkRuleConflictException {
_appLbSvc.createApplicationLoadBalancer("alena", "alena", Scheme.Internal, validGuestNetworkId, validRequestedIp,
65536, 22, "roundrobin", validGuestNetworkId, validAccountId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
index 27faa4d..7760123 100644
--- a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
+++ b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
@@ -19,12 +19,6 @@ package org.apache.cloudstack.networkoffering;
import java.io.IOException;
-
-import org.apache.cloudstack.acl.SecurityChecker;
-import org.apache.cloudstack.region.PortableIpDaoImpl;
-import org.apache.cloudstack.region.dao.RegionDaoImpl;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
-import org.apache.cloudstack.test.utils.SpringUtils;
import org.mockito.Mockito;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -35,7 +29,15 @@ import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.core.type.filter.TypeFilter;
+import org.apache.cloudstack.acl.SecurityChecker;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.region.PortableIpDaoImpl;
+import org.apache.cloudstack.region.PortableIpRangeDaoImpl;
+import org.apache.cloudstack.region.dao.RegionDaoImpl;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
+import org.apache.cloudstack.test.utils.SpringUtils;
+
import com.cloud.agent.AgentManager;
import com.cloud.alert.AlertManager;
import com.cloud.api.query.dao.UserAccountJoinDaoImpl;
@@ -106,8 +108,6 @@ import com.cloud.tags.dao.ResourceTagsDaoImpl;
import com.cloud.user.AccountDetailsDao;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
-import com.cloud.user.UserContextInitializer;
import com.cloud.user.dao.AccountDaoImpl;
import com.cloud.user.dao.UserDaoImpl;
import com.cloud.vm.dao.InstanceGroupDaoImpl;
@@ -115,7 +115,6 @@ import com.cloud.vm.dao.NicDaoImpl;
import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.VMInstanceDaoImpl;
-import org.apache.cloudstack.region.PortableIpRangeDaoImpl;
@Configuration
@ComponentScan(basePackageClasses={
@@ -296,13 +295,8 @@ public class ChildTestConfiguration {
}
@Bean
- public UserContext userContext() {
- return Mockito.mock(UserContext.class);
- }
-
- @Bean
- public UserContextInitializer userContextInitializer() {
- return Mockito.mock(UserContextInitializer.class);
+ public CallContext userContext() {
+ return Mockito.mock(CallContext.class);
}
@Bean
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java b/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
index 36564d9..9825cab 100644
--- a/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
+++ b/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
@@ -17,6 +17,25 @@
package org.apache.cloudstack.networkoffering;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+import junit.framework.TestCase;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.configuration.ConfigurationManager;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.dao.ConfigurationDao;
@@ -33,22 +52,8 @@ import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.utils.component.ComponentContext;
-import junit.framework.TestCase;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import javax.inject.Inject;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/createNetworkOffering.xml")
@@ -73,6 +78,7 @@ public class CreateNetworkOfferingTest extends TestCase{
@Inject
VpcManager vpcMgr;
+ @Override
@Before
public void setUp() {
ComponentContext.initComponentsLifeCycle();
@@ -86,7 +92,13 @@ public class CreateNetworkOfferingTest extends TestCase{
Mockito.when(accountMgr.getSystemUser()).thenReturn(new UserVO(1));
Mockito.when(accountMgr.getSystemAccount()).thenReturn(new AccountVO(2));
- UserContext.registerContext(accountMgr.getSystemUser().getId(), accountMgr.getSystemAccount(), null, false);
+ CallContext.register(accountMgr.getSystemUser(), accountMgr.getSystemAccount());
+ }
+
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
}
//Test Shared network offerings
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/region/RegionManagerTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/region/RegionManagerTest.java b/server/test/org/apache/cloudstack/region/RegionManagerTest.java
index b6d1969..db6bf20 100644
--- a/server/test/org/apache/cloudstack/region/RegionManagerTest.java
+++ b/server/test/org/apache/cloudstack/region/RegionManagerTest.java
@@ -22,7 +22,9 @@ import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.cloudstack.api.command.admin.domain.DeleteDomainCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.dao.RegionDao;
+
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
@@ -30,7 +32,6 @@ import org.mockito.Mockito;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java b/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
index 6d49ec0..2355089 100644
--- a/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
+++ b/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
@@ -15,43 +15,72 @@
package org.apache.cloudstack.region.gslb;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd;
+import org.apache.cloudstack.api.command.user.region.ha.gslb.CreateGlobalLoadBalancerRuleCmd;
+import org.apache.cloudstack.api.command.user.region.ha.gslb.DeleteGlobalLoadBalancerRuleCmd;
+import org.apache.cloudstack.api.command.user.region.ha.gslb.RemoveFromGlobalLoadBalancerRuleCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.region.RegionVO;
+import org.apache.cloudstack.region.dao.RegionDao;
+
import com.cloud.agent.AgentManager;
import com.cloud.configuration.dao.ConfigurationDao;
import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.network.dao.*;
+import com.cloud.network.dao.IPAddressDao;
+import com.cloud.network.dao.IPAddressVO;
+import com.cloud.network.dao.LoadBalancerDao;
+import com.cloud.network.dao.LoadBalancerVO;
+import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.dao.NetworkVO;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.RulesManager;
import com.cloud.region.ha.GlobalLoadBalancerRule;
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.db.Transaction;
import com.cloud.utils.net.Ip;
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd;
-import org.apache.cloudstack.api.command.user.region.ha.gslb.CreateGlobalLoadBalancerRuleCmd;
-import org.apache.cloudstack.api.command.user.region.ha.gslb.DeleteGlobalLoadBalancerRuleCmd;
-import org.apache.cloudstack.api.command.user.region.ha.gslb.RemoveFromGlobalLoadBalancerRuleCmd;
-import org.apache.cloudstack.region.RegionVO;
-import org.apache.cloudstack.region.dao.RegionDao;
-import org.apache.log4j.Logger;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.when;
public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
private static final Logger s_logger = Logger.getLogger( GlobalLoadBalancingRulesServiceImplTest.class);
+ @Override
+ @Before
+ public void setUp() {
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ }
+
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testCreateGlobalLoadBalancerRule() throws Exception {
@@ -157,7 +186,7 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
GlobalLoadBalancingRulesServiceImpl gslbServiceImpl = new GlobalLoadBalancingRulesServiceImpl();
gslbServiceImpl._accountMgr = Mockito.mock(AccountManager.class);
- Account account = (Account) new AccountVO("testaccount", 1,
+ Account account = new AccountVO("testaccount", 1,
"networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
@@ -222,7 +251,7 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
GlobalLoadBalancingRulesServiceImpl gslbServiceImpl = new GlobalLoadBalancingRulesServiceImpl();
gslbServiceImpl._accountMgr = Mockito.mock(AccountManager.class);
- Account account = (Account) new AccountVO("testaccount", 1,
+ Account account = new AccountVO("testaccount", 1,
"networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
@@ -287,7 +316,7 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
GlobalLoadBalancingRulesServiceImpl gslbServiceImpl = new GlobalLoadBalancingRulesServiceImpl();
gslbServiceImpl._accountMgr = Mockito.mock(AccountManager.class);
- Account account = (Account) new AccountVO("testaccount", 1,
+ Account account = new AccountVO("testaccount", 1,
"networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
@@ -352,7 +381,7 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
GlobalLoadBalancingRulesServiceImpl gslbServiceImpl = new GlobalLoadBalancingRulesServiceImpl();
gslbServiceImpl._accountMgr = Mockito.mock(AccountManager.class);
- Account account = (Account) new AccountVO("testaccount", 1,
+ Account account = new AccountVO("testaccount", 1,
"networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
@@ -417,7 +446,7 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
GlobalLoadBalancingRulesServiceImpl gslbServiceImpl = new GlobalLoadBalancingRulesServiceImpl();
gslbServiceImpl._accountMgr = Mockito.mock(AccountManager.class);
- Account account = (Account) new AccountVO("testaccount", 1,
+ Account account = new AccountVO("testaccount", 1,
"networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
@@ -496,11 +525,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
AssignToGlobalLoadBalancerRuleCmd assignCmd = new AssignToGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = assignCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
-
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
gslbRuleId.set(assignCmd, new Long(1));
@@ -561,11 +588,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
AssignToGlobalLoadBalancerRuleCmd assignCmd = new AssignToGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = assignCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 3, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 3, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
-
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
gslbRuleId.set(assignCmd, new Long(1));
@@ -648,11 +673,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
AssignToGlobalLoadBalancerRuleCmd assignCmd = new AssignToGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = assignCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
-
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
gslbRuleId.set(assignCmd, new Long(1));
@@ -708,9 +731,8 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd = new RemoveFromGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = removeFromGslbCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
@@ -781,9 +803,8 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd = new RemoveFromGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = removeFromGslbCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
@@ -843,9 +864,8 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd = new RemoveFromGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = removeFromGslbCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
@@ -888,11 +908,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
DeleteGlobalLoadBalancerRuleCmd deleteCmd = new DeleteGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = deleteCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
-
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
gslbRuleId.set(deleteCmd, new Long(1));
@@ -936,11 +954,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
DeleteGlobalLoadBalancerRuleCmd deleteCmd = new DeleteGlobalLoadBalancerRuleCmdExtn();
Class<?> _class = deleteCmd.getClass().getSuperclass();
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(gslbServiceImpl._accountMgr.getAccount(anyLong())).thenReturn(account);
- UserContext.registerContext(1, account, null, true);
-
Field gslbRuleId = _class.getDeclaredField("id");
gslbRuleId.setAccessible(true);
gslbRuleId.set(deleteCmd, new Long(1));
@@ -965,24 +981,28 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
}
public class CreateGlobalLoadBalancerRuleCmdExtn extends CreateGlobalLoadBalancerRuleCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class AssignToGlobalLoadBalancerRuleCmdExtn extends AssignToGlobalLoadBalancerRuleCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class RemoveFromGlobalLoadBalancerRuleCmdExtn extends RemoveFromGlobalLoadBalancerRuleCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class DeleteGlobalLoadBalancerRuleCmdExtn extends DeleteGlobalLoadBalancerRuleCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/utils/src/com/cloud/utils/exception/CloudRuntimeException.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/exception/CloudRuntimeException.java b/utils/src/com/cloud/utils/exception/CloudRuntimeException.java
index d3b4c19..cea3ac2 100755
--- a/utils/src/com/cloud/utils/exception/CloudRuntimeException.java
+++ b/utils/src/com/cloud/utils/exception/CloudRuntimeException.java
@@ -17,16 +17,20 @@
package com.cloud.utils.exception;
import java.util.ArrayList;
+import java.util.List;
+import com.cloud.utils.Pair;
import com.cloud.utils.SerialVersionUID;
/**
* wrap exceptions that you know there's no point in dealing with.
*/
-public class CloudRuntimeException extends RuntimeException {
+public class CloudRuntimeException extends RuntimeException implements ErrorContext {
private static final long serialVersionUID = SerialVersionUID.CloudRuntimeException;
+ protected ArrayList<Pair<Class<?>, String>> uuidList = new ArrayList<Pair<Class<?>, String>>();
+
// This holds a list of uuids and their descriptive names.
protected ArrayList<ExceptionProxyObject> idList = new ArrayList<ExceptionProxyObject>();
@@ -66,14 +70,25 @@ public class CloudRuntimeException extends RuntimeException {
}
public void setCSErrorCode(int cserrcode) {
- this.csErrorCode = cserrcode;
+ csErrorCode = cserrcode;
}
public int getCSErrorCode() {
- return this.csErrorCode;
+ return csErrorCode;
}
public CloudRuntimeException(Throwable t) {
super(t);
}
+
+ @Override
+ public CloudRuntimeException add(Class<?> entity, String uuid) {
+ uuidList.add(new Pair<Class<?>, String>(entity, uuid));
+ return this;
+ }
+
+ @Override
+ public List<Pair<Class<?>, String>> getEntitiesInError() {
+ return uuidList;
+ }
}
[11/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
index e91d005..efb1a2f 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.offering.ServiceOffering;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "changeServiceForSystemVm", responseObject=SystemVmResponse.class, description="Changes the service offering for a system vm (console proxy or secondary storage). " +
@@ -75,7 +76,7 @@ public class UpgradeSystemVMCmd extends BaseCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -85,7 +86,7 @@ public class UpgradeSystemVMCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
ServiceOffering serviceOffering = _configService.getServiceOffering(serviceOfferingId);
if (serviceOffering == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java b/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
index f9f2b03..3957e69 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
import org.apache.cloudstack.api.response.TrafficTypeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.PhysicalNetworkTrafficType;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "addTrafficType", description="Adds traffic type to a physical network", responseObject=TrafficTypeResponse.class, since="3.0.0")
public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
@@ -116,7 +117,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("TrafficType Id: "+getEntityId());
+ CallContext.current().setEventDetails("TrafficType Id: "+getEntityId());
PhysicalNetworkTrafficType result = _networkService.getPhysicalNetworkTrafficType(getEntityId());
if (result != null) {
TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
index 7b3f230..378d636 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "createUser", description="Creates a user for an account that already exists", responseObject=UserResponse.class)
public class CreateUserCmd extends BaseCmd {
@@ -119,7 +120,7 @@ public class CreateUserCmd extends BaseCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
@@ -138,7 +139,7 @@ public class CreateUserCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("UserName: "+getUserName()+", FirstName :"+getFirstName()+", LastName: "+getLastName());
+ CallContext.current().setEventDetails("UserName: "+getUserName()+", FirstName :"+getFirstName()+", LastName: "+getLastName());
User user = _accountService.createUser(getUserName(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimezone(), getAccountName(), getDomainId(), getUserUUID());
if (user != null) {
UserResponse response = _responseGenerator.createUserResponse(user);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
index 5683d58..edf84a1 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteUser", description="Deletes a user for an account", responseObject=SuccessResponse.class)
public class DeleteUserCmd extends BaseCmd {
@@ -76,7 +77,7 @@ public class DeleteUserCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("UserId: "+getId());
+ CallContext.current().setEventDetails("UserId: "+getId());
boolean result = _regionService.deleteUser(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
index a487556..329c070 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
@@ -27,14 +27,15 @@ import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
@APICommand(name = "disableUser", description="Disables a user account", responseObject=UserResponse.class)
public class DisableUserCmd extends BaseAsyncCmd {
@@ -91,7 +92,7 @@ public class DisableUserCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("UserId: "+getId());
+ CallContext.current().setEventDetails("UserId: "+getId());
UserAccount user = _regionService.disableUser(this);
if (user != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
index 382f67c..0a242e9 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
@APICommand(name = "enableUser", description="Enables a user account", responseObject=UserResponse.class)
public class EnableUserCmd extends BaseCmd {
@@ -77,7 +78,7 @@ public class EnableUserCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("UserId: "+getId());
+ CallContext.current().setEventDetails("UserId: "+getId());
UserAccount user = _regionService.enableUser(this);
if (user != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
index 5ea2dbd..52ec2ab 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
@APICommand(name = "updateUser", description="Updates a user account", responseObject=UserResponse.class)
public class UpdateUserCmd extends BaseCmd {
@@ -134,7 +135,7 @@ public class UpdateUserCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("UserId: "+getId());
+ CallContext.current().setEventDetails("UserId: "+getId());
UserAccount user = _regionService.updateUser(this);
if (user != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
index e9779ce..852f6b7 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.StoragePoolResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -36,7 +38,6 @@ import com.cloud.exception.VirtualMachineMigrationException;
import com.cloud.host.Host;
import com.cloud.storage.StoragePool;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.vm.VirtualMachine;
@@ -129,7 +130,7 @@ public class MigrateVMCmd extends BaseAsyncCmd {
if (destinationHost == null) {
throw new InvalidParameterValueException("Unable to find the host to migrate the VM, host id=" + getHostId());
}
- UserContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to host Id: "+ getHostId());
+ CallContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to host Id: "+ getHostId());
}
StoragePool destStoragePool = null;
@@ -138,7 +139,7 @@ public class MigrateVMCmd extends BaseAsyncCmd {
if (destStoragePool == null) {
throw new InvalidParameterValueException("Unable to find the storage pool to migrate the VM");
}
- UserContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to storage pool Id: "+ getStoragePoolId());
+ CallContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to storage pool Id: "+ getStoragePoolId());
}
try{
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
index b1eaf11..ab0dcd5 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
@@ -22,14 +22,16 @@ import java.util.Iterator;
import java.util.Map;
import org.apache.cloudstack.api.*;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-
import org.apache.cloudstack.api.BaseCmd.CommandType;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.StoragePoolResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InvalidParameterValueException;
@@ -39,7 +41,6 @@ import com.cloud.exception.VirtualMachineMigrationException;
import com.cloud.host.Host;
import com.cloud.storage.StoragePool;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.vm.VirtualMachine;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
index 71dfba8..0a06146 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.PrivateGatewayResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -33,7 +35,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.VpcGateway;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deletePrivateGateway", description="Deletes a Private gateway", responseObject=SuccessResponse.class)
public class DeletePrivateGatewayCmd extends BaseAsyncCmd {
@@ -81,7 +82,7 @@ public class DeletePrivateGatewayCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, ConcurrentOperationException {
- UserContext.current().setEventDetails("Network ACL Id: " + id);
+ CallContext.current().setEventDetails("Network ACL Id: " + id);
boolean result = _vpcService.deleteVpcPrivateGateway(id);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java b/api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
index 5cc9052..5799da1 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createZone", description="Creates a Zone.", responseObject=ZoneResponse.class)
public class CreateZoneCmd extends BaseCmd {
@@ -163,7 +164,7 @@ public class CreateZoneCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Zone Name: "+getZoneName());
+ CallContext.current().setEventDetails("Zone Name: "+getZoneName());
DataCenter result = _configService.createZone(this);
if (result != null){
ZoneResponse response = _responseGenerator.createZoneResponse(result,false);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java b/api/src/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
index e3d14f7..98c8b4a 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
@@ -24,10 +24,11 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteZone", description="Deletes a Zone.", responseObject=SuccessResponse.class)
public class DeleteZoneCmd extends BaseCmd {
@@ -69,7 +70,7 @@ public class DeleteZoneCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Zone Id: "+getId());
+ CallContext.current().setEventDetails("Zone Id: "+getId());
boolean result = _configService.deleteZone(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java b/api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
index 16c334e..c888995 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
@@ -26,11 +26,12 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateZone", description="Updates a Zone.", responseObject=ZoneResponse.class)
public class UpdateZoneCmd extends BaseCmd {
@@ -175,7 +176,7 @@ public class UpdateZoneCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Zone Id: "+getId());
+ CallContext.current().setEventDetails("Zone Id: "+getId());
DataCenter result = _configService.editZone(this);
if (result != null) {
ZoneResponse response = _responseGenerator.createZoneResponse(result, false);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
index 58735f2..6a86254 100644
--- a/api/src/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "addAccountToProject", description="Adds acoount to a project", responseObject=SuccessResponse.class, since="3.0.0")
@@ -85,7 +86,7 @@ public class AddAccountToProjectCmd extends BaseAsyncCmd {
throw new InvalidParameterValueException("Either accountName or email is required");
}
- UserContext.current().setEventDetails("Project id: "+ projectId + "; accountName " + accountName);
+ CallContext.current().setEventDetails("Project id: "+ projectId + "; accountName " + accountName);
boolean result = _projectService.addAccountToProject(getProjectId(), getAccountName(), getEmail());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
index df6deae..fcb0574 100644
--- a/api/src/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.project.DeleteProjectCmd;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAccountFromProject", description="Deletes account from the project", responseObject=SuccessResponse.class, since="3.0.0")
public class DeleteAccountFromProjectCmd extends BaseAsyncCmd {
@@ -74,7 +75,7 @@ public class DeleteAccountFromProjectCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Project id: "+ projectId + "; accountName " + accountName);
+ CallContext.current().setEventDetails("Project id: "+ projectId + "; accountName " + accountName);
boolean result = _projectService.deleteAccountFromProject(projectId, accountName);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java b/api/src/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
index 6d7ec6a..d45d132 100644
--- a/api/src/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
@@ -34,6 +34,8 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.RegionResponse;
import org.apache.cloudstack.api.response.VpcResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
@@ -51,7 +53,6 @@ import com.cloud.network.Network;
import com.cloud.network.vpc.Vpc;
import com.cloud.projects.Project;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "associateIpAddress", description="Acquires and associates a public IP to an account.", responseObject=IPAddressResponse.class)
public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
@@ -104,14 +105,14 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
if (accountName != null) {
return accountName;
}
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
public long getDomainId() {
if (domainId != null) {
return domainId;
}
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
private long getZoneId() {
@@ -192,7 +193,7 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (accountName != null && domainId != null) {
Account account = _accountService.finalizeOwner(caller, accountName, domainId, projectId);
return account.getId();
@@ -280,7 +281,7 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
@Override
public void execute() throws ResourceUnavailableException, ResourceAllocationException,
ConcurrentOperationException, InsufficientCapacityException {
- UserContext.current().setEventDetails("Ip Id: " + getEntityId());
+ CallContext.current().setEventDetails("Ip Id: " + getEntityId());
IpAddress result = null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java b/api/src/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
index cbd802b..4798823 100644
--- a/api/src/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
@@ -26,6 +26,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -33,7 +35,6 @@ import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.IpAddress;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "disassociateIpAddress", description="Disassociates an ip address from the account.", responseObject=SuccessResponse.class)
public class DisassociateIPAddrCmd extends BaseAsyncCmd {
@@ -73,7 +74,7 @@ public class DisassociateIPAddrCmd extends BaseAsyncCmd {
@Override
public void execute() throws InsufficientAddressCapacityException{
- UserContext.current().setEventDetails("Ip Id: " + getIpAddressId());
+ CallContext.current().setEventDetails("Ip Id: " + getIpAddressId());
boolean result = false;
if (!isPortable(id)) {
result = _networkService.releaseIpAddress(getIpAddressId());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
index bc16310..59b9f17 100644
--- a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.BaseAsyncCreateCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createAffinityGroup", responseObject = AffinityGroupResponse.class, description = "Creates an affinity/anti-affinity group")
public class CreateAffinityGroupCmd extends BaseAsyncCreateCmd {
@@ -94,7 +95,7 @@ public class CreateAffinityGroupCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
index a237cba..0fa8b2b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAffinityGroup", description = "Deletes affinity group", responseObject = SuccessResponse.class)
public class DeleteAffinityGroupCmd extends BaseAsyncCmd {
@@ -100,7 +101,7 @@ public class DeleteAffinityGroupCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
index 8b0188c..11099a4 100644
--- a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
@@ -31,6 +31,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -38,7 +40,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@@ -131,7 +132,7 @@ public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException,
InsufficientCapacityException, ServerApiException {
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
UserVm result = _affinityGroupService.updateVMAffinityGroups(getId(), getAffinityGroupIdList());
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
dc.add(VMDetails.valueOf("affgrp"));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
index f7ee2f5..3b5567d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
@@ -31,6 +31,8 @@ import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -39,7 +41,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.as.AutoScaleVmProfile;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "createAutoScaleVmProfile", description = "Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.", responseObject = AutoScaleVmProfileResponse.class)
@SuppressWarnings("rawtypes")
@@ -119,7 +120,7 @@ public class CreateAutoScaleVmProfileCmd extends BaseAsyncCreateCmd {
if (autoscaleUserId != null) {
return autoscaleUserId;
} else {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
}
@@ -136,7 +137,7 @@ public class CreateAutoScaleVmProfileCmd extends BaseAsyncCreateCmd {
User user = _entityMgr.findById(User.class, autoscaleUserId);
account = _entityMgr.findById(Account.class, user.getAccountId());
} else {
- account = UserContext.current().getCaller();
+ account = CallContext.current().getCallingAccount();
}
accountId = account.getAccountId();
domainId = account.getDomainId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
index 44f1c86..dc0d244 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
@@ -27,12 +27,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ConditionResponse;
import org.apache.cloudstack.api.response.CounterResponse;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.as.Condition;
-import com.cloud.user.UserContext;
@APICommand(name = "createCondition", description = "Creates a condition", responseObject = ConditionResponse.class)
public class CreateConditionCmd extends BaseAsyncCreateCmd {
@@ -105,7 +106,7 @@ public class CreateConditionCmd extends BaseAsyncCreateCmd {
public String getAccountName() {
if (accountName == null) {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
return accountName;
@@ -113,7 +114,7 @@ public class CreateConditionCmd extends BaseAsyncCreateCmd {
public Long getDomainId() {
if (domainId == null) {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
return domainId;
}
@@ -141,7 +142,7 @@ public class CreateConditionCmd extends BaseAsyncCreateCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, null, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
index abf0ec0..579656c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScalePolicy;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAutoScalePolicy", description = "Deletes a autoscale policy.", responseObject = SuccessResponse.class)
public class DeleteAutoScalePolicyCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class DeleteAutoScalePolicyCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale Policy Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale Policy Id: " + getId());
boolean result = _autoScaleService.deleteAutoScalePolicy(id);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
index e9de4cb..2d72836 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScaleVmGroup;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAutoScaleVmGroup", description = "Deletes a autoscale vm group.", responseObject = SuccessResponse.class)
public class DeleteAutoScaleVmGroupCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class DeleteAutoScaleVmGroupCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale Vm Group Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale Vm Group Id: " + getId());
boolean result = _autoScaleService.deleteAutoScaleVmGroup(id);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
index 0353c95..d0061f8 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScaleVmProfileResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScaleVmProfile;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAutoScaleVmProfile", description = "Deletes a autoscale vm profile.", responseObject = SuccessResponse.class)
public class DeleteAutoScaleVmProfileCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class DeleteAutoScaleVmProfileCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale VM Profile Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale VM Profile Id: " + getId());
boolean result = _autoScaleService.deleteAutoScaleVmProfile(id);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
index dcd4aa6..1f59188 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
@@ -28,12 +28,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
import org.apache.cloudstack.api.response.ConditionResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScalePolicy;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateAutoScalePolicy", description = "Updates an existing autoscale policy.", responseObject = AutoScalePolicyResponse.class)
public class UpdateAutoScalePolicyCmd extends BaseAsyncCmd {
@@ -61,7 +62,7 @@ public class UpdateAutoScalePolicyCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale Policy Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale Policy Id: " + getId());
AutoScalePolicy result = _autoScaleService.updateAutoScalePolicy(this);
if (result != null) {
AutoScalePolicyResponse response = _responseGenerator.createAutoScalePolicyResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
index 460803e..cad41e9 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
@@ -28,12 +28,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScaleVmGroup;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateAutoScaleVmGroup", description = "Updates an existing autoscale vm group.", responseObject = AutoScaleVmGroupResponse.class)
public class UpdateAutoScaleVmGroupCmd extends BaseAsyncCmd {
@@ -72,7 +73,7 @@ public class UpdateAutoScaleVmGroupCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale Vm Group Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale Vm Group Id: " + getId());
AutoScaleVmGroup result = _autoScaleService.updateAutoScaleVmGroup(this);
if (result != null) {
AutoScaleVmGroupResponse response = _responseGenerator.createAutoScaleVmGroupResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
index d2fd213..2eb4438 100644
--- a/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
@@ -29,12 +29,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AutoScaleVmProfileResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.as.AutoScaleVmProfile;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateAutoScaleVmProfile", description = "Updates an existing autoscale vm profile.", responseObject = AutoScaleVmProfileResponse.class)
public class UpdateAutoScaleVmProfileCmd extends BaseAsyncCmd {
@@ -70,7 +71,7 @@ public class UpdateAutoScaleVmProfileCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("AutoScale Policy Id: " + getId());
+ CallContext.current().setEventDetails("AutoScale Policy Id: " + getId());
AutoScaleVmProfile result = _autoScaleService.updateAutoScaleVmProfile(this);
if (result != null) {
AutoScaleVmProfileResponse response = _responseGenerator.createAutoScaleVmProfileResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/event/ArchiveEventsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/event/ArchiveEventsCmd.java b/api/src/org/apache/cloudstack/api/command/user/event/ArchiveEventsCmd.java
index c5594e2..51c78e5 100644
--- a/api/src/org/apache/cloudstack/api/command/user/event/ArchiveEventsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/event/ArchiveEventsCmd.java
@@ -27,11 +27,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.EventResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "archiveEvents", description = "Archive one or more events.", responseObject = SuccessResponse.class)
public class ArchiveEventsCmd extends BaseCmd {
@@ -90,7 +91,7 @@ public class ArchiveEventsCmd 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/api/src/org/apache/cloudstack/api/command/user/event/DeleteEventsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/event/DeleteEventsCmd.java b/api/src/org/apache/cloudstack/api/command/user/event/DeleteEventsCmd.java
index 548c2f3..964cee3 100644
--- a/api/src/org/apache/cloudstack/api/command/user/event/DeleteEventsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/event/DeleteEventsCmd.java
@@ -27,11 +27,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.EventResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteEvents", description = "Delete one or more events.", responseObject = SuccessResponse.class)
public class DeleteEventsCmd extends BaseCmd {
@@ -90,7 +91,7 @@ public class DeleteEventsCmd 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/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
index 3714c06..05a2c5d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.firewall;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -32,6 +33,7 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
@@ -40,7 +42,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.rules.FirewallRule;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
@APICommand(name = "createEgressFirewallRule", description = "Creates a egress firewall rule for a given network ", responseObject = FirewallResponse.class)
@@ -128,12 +129,12 @@ public class CreateEgressFirewallRuleCmd extends BaseAsyncCreateCmd implements F
@Override
public void execute() throws ResourceUnavailableException {
- UserContext callerContext = UserContext.current();
+ CallContext callerContext = CallContext.current();
boolean success = false;
FirewallRule rule = _entityMgr.findById(FirewallRule.class, getEntityId());
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
- success = _firewallService.applyEgressFirewallRules (rule, callerContext.getCaller());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
+ success = _firewallService.applyEgressFirewallRules (rule, callerContext.getCallingAccount());
// State is different after the rule is applied, so get new object here
rule = _entityMgr.findById(FirewallRule.class, getEntityId());
FirewallResponse fwResponse = new FirewallResponse();
@@ -204,7 +205,7 @@ public class CreateEgressFirewallRuleCmd extends BaseAsyncCreateCmd implements F
@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/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
index b94ea17..ff8e283 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
@@ -29,6 +29,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -38,7 +40,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.rules.FirewallRule;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
@APICommand(name = "createFirewallRule", description = "Creates a firewall rule for a given ip address", responseObject = FirewallResponse.class)
@@ -116,12 +117,12 @@ public class CreateFirewallRuleCmd extends BaseAsyncCreateCmd implements Firewal
@Override
public void execute() throws ResourceUnavailableException {
- UserContext callerContext = UserContext.current();
+ CallContext callerContext = CallContext.current();
boolean success = false;
FirewallRule rule = _entityMgr.findById(FirewallRule.class, getEntityId());
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
- success = _firewallService.applyIngressFirewallRules(rule.getSourceIpAddressId(), callerContext.getCaller());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
+ success = _firewallService.applyIngressFirewallRules(rule.getSourceIpAddressId(), callerContext.getCallingAccount());
// State is different after the rule is applied, so get new object here
rule = _entityMgr.findById(FirewallRule.class, getEntityId());
@@ -211,7 +212,7 @@ public class CreateFirewallRuleCmd extends BaseAsyncCreateCmd implements Firewal
@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/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
index 372e00f..ff63d08 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
@@ -30,6 +30,8 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -39,7 +41,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.rules.PortForwardingRule;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.Ip;
@APICommand(name = "createPortForwardingRule", description = "Creates a port forwarding rule", responseObject = FirewallRuleResponse.class)
@@ -171,17 +172,17 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
@Override
public void execute() throws ResourceUnavailableException {
- UserContext callerContext = UserContext.current();
+ CallContext callerContext = CallContext.current();
boolean success = true;
PortForwardingRule rule = null;
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
if (getOpenFirewall()) {
- success = success && _firewallService.applyIngressFirewallRules(ipAddressId, callerContext.getCaller());
+ success = success && _firewallService.applyIngressFirewallRules(ipAddressId, callerContext.getCallingAccount());
}
- success = success && _rulesService.applyPortForwardingRules(ipAddressId, callerContext.getCaller());
+ success = success && _rulesService.applyPortForwardingRules(ipAddressId, callerContext.getCallingAccount());
// State is different after the rule is applied, so get new object here
rule = _entityMgr.findById(PortForwardingRule.class, getEntityId());
@@ -271,7 +272,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
@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/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
index ec824b7..c3f1a94 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
@@ -18,6 +18,7 @@
package org.apache.cloudstack.api.command.user.firewall;
import org.apache.cloudstack.api.APICommand;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiCommandJobType;
@@ -30,12 +31,12 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.FirewallRule;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteEgressFirewallRule", description="Deletes an ggress firewall rule", responseObject=SuccessResponse.class)
public class DeleteEgressFirewallRuleCmd extends BaseAsyncCmd {
@@ -94,7 +95,7 @@ public class DeleteEgressFirewallRuleCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Rule Id: " + id);
+ CallContext.current().setEventDetails("Rule Id: " + id);
boolean result = _firewallService.revokeFirewallRule(id, true);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
index 3aeb7e2..c04cae7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
@@ -26,13 +26,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.FirewallRule;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteFirewallRule", description="Deletes a firewall rule", responseObject=SuccessResponse.class)
public class DeleteFirewallRuleCmd extends BaseAsyncCmd {
@@ -92,7 +93,7 @@ public class DeleteFirewallRuleCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Rule Id: " + id);
+ CallContext.current().setEventDetails("Rule Id: " + id);
boolean result = _firewallService.revokeFirewallRule(id, true);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
index e9caa05..47c9ee0 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.PortForwardingRule;
-import com.cloud.user.UserContext;
@APICommand(name = "deletePortForwardingRule", description="Deletes a port forwarding rule", responseObject=SuccessResponse.class)
public class DeletePortForwardingRuleCmd extends BaseAsyncCmd {
@@ -92,7 +93,7 @@ public class DeletePortForwardingRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Rule Id: "+id);
+ CallContext.current().setEventDetails("Rule Id: "+id);
//revoke corresponding firewall rule first
boolean result = _firewallService.revokeRelatedFirewallRule(id, true);
result = result && _rulesService.revokePortForwardingRule(id, true);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
index 933ee8b..11e4270 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "attachIso", description="Attaches an ISO to a virtual machine.", responseObject=UserVmResponse.class)
@@ -95,7 +96,7 @@ public class AttachIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: " +getVirtualMachineId()+ " ISO Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: " +getVirtualMachineId()+ " ISO Id: "+getId());
boolean result = _templateService.attachIso(id, virtualMachineId);
if (result) {
UserVm userVm = _responseGenerator.findUserVmById(virtualMachineId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
index ef15418..a7ec9f6 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteIso", description="Deletes an ISO file.", responseObject=SuccessResponse.class)
public class DeleteIsoCmd extends BaseAsyncCmd {
@@ -106,7 +107,7 @@ public class DeleteIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("ISO Id: "+getId());
+ CallContext.current().setEventDetails("ISO Id: "+getId());
boolean result = _templateService.deleteIso(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
index 4e6ff57..5378ceb 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
@@ -26,13 +26,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ExtractResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InternalErrorException;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
@APICommand(name = "extractIso", description="Extracts an ISO", responseObject=ExtractResponse.class)
@@ -123,7 +124,7 @@ public class ExtractIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
- UserContext.current().setEventDetails(getEventDescription());
+ CallContext.current().setEventDetails(getEventDescription());
String uploadUrl = _templateService.extract(this);
if (uploadUrl != null) {
ExtractResponse response = _responseGenerator.createExtractResponse(id, zoneId, getEntityOwnerId(), mode, uploadUrl);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
index 09e2c1c..c3f558b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
@@ -28,11 +28,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
@APICommand(name = "listIsos", description="Lists all available ISO files.", responseObject=TemplateResponse.class)
@@ -116,7 +117,7 @@ public class ListIsosCmd extends BaseListTaggedResourcesCmd {
}
public boolean listInReadyState() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
// It is account specific if account is admin type and domainId and accountName are not null
boolean isAccountSpecific = (account == null || isAdmin(account.getType())) && (getAccountName() != null) && (getDomainId() != null);
// Show only those that are downloaded.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
index 943cbe9..84f6980 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
@@ -30,11 +30,12 @@ import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.template.VirtualMachineTemplate;
-import com.cloud.user.UserContext;
@APICommand(name = "registerIso", responseObject=TemplateResponse.class, description="Registers an existing ISO into the CloudStack Cloud.")
public class RegisterIsoCmd extends BaseCmd {
@@ -169,7 +170,7 @@ public class RegisterIsoCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/AssignToLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/AssignToLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/AssignToLoadBalancerRuleCmd.java
index e0f9bcd..b94777e 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/AssignToLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/AssignToLoadBalancerRuleCmd.java
@@ -27,13 +27,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
@APICommand(name = "assignToLoadBalancerRule", description="Assigns virtual machine or a list of virtual machines to a load balancer rule.", responseObject=SuccessResponse.class)
@@ -96,7 +97,7 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Load balancer Id: "+getLoadBalancerId()+" VmIds: "+StringUtils.join(getVirtualMachineIds(), ","));
+ CallContext.current().setEventDetails("Load balancer Id: "+getLoadBalancerId()+" VmIds: "+StringUtils.join(getVirtualMachineIds(), ","));
boolean result = _lbService.assignToLoadBalancer(getLoadBalancerId(), virtualMachineIds);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
index f085f5a..4fb6f40 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
@@ -25,7 +25,9 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -37,7 +39,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
@APICommand(name = "createLoadBalancer", description="Creates a Load Balancer", responseObject=ApplicationLoadBalancerResponse.class, since="4.2.0")
@@ -180,7 +181,7 @@ public class CreateApplicationLoadBalancerCmd extends BaseAsyncCreateCmd {
public void execute() throws ResourceAllocationException, ResourceUnavailableException {
ApplicationLoadBalancerRule rule = null;
try {
- UserContext.current().setEventDetails("Load Balancer Id: " + getEntityId());
+ CallContext.current().setEventDetails("Load Balancer Id: " + getEntityId());
// State might be different after the rule is applied, so get new object here
rule = _entityMgr.findById(ApplicationLoadBalancerRule.class, getEntityId());
ApplicationLoadBalancerResponse lbResponse = _responseGenerator.createLoadBalancerContainerReponse(rule, _lbService.getLbInstances(getEntityId()));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java
index ac0ec3a..d274dd7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
@@ -26,15 +27,18 @@ import org.apache.cloudstack.api.BaseAsyncCreateCmd;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
+
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.HealthCheckPolicy;
+
import org.apache.cloudstack.api.response.LBHealthCheckResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createLBHealthCheckPolicy", description = "Creates a Load Balancer healthcheck policy ", responseObject = LBHealthCheckResponse.class, since="4.2.0")
@@ -97,7 +101,7 @@ public class CreateLBHealthCheckPolicyCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -127,7 +131,7 @@ public class CreateLBHealthCheckPolicyCmd extends BaseAsyncCreateCmd {
boolean success = false;
try {
- UserContext.current().setEventDetails("Load balancer healthcheck policy Id : " + getEntityId());
+ CallContext.current().setEventDetails("Load balancer healthcheck policy Id : " + getEntityId());
success = _lbService.applyLBHealthCheckPolicy(this);
if (success) {
// State might be different after the rule is applied, so get new object here
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBStickinessPolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBStickinessPolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBStickinessPolicyCmd.java
index 02b253a..1684430 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBStickinessPolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBStickinessPolicyCmd.java
@@ -27,6 +27,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.LBStickinessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -36,7 +38,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.network.rules.StickinessPolicy;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createLBStickinessPolicy", description = "Creates a Load Balancer stickiness policy ", responseObject = LBStickinessResponse.class, since="3.0.0")
@@ -103,7 +104,7 @@ public class CreateLBStickinessPolicyCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -117,7 +118,7 @@ public class CreateLBStickinessPolicyCmd extends BaseAsyncCreateCmd {
boolean success = false;
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
success = _lbService.applyLBStickinessPolicy(this);
if (success) {
// State might be different after the rule is applied, so get new object here
[09/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
index 595ba96..0f1b3c6 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
@@ -26,6 +26,7 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ExtractResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
@@ -33,7 +34,6 @@ import com.cloud.event.EventTypes;
import com.cloud.exception.InternalErrorException;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
@APICommand(name = "extractTemplate", description="Extracts a template", responseObject=ExtractResponse.class)
@@ -125,7 +125,7 @@ public class ExtractTemplateCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
- UserContext.current().setEventDetails(getEventDescription());
+ CallContext.current().setEventDetails(getEventDescription());
String uploadUrl = _templateService.extract(this);
if (uploadUrl != null) {
ExtractResponse response = _responseGenerator.createExtractResponse(id, zoneId, getEntityOwnerId(), mode, uploadUrl);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
index 08a35d4..4b34909 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
@@ -29,11 +29,12 @@ import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
@APICommand(name = "listTemplates", description="List all public, private, and privileged templates.", responseObject=TemplateResponse.class)
@@ -95,7 +96,7 @@ public class ListTemplatesCmd extends BaseListTaggedResourcesCmd {
public boolean listInReadyState() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
// It is account specific if account is admin type and domainId and accountName are not null
boolean isAccountSpecific = (account == null || isAdmin(account.getType())) && (getAccountName() != null) && (getDomainId() != null);
// Show only those that are downloaded.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
index b26d920..bba90bf 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
@@ -34,11 +34,12 @@ import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.template.VirtualMachineTemplate;
-import com.cloud.user.UserContext;
@APICommand(name = "registerTemplate", description="Registers an existing template into the CloudStack cloud. ", responseObject=TemplateResponse.class)
public class RegisterTemplateCmd extends BaseCmd {
@@ -232,7 +233,7 @@ public class RegisterTemplateCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
index 41584d2..b5e2239 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.vm;
import com.cloud.vm.NicSecondaryIp;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -28,6 +29,7 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NicResponse;
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
@@ -40,7 +42,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.Nic;
@@ -69,11 +70,11 @@ public class AddIpToVmNicCmd extends BaseAsyncCmd {
}
public String getAccountName() {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
public long getDomainId() {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
private long getZoneId() {
@@ -113,7 +114,7 @@ public class AddIpToVmNicCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@@ -145,7 +146,7 @@ public class AddIpToVmNicCmd extends BaseAsyncCmd {
public void execute() throws ResourceUnavailableException, ResourceAllocationException,
ConcurrentOperationException, InsufficientCapacityException {
- UserContext.current().setEventDetails("Nic Id: " + getNicId() );
+ CallContext.current().setEventDetails("Nic Id: " + getNicId() );
String ip;
NicSecondaryIp result;
String secondaryIp = null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
index 4334000..520e91c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "addNicToVirtualMachine", description="Adds VM to specified network by creating a NIC", responseObject=UserVmResponse.class)
@@ -105,7 +106,7 @@ public class AddNicToVMCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: " + getVmId() + " Network Id: " + getNetworkId());
+ CallContext.current().setEventDetails("Vm Id: " + getVmId() + " Network Id: " + getNetworkId());
UserVm result = _userVmService.addNicToVirtualMachine(this);
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
dc.add(VMDetails.valueOf("nics"));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
index 5c8fecd..40ad8e0 100755
--- a/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
@@ -44,6 +44,8 @@ import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
@@ -62,7 +64,6 @@ import com.cloud.offering.DiskOffering;
import com.cloud.offering.ServiceOffering;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@@ -194,7 +195,7 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
public String getAccountName() {
if (accountName == null) {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
return accountName;
}
@@ -209,7 +210,7 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
public Long getDomainId() {
if (domainId == null) {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
return domainId;
}
@@ -379,7 +380,7 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
@@ -416,7 +417,7 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
if (getStartVm()) {
try {
- UserContext.current().setEventDetails("Vm Id: "+getEntityId());
+ CallContext.current().setEventDetails("Vm Id: "+getEntityId());
result = _userVmService.startVirtualMachine(this);
} catch (ResourceUnavailableException ex) {
s_logger.warn("Exception: ", ex);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
index 4add4ce..06959c1 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "destroyVirtualMachine", description="Destroys a virtual machine. Once destroyed, only the administrator can recover it.", responseObject=UserVmResponse.class)
@@ -95,7 +96,7 @@ public class DestroyVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, ConcurrentOperationException{
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
UserVm result;
result = _userVmService.destroyVm(this);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
index 2aa6ffd..ad3c230 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
@@ -31,13 +31,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.NicResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.Nic;
import com.cloud.vm.NicSecondaryIp;
@@ -67,11 +67,11 @@ public class ListNicsCmd extends BaseListCmd {
}
public String getAccountName() {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
public long getDomainId() {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
public Long getNicId() {
@@ -84,7 +84,7 @@ public class ListNicsCmd extends BaseListCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
index 794e1b5..86bcc19 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "rebootVirtualMachine", description="Reboots a virtual machine.", responseObject=UserVmResponse.class)
@@ -94,7 +95,7 @@ public class RebootVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
UserVm result;
result = _userVmService.rebootVirtualMachine(this);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
index 852f073..408f69f 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
@@ -27,6 +27,7 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
@@ -35,7 +36,6 @@ import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.Network;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.Nic;
import com.cloud.vm.NicSecondaryIp;
@@ -69,16 +69,16 @@ public class RemoveIpFromVmNicCmd extends BaseAsyncCmd {
}
public String getAccountName() {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
public long getDomainId() {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@@ -131,7 +131,7 @@ public class RemoveIpFromVmNicCmd extends BaseAsyncCmd {
@Override
public void execute() throws InvalidParameterValueException {
- UserContext.current().setEventDetails("Ip Id: " + id);
+ CallContext.current().setEventDetails("Ip Id: " + id);
NicSecondaryIp nicSecIp = getIpEntry();
if (nicSecIp == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/RemoveNicFromVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/RemoveNicFromVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/RemoveNicFromVMCmd.java
index b1a870e..ef133d9 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/RemoveNicFromVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/RemoveNicFromVMCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.NicResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "removeNicFromVirtualMachine", description="Removes VM from specified network by deleting a NIC", responseObject=UserVmResponse.class)
@@ -99,7 +100,7 @@ public class RemoveNicFromVMCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getVmId() + " Nic Id: " + getNicId());
+ CallContext.current().setEventDetails("Vm Id: "+getVmId() + " Nic Id: " + getNicId());
UserVm result = _userVmService.removeNicFromVirtualMachine(this);
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
dc.add(VMDetails.valueOf("nics"));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
index 271d37f..c8ab5e8 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
@@ -24,13 +24,14 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "resetPasswordForVirtualMachine", responseObject=UserVmResponse.class, description="Resets the password for virtual machine. " +
@@ -109,7 +110,7 @@ public class ResetVMPasswordCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, InsufficientCapacityException{
password = _mgr.generateRandomPassword();
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
UserVm result = _userVmService.resetVMPassword(this, password);
if (result != null){
UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", result).get(0);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
index 372f2bc..fa06344 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
@@ -30,9 +30,9 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.event.EventTypes;
import com.cloud.exception.InsufficientCapacityException;
@@ -137,7 +137,7 @@ public class ResetVMSSHKeyCmd extends BaseAsyncCmd {
public void execute() throws ResourceUnavailableException,
InsufficientCapacityException {
- UserContext.current().setEventDetails("Vm Id: " + getId());
+ CallContext.current().setEventDetails("Vm Id: " + getId());
UserVm result = _userVmService.resetVMSSHKey(this);
if (result != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
index 2f7d8e1..2cfcc97 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -32,7 +34,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "restoreVirtualMachine", description="Restore a VM to original template/ISO or new template/ISO", responseObject=UserVmResponse.class, since="3.0.0")
@@ -62,7 +63,7 @@ public class RestoreVMCmd extends BaseAsyncCmd {
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
ResourceAllocationException {
UserVm result;
- UserContext.current().setEventDetails("Vm Id: " + getVmId());
+ CallContext.current().setEventDetails("Vm Id: " + getVmId());
result = _userVmService.restoreVM(this);
if (result != null) {
UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", result).get(0);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
index 758d9c1..ac04419 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
@@ -19,12 +19,14 @@ package org.apache.cloudstack.api.command.user.vm;
import com.cloud.event.EventTypes;
import com.cloud.exception.*;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
index 2fc6646..8441ac6 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -35,7 +37,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.utils.exception.ExecutionException;
@@ -114,7 +115,7 @@ public class StartVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, ResourceAllocationException {
try {
- UserContext.current().setEventDetails("Vm Id: " + getId());
+ CallContext.current().setEventDetails("Vm Id: " + getId());
UserVm result ;
result = _userVmService.startVirtualMachine(this);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
index f06b0f5..90d565d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "stopVirtualMachine", responseObject = UserVmResponse.class, description = "Stops a virtual machine.")
@@ -111,7 +112,7 @@ public class StopVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ServerApiException, ConcurrentOperationException {
- UserContext.current().setEventDetails("Vm Id: " + getId());
+ CallContext.current().setEventDetails("Vm Id: " + getId());
UserVm result;
result = _userVmService.stopVirtualMachine(getId(), isForced());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/UpdateDefaultNicForVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateDefaultNicForVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateDefaultNicForVMCmd.java
index 07518c9..57ec9fb 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateDefaultNicForVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateDefaultNicForVMCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.NicResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "updateDefaultNicForVirtualMachine", description="Changes the default NIC on a VM", responseObject=UserVmResponse.class)
@@ -99,7 +100,7 @@ public class UpdateDefaultNicForVMCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getVmId() + " Nic Id: " + getNicId());
+ CallContext.current().setEventDetails("Vm Id: "+getVmId() + " Nic Id: " + getNicId());
UserVm result = _userVmService.updateDefaultNicForVirtualMachine(this);
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
dc.add(VMDetails.valueOf("nics"));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
index 26e5609..ba466b0 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.GuestOSResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@@ -133,7 +134,7 @@ public class UpdateVMCmd extends BaseCmd{
@Override
public void execute() throws ResourceUnavailableException,
InsufficientCapacityException, ServerApiException {
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
UserVm result = _userVmService.updateVirtualMachine(this);
if (result != null){
UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", result).get(0);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
index fb62000..671a61b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
@@ -24,13 +24,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.offering.ServiceOffering;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "changeServiceForVirtualMachine", responseObject=UserVmResponse.class, description="Changes the service offering for a virtual machine. " +
@@ -89,7 +90,7 @@ public class UpgradeVMCmd extends BaseCmd {
@Override
public void execute() throws ResourceAllocationException{
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
ServiceOffering serviceOffering = _configService.getServiceOffering(serviceOfferingId);
if (serviceOffering == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vmgroup/CreateVMGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vmgroup/CreateVMGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/vmgroup/CreateVMGroupCmd.java
index bcb7bda..daaf094 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vmgroup/CreateVMGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vmgroup/CreateVMGroupCmd.java
@@ -25,9 +25,10 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.InstanceGroupResponse;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
-import com.cloud.user.UserContext;
import com.cloud.vm.InstanceGroup;
@APICommand(name = "createInstanceGroup", description = "Creates a vm group", responseObject = InstanceGroupResponse.class)
@@ -88,7 +89,7 @@ public class CreateVMGroupCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
index aa9feb8..542215a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
@@ -27,10 +27,10 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VMSnapshotResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.vm.snapshot.VMSnapshot;
@@ -96,7 +96,7 @@ public class CreateVMSnapshotCmd extends BaseAsyncCreateCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("VM Id: " + getVmId());
+ CallContext.current().setEventDetails("VM Id: " + getVmId());
VMSnapshot result = _vmSnapshotService.creatVMSnapshot(getVmId(),getEntityId());
if (result != null) {
VMSnapshotResponse response = _responseGenerator
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
index bda84c8..24f8462 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.VMSnapshotResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.snapshot.VMSnapshot;
@APICommand(name="deleteVMSnapshot", description = "Deletes a vmsnapshot.", responseObject = SuccessResponse.class, since="4.2.0")
@@ -62,7 +63,7 @@ public class DeleteVMSnapshotCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("vmsnapshot id: " + getId());
+ CallContext.current().setEventDetails("vmsnapshot id: " + getId());
boolean result = _vmSnapshotService.deleteVMSnapshot(getId());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
index f6d8b2c..9344406 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
@@ -26,6 +26,7 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VMSnapshotResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
@@ -33,7 +34,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.vm.snapshot.VMSnapshot;
@@ -66,7 +66,7 @@ public class RevertToVMSnapshotCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ResourceAllocationException, ConcurrentOperationException {
- UserContext.current().setEventDetails(
+ CallContext.current().setEventDetails(
"vmsnapshot id: " + getVmSnapShotId());
UserVm result = _vmSnapshotService.revertToSnapshot(getVmSnapShotId());
if (result != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java
index de5832d..be3eb22 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.volume;
import com.cloud.server.ResourceTag;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -26,13 +27,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.async.AsyncJob;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import java.util.*;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
index bd729ea..baec44f 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "attachVolume", description="Attaches a disk volume to a virtual machine.", responseObject=VolumeResponse.class)
public class AttachVolumeCmd extends BaseAsyncCmd {
@@ -118,7 +119,7 @@ public class AttachVolumeCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Volume Id: "+getId()+" VmId: "+getVirtualMachineId());
+ CallContext.current().setEventDetails("Volume Id: "+getId()+" VmId: "+getVirtualMachineId());
Volume result = _volumeService.attachVolumeToVM(this);
if (result != null) {
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
index 6a5d4e5..e5c7a51 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
@@ -29,13 +29,14 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SnapshotResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;
-import com.cloud.user.UserContext;
@APICommand(name = "createVolume", responseObject=VolumeResponse.class, description="Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.")
public class CreateVolumeCmd extends BaseAsyncCreateCmd {
@@ -155,7 +156,7 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
@@ -185,7 +186,7 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Volume Id: "+getEntityId()+((getSnapshotId() == null) ? "" : " from snapshot: " + getSnapshotId()));
+ CallContext.current().setEventDetails("Volume Id: "+getEntityId()+((getSnapshotId() == null) ? "" : " from snapshot: " + getSnapshotId()));
Volume volume = _volumeService.createVolume(this);
if (volume != null) {
VolumeResponse response = _responseGenerator.createVolumeResponse(volume);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
index 394b009..73cc827 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteVolume", description="Deletes a detached disk volume.", responseObject=SuccessResponse.class)
public class DeleteVolumeCmd extends BaseCmd {
@@ -79,8 +80,8 @@ public class DeleteVolumeCmd extends BaseCmd {
@Override
public void execute() throws ConcurrentOperationException {
- UserContext.current().setEventDetails("Volume Id: "+getId());
- boolean result = this._volumeService.deleteVolume(id, UserContext.current().getCaller());
+ CallContext.current().setEventDetails("Volume Id: "+getId());
+ boolean result = this._volumeService.deleteVolume(id, CallContext.current().getCallingAccount());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
this.setResponseObject(response);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
index 24dd113..f2fe0cd 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@APICommand(name = "detachVolume", description="Detaches a disk volume from a virtual machine.", responseObject=VolumeResponse.class)
@@ -129,7 +130,7 @@ public class DetachVolumeCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Volume Id: "+getId()+" VmId: "+getVirtualMachineId());
+ CallContext.current().setEventDetails("Volume Id: "+getId()+" VmId: "+getVirtualMachineId());
Volume result = _volumeService.detachVolumeFromVM(this);
if (result != null){
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
index 8588153..08116fc 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
@@ -28,6 +28,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ExtractResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
@@ -35,7 +37,6 @@ import com.cloud.event.EventTypes;
import com.cloud.storage.Upload;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "extractVolume", description="Extracts volume", responseObject=ExtractResponse.class)
public class ExtractVolumeCmd extends BaseAsyncCmd {
@@ -126,7 +127,7 @@ public class ExtractVolumeCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Volume Id: " + getId());
+ CallContext.current().setEventDetails("Volume Id: " + getId());
String uploadUrl = _volumeService.extractVolume(this);
if (uploadUrl != null) {
ExtractResponse response = new ExtractResponse();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
index 445f435..8be70f3 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.volume;
import com.cloud.server.ResourceTag;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiCommandJobType;
import org.apache.cloudstack.api.ApiConstants;
@@ -27,12 +28,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import java.util.*;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
index 0b7ff0d..811440d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DiskOfferingResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -34,7 +36,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.projects.Project;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name="resizeVolume", description="Resizes a volume", responseObject=VolumeResponse.class)
@@ -133,7 +134,7 @@ public class ResizeVolumeCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceAllocationException{
- UserContext.current().setEventDetails("Volume Id: " + getEntityId() + " to size " + getSize() + "G");
+ CallContext.current().setEventDetails("Volume Id: " + getEntityId() + " to size " + getSize() + "G");
Volume volume = _volumeService.resizeVolume(this);
if (volume != null) {
VolumeResponse response = _responseGenerator.createVolumeResponse(volume);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
index f1e68e9..ad7c992 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateVolume", description="Updates the volume.", responseObject=VolumeResponse.class)
public class UpdateVolumeCmd extends BaseAsyncCmd {
@@ -99,7 +100,7 @@ public class UpdateVolumeCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Volume Id: "+getId());
+ CallContext.current().setEventDetails("Volume Id: "+getId());
Volume result = _volumeService.updateVolume(this);
if (result != null) {
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
index fea3e04..f9104f7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
@@ -27,6 +27,8 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -36,7 +38,6 @@ import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.storage.Volume;
-import com.cloud.user.UserContext;
@APICommand(name = "uploadVolume", description="Uploads a data disk.", responseObject=VolumeResponse.class)
public class UploadVolumeCmd extends BaseAsyncCmd {
@@ -143,7 +144,7 @@ public class UploadVolumeCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
index e0cfe00..91aecef 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
@@ -26,6 +26,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.PrivateGatewayResponse;
import org.apache.cloudstack.api.response.StaticRouteResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -35,7 +37,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.StaticRoute;
import com.cloud.network.vpc.VpcGateway;
-import com.cloud.user.UserContext;
@APICommand(name = "createStaticRoute", description="Creates a static route", responseObject=StaticRouteResponse.class)
public class CreateStaticRouteCmd extends BaseAsyncCreateCmd{
@@ -92,7 +93,7 @@ public class CreateStaticRouteCmd extends BaseAsyncCreateCmd{
boolean success = false;
StaticRoute route = _entityMgr.findById(StaticRoute.class, getEntityId());
try {
- UserContext.current().setEventDetails("Static route Id: " + getEntityId());
+ CallContext.current().setEventDetails("Static route Id: " + getEntityId());
success = _vpcService.applyStaticRoutes(route.getVpcId());
// State is different after the route is applied, so get new object here
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
index 04a7788..78e4363 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
@@ -27,6 +27,8 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.VpcOfferingResponse;
import org.apache.cloudstack.api.response.VpcResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -35,7 +37,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.Vpc;
-import com.cloud.user.UserContext;
@APICommand(name = "createVPC", description="Creates a VPC", responseObject=VpcResponse.class)
public class CreateVPCCmd extends BaseAsyncCreateCmd{
@@ -179,7 +180,7 @@ public class CreateVPCCmd extends BaseAsyncCreateCmd{
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
index 87c1c9d..502b7a2 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
@@ -26,13 +26,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.StaticRouteResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.StaticRoute;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteStaticRoute", description="Deletes a static route", responseObject=SuccessResponse.class)
public class DeleteStaticRouteCmd extends BaseAsyncCmd{
@@ -92,7 +93,7 @@ public class DeleteStaticRouteCmd extends BaseAsyncCmd{
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Route Id: " + id);
+ CallContext.current().setEventDetails("Route Id: " + id);
boolean result = _vpcService.revokeStaticRoute(id);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
index 0618e34..7625b0d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.VpnUsersResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.network.VpnUser;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "addVpnUser", description="Adds vpn users", responseObject=VpnUsersResponse.class)
public class AddVpnUserCmd extends BaseAsyncCreateCmd {
@@ -97,7 +98,7 @@ public class AddVpnUserCmd extends BaseAsyncCreateCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
index 38b40b5..1602c29 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.Site2SiteCustomerGateway;
-import com.cloud.user.UserContext;
@APICommand(name = "createVpnCustomerGateway", description="Creates site to site vpn customer gateway", responseObject=Site2SiteCustomerGatewayResponse.class)
public class CreateVpnCustomerGatewayCmd extends BaseAsyncCmd {
@@ -137,7 +138,7 @@ public class CreateVpnCustomerGatewayCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, null, true);
if (accountId == null) {
- accountId = UserContext.current().getCaller().getId();
+ accountId = CallContext.current().getCallingAccount().getId();
}
return accountId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
index 06c2530..640a89a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
@@ -23,13 +23,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.RemoteAccessVpn;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteRemoteAccessVpn", description="Destroys a l2tp/ipsec remote access vpn", responseObject=SuccessResponse.class)
public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException {
- _ravService.destroyRemoteAccessVpnForIp(publicIpId, UserContext.current().getCaller());
+ _ravService.destroyRemoteAccessVpnForIp(publicIpId, CallContext.current().getCallingAccount());
}
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
index 9520e80..9b3fa70 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "removeVpnUser", description="Removes vpn user", responseObject=SuccessResponse.class)
public class RemoveVpnUserCmd extends BaseAsyncCmd {
@@ -89,7 +90,7 @@ public class RemoveVpnUserCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
@@ -108,7 +109,7 @@ public class RemoveVpnUserCmd extends BaseAsyncCmd {
@Override
public void execute(){
Account owner = _accountService.getAccount(getEntityOwnerId());
- boolean result = _ravService.removeVpnUser(owner.getId(), userName, UserContext.current().getCaller());
+ boolean result = _ravService.removeVpnUser(owner.getId(), userName, CallContext.current().getCallingAccount());
if (!result) {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove vpn user");
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/ResetVpnConnectionCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/ResetVpnConnectionCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/ResetVpnConnectionCmd.java
index d9f38d2..6caa571 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/ResetVpnConnectionCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/ResetVpnConnectionCmd.java
@@ -24,13 +24,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Site2SiteVpnConnection;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "resetVpnConnection", description="Reset site to site vpn connection", responseObject=Site2SiteVpnConnectionResponse.class)
public class ResetVpnConnectionCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class ResetVpnConnectionCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, null, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return Account.ACCOUNT_ID_SYSTEM;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
index 3aca5cd..72ecf8f 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.Site2SiteCustomerGateway;
-import com.cloud.user.UserContext;
@APICommand(name = "updateVpnCustomerGateway", description="Update site to site vpn customer gateway", responseObject=Site2SiteCustomerGatewayResponse.class)
public class UpdateVpnCustomerGatewayCmd extends BaseAsyncCmd {
@@ -136,7 +137,7 @@ public class UpdateVpnCustomerGatewayCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, null, true);
if (accountId == null) {
- accountId = UserContext.current().getCaller().getId();
+ accountId = CallContext.current().getCallingAccount().getId();
}
return accountId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/context/CallContext.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/context/CallContext.java b/api/src/org/apache/cloudstack/context/CallContext.java
new file mode 100644
index 0000000..c98908a
--- /dev/null
+++ b/api/src/org/apache/cloudstack/context/CallContext.java
@@ -0,0 +1,218 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// 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,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.context;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.NDC;
+
+import com.cloud.dao.EntityManager;
+import com.cloud.exception.CloudAuthenticationException;
+import com.cloud.user.Account;
+import com.cloud.user.User;
+import com.cloud.utils.UuidUtils;
+import com.cloud.utils.exception.CloudRuntimeException;
+
+/**
+ * CallContext records information about the environment the call is made. This
+ * class must be always be available in all CloudStack code. Every thread
+ * entry point must set the context and remove it when the thread finishes.
+ */
+public class CallContext {
+ private static final Logger s_logger = Logger.getLogger(CallContext.class);
+ private static ThreadLocal<CallContext> s_currentContext = new ThreadLocal<CallContext>();
+
+ private String contextId;
+ private Account account;
+ private long startEventId = 0;
+ private String eventDetails;
+ private User user;
+ private final Map<Object, Object> context = new HashMap<Object, Object>();
+
+ private static EntityManager s_entityMgr;
+
+ public static void init(EntityManager entityMgr) {
+ s_entityMgr = entityMgr;
+ }
+
+ protected CallContext() {
+ }
+
+ protected CallContext(User user, Account account, String contextId) {
+ this.user = user;
+ this.account = account;
+ this.contextId = contextId;
+ }
+
+ public void putContextParameter(Object key, Object value) {
+ context.put(key, value);
+ }
+
+ public Object getContextParameter(Object key) {
+ return context.get(key);
+ }
+
+ public long getCallingUserId() {
+ return user.getId();
+ }
+
+ public User getCallingUser() {
+ return user;
+ }
+
+ public String getContextId() {
+ return contextId;
+ }
+
+ public Account getCallingAccount() {
+ return account;
+ }
+
+ public static CallContext current() {
+ return s_currentContext.get();
+ }
+
+ /**
+ * This method should only be called if you can propagate the context id
+ * from another CallContext.
+ *
+ * @param callingUser calling user
+ * @param callingAccount calling account
+ * @param contextId context id propagated from another call context
+ * @return CallContext
+ */
+ public static CallContext register(User callingUser, Account callingAccount, String contextId) {
+ /*
+ Unit tests will have multiple times of setup/tear-down call to this, remove assertions to all unit test to run
+
+ assert s_currentContext.get() == null : "There's a context already so what does this new register context mean? " + s_currentContext.get().toString();
+ if (s_currentContext.get() != null) { // FIXME: This should be removed soon. I added this check only to surface all the places that have this problem.
+ throw new CloudRuntimeException("There's a context already so what does this new register context mean? " + s_currentContext.get().toString());
+ }
+ */
+ CallContext callingContext = new CallContext(callingUser, callingAccount, contextId);
+ s_currentContext.set(callingContext);
+ NDC.push("ctx-" + UuidUtils.first(contextId));
+ s_logger.debug("Setting calling context: " + callingContext);
+ return callingContext;
+ }
+
+ public static CallContext register(User callingUser, Account callingAccount) {
+ return register(callingUser, callingAccount, UUID.randomUUID().toString());
+ }
+
+ public static CallContext registerSystemCallContextOnceOnly() {
+ try {
+ CallContext context = s_currentContext.get();
+ if (context == null) {
+ return register(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM);
+ }
+ assert context.getCallingUserId() == User.UID_SYSTEM : "You are calling a very specific method that registers a one time system context. This method is meant for background threads that does processing.";
+ return context;
+ } catch (Exception e) {
+ s_logger.fatal("Exiting the system because we're unable to register the system call context.", e);
+ System.exit(1);
+ throw new CloudRuntimeException("Should never hit this");
+ }
+ }
+
+ public static CallContext register(String callingUserUuid, String callingAccountUuid) {
+ Account account = s_entityMgr.findByUuid(Account.class, callingAccountUuid);
+ if (account == null) {
+ throw new CloudAuthenticationException("The account is no longer current.").add(Account.class, callingAccountUuid);
+ }
+
+ User user = s_entityMgr.findByUuid(User.class, callingUserUuid);
+ if (user == null) {
+ throw new CloudAuthenticationException("The user is no longer current.").add(User.class, callingUserUuid);
+ }
+ return register(user, account);
+ }
+
+ public static CallContext register(long callingUserId, long callingAccountId) throws CloudAuthenticationException {
+ Account account = s_entityMgr.findById(Account.class, callingAccountId);
+ if (account == null) {
+ throw new CloudAuthenticationException("The account is no longer current.").add(Account.class, Long.toString(callingAccountId));
+ }
+ User user = s_entityMgr.findById(User.class, callingUserId);
+ if (user == null) {
+ throw new CloudAuthenticationException("The user is no longer current.").add(User.class, Long.toString(callingUserId));
+ }
+ return register(user, account);
+ }
+
+ public static CallContext unregister() {
+ CallContext context = s_currentContext.get();
+ if (context == null) {
+ s_logger.trace("No context to remove");
+ return null;
+ }
+ s_currentContext.remove();
+ s_logger.debug("Context removed " + context);
+ String contextId = context.getContextId();
+ String sessionIdOnStack = null;
+ String sessionIdPushedToNDC = "ctx-" + UuidUtils.first(contextId);
+ while ((sessionIdOnStack = NDC.pop()) != null) {
+ if (sessionIdPushedToNDC.equals(sessionIdOnStack)) {
+ break;
+ }
+ if (s_logger.isTraceEnabled()) {
+ s_logger.trace("Popping from NDC: " + contextId);
+ }
+ }
+ return context;
+ }
+
+ public void setStartEventId(long startEventId) {
+ this.startEventId = startEventId;
+ }
+
+ public long getStartEventId() {
+ return startEventId;
+ }
+
+ public long getCallingAccountId() {
+ return account.getId();
+ }
+
+ public String getCallingAccountUuid() {
+ return account.getUuid();
+ }
+
+ public String getCallingUserUuid() {
+ return user.getUuid();
+ }
+
+ public void setEventDetails(String eventDetails) {
+ this.eventDetails = eventDetails;
+ }
+
+ public String getEventDetails() {
+ return eventDetails;
+ }
+
+ @Override
+ public String toString() {
+ return new StringBuffer("CallContext[acct=").append(account.getId())
+ .append("; user=").append(user.getId())
+ .append("; session=").append(contextId)
+ .append("]").toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index c717b56..0f3d328 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -832,7 +832,6 @@
<bean id="statsCollector" class="com.cloud.server.StatsCollector" />
<bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" />
<bean id="usageEventUtils" class="com.cloud.event.UsageEventUtils" />
- <bean id="userContextInitializer" class="com.cloud.user.UserContextInitializer" />
<bean id="vMEntityManagerImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl" />
<bean id="virtualMachineEntityFactory" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityFactory" />
<bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
----------------------------------------------------------------------
diff --git a/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java b/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
index 5de04f0..5b6d7ce 100644
--- a/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
+++ b/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
@@ -26,11 +26,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.discovery.ApiDiscoveryService;
+
import org.apache.log4j.Logger;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "listApis", responseObject = ApiDiscoveryResponse.class, description = "lists all available apis on the server, provided by the Api Discovery plugin", since = "4.1.0")
public class ListApisCmd extends BaseCmd {
@@ -47,7 +48,7 @@ public class ListApisCmd extends BaseCmd {
@Override
public void execute() throws ServerApiException {
if (_apiDiscoveryService != null) {
- User user = UserContext.current().getCallerUser();
+ User user = CallContext.current().getCallingUser();
ListResponse<ApiDiscoveryResponse> response = (ListResponse<ApiDiscoveryResponse>) _apiDiscoveryService.listApis(user, name);
if (response == null) {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Api Discovery plugin was unable to find an api by that name or process any apis");
[10/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
index 8e15a6a..f7a0285 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
@@ -30,6 +30,8 @@ import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.LoadBalancerResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
@@ -44,7 +46,6 @@ import com.cloud.network.IpAddress;
import com.cloud.network.Network;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
@APICommand(name = "createLoadBalancerRule", description="Creates a load balancer rule", responseObject=LoadBalancerResponse.class)
@@ -237,14 +238,14 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements
@Override
public void execute() throws ResourceAllocationException, ResourceUnavailableException {
- UserContext callerContext = UserContext.current();
+ CallContext callerContext = CallContext.current();
boolean success = true;
LoadBalancer rule = null;
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
if (getOpenFirewall()) {
- success = success && _firewallService.applyIngressFirewallRules(getSourceIpAddressId(), callerContext.getCaller());
+ success = success && _firewallService.applyIngressFirewallRules(getSourceIpAddressId(), callerContext.getCallingAccount());
}
// State might be different after the rule is applied, so get new object here
@@ -327,7 +328,7 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements
if (domainId != null) {
return domainId;
}
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
public int getDefaultPortStart() {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
index 5c83df1..ae41e75 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteLoadBalancer", description="Deletes a load balancer", responseObject=SuccessResponse.class, since="4.2.0")
public class DeleteApplicationLoadBalancerCmd extends BaseAsyncCmd {
@@ -84,7 +85,7 @@ public class DeleteApplicationLoadBalancerCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Load balancer Id: " + getId());
+ CallContext.current().setEventDetails("Load balancer Id: " + getId());
boolean result = _appLbService.deleteApplicationLoadBalancer(getId());
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java
index bf91da5..1d4b88e 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.loadbalancer;
import org.apache.cloudstack.api.response.LBHealthCheckResponse;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
@@ -26,12 +27,13 @@ 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.InvalidParameterValueException;
import com.cloud.network.rules.HealthCheckPolicy;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteLBHealthCheckPolicy", description = "Deletes a load balancer HealthCheck policy.", responseObject = SuccessResponse.class, since="4.2.0")
public class DeleteLBHealthCheckPolicyCmd extends BaseAsyncCmd {
@@ -64,7 +66,7 @@ public class DeleteLBHealthCheckPolicyCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -84,7 +86,7 @@ public class DeleteLBHealthCheckPolicyCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("Load balancer healthcheck policy Id: " + getId());
+ CallContext.current().setEventDetails("Load balancer healthcheck policy Id: " + getId());
boolean result = _lbService.deleteLBHealthCheckPolicy(getId() , true);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBStickinessPolicyCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBStickinessPolicyCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBStickinessPolicyCmd.java
index fc7be24..ba2df96 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBStickinessPolicyCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBStickinessPolicyCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.LBStickinessResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.network.rules.StickinessPolicy;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteLBStickinessPolicy", description = "Deletes a LB stickiness policy.", responseObject = SuccessResponse.class, since="3.0.0")
public class DeleteLBStickinessPolicyCmd extends BaseAsyncCmd {
@@ -64,7 +65,7 @@ public class DeleteLBStickinessPolicyCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -84,7 +85,7 @@ public class DeleteLBStickinessPolicyCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("Load balancer stickiness policy Id: " + getId());
+ CallContext.current().setEventDetails("Load balancer stickiness policy Id: " + getId());
boolean result = _lbService.deleteLBStickinessPolicy(getId(), true);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
index 0e72d67..5afc3b3 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteLoadBalancerRule", description="Deletes a load balancer rule.", responseObject=SuccessResponse.class)
public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
@@ -85,7 +86,7 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Load balancer Id: "+getId());
+ CallContext.current().setEventDetails("Load balancer Id: "+getId());
boolean result = _firewallService.revokeRelatedFirewallRule(id, true);
result = result && _lbService.deleteLoadBalancerRule(id, true);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java
index cf5ea32..1c43d56 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
+
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
@@ -29,11 +30,11 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.LBHealthCheckResponse;
import org.apache.cloudstack.api.response.LBStickinessResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.network.rules.HealthCheckPolicy;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "listLBHealthCheckPolicies", description = "Lists load balancer HealthCheck policies.", responseObject = LBHealthCheckResponse.class, since="4.2.0")
public class ListLBHealthCheckPoliciesCmd extends BaseListCmd {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
index 9456a15..f71b721 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.LBStickinessResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.network.rules.StickinessPolicy;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "listLBStickinessPolicies", description = "Lists LBStickiness policies.", responseObject = LBStickinessResponse.class, since="3.0.0")
public class ListLBStickinessPoliciesCmd extends BaseListCmd {
@@ -71,7 +72,7 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd {
if (lb != null) {
//check permissions
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountService.checkAccess(caller, null, true, lb);
List<? extends StickinessPolicy> stickinessPolicies = _lbService.searchForLBStickinessPolicies(this);
LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(stickinessPolicies, lb);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/RemoveFromLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/RemoveFromLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/RemoveFromLoadBalancerRuleCmd.java
index 92a05d6..b7ec4d1 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/RemoveFromLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/RemoveFromLoadBalancerRuleCmd.java
@@ -27,13 +27,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
@APICommand(name = "removeFromLoadBalancerRule", description="Removes a virtual machine or a list of virtual machines from a load balancer rule.", responseObject=SuccessResponse.class)
@@ -96,7 +97,7 @@ public class RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Load balancer Id: "+getId()+" VmIds: "+StringUtils.join(getVirtualMachineIds(), ","));
+ CallContext.current().setEventDetails("Load balancer Id: "+getId()+" VmIds: "+StringUtils.join(getVirtualMachineIds(), ","));
boolean result = _lbService.removeFromLoadBalancer(id, virtualMachineIds);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
index c296057..2fd9427 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.LoadBalancerResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateLoadBalancerRule", description="Updates load balancer", responseObject=LoadBalancerResponse.class)
public class UpdateLoadBalancerRuleCmd extends BaseAsyncCmd {
@@ -103,7 +104,7 @@ public class UpdateLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Load balancer Id: "+getId());
+ CallContext.current().setEventDetails("Load balancer Id: "+getId());
LoadBalancer result = _lbService.updateLoadBalancerRule(this);
if (result != null){
LoadBalancerResponse response = _responseGenerator.createLoadBalancerResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
index 354f3e9..39790fa 100644
--- a/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
@@ -29,6 +29,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -39,7 +41,6 @@ import com.cloud.network.IpAddress;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.StaticNatRule;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createIpForwardingRule", description="Creates an ip forwarding rule", responseObject=FirewallRuleResponse.class)
public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd implements StaticNatRule {
@@ -111,13 +112,13 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd implements Sta
boolean result = true;
FirewallRule rule = null;
try {
- UserContext.current().setEventDetails("Rule Id: "+ getEntityId());
+ CallContext.current().setEventDetails("Rule Id: "+ getEntityId());
if (getOpenFirewall()) {
- result = result && _firewallService.applyIngressFirewallRules(ipAddressId, UserContext.current().getCaller());
+ result = result && _firewallService.applyIngressFirewallRules(ipAddressId, CallContext.current().getCallingAccount());
}
- result = result && _rulesService.applyStaticNatRules(ipAddressId, UserContext.current().getCaller());
+ result = result && _rulesService.applyStaticNatRules(ipAddressId, CallContext.current().getCallingAccount());
rule = _entityMgr.findById(FirewallRule.class, getEntityId());
StaticNatRule staticNatRule = _rulesService.buildStaticNatRule(rule, false);
IpForwardingRuleResponse fwResponse = _responseGenerator.createIpForwardingRuleResponse(staticNatRule);
@@ -157,7 +158,7 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd implements Sta
@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/api/src/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
index f2b0b9b..fe41028 100644
--- a/api/src/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
@@ -26,12 +26,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.rules.FirewallRule;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteIpForwardingRule", description="Deletes an ip forwarding rule", responseObject=SuccessResponse.class)
public class DeleteIpForwardingRuleCmd extends BaseAsyncCmd {
@@ -70,7 +71,7 @@ public class DeleteIpForwardingRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Rule Id: "+id);
+ CallContext.current().setEventDetails("Rule Id: "+id);
boolean result = _firewallService.revokeRelatedFirewallRule(id, true);
result = result && _rulesService.revokeStaticNatRule(id, true);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
index 3a56fe4..02c6cd8 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import com.cloud.network.vpc.NetworkACL;
import com.cloud.network.vpc.NetworkACLItem;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,6 +32,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NetworkACLItemResponse;
import org.apache.cloudstack.api.response.NetworkACLResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -42,7 +45,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.vpc.Vpc;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
@APICommand(name = "createNetworkACL", description = "Creates a ACL rule in the given network (the network has to belong to VPC)",
@@ -171,7 +173,7 @@ public class CreateNetworkACLCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@@ -220,7 +222,7 @@ public class CreateNetworkACLCmd extends BaseAsyncCreateCmd {
boolean success = false;
NetworkACLItem rule = _networkACLService.getNetworkACLItem(getEntityId());
try {
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
success = _networkACLService.applyNetworkACL(rule.getAclId());
// State is different after the rule is applied, so get new object here
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
index 591a354..d587fe5 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
@@ -22,7 +22,7 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.NetworkACL;
import com.cloud.network.vpc.Vpc;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,6 +31,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NetworkACLResponse;
import org.apache.cloudstack.api.response.VpcResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
@APICommand(name = "createNetworkACLList", description = "Creates a Network ACL for the given VPC",
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
index 445c4ed..c926d81 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
@@ -23,6 +23,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.*;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.ConcurrentOperationException;
@@ -32,7 +34,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.offering.NetworkOffering;
-import com.cloud.user.UserContext;
@APICommand(name = "createNetwork", description="Creates a network", responseObject=NetworkResponse.class)
public class CreateNetworkCmd extends BaseCmd {
@@ -274,7 +275,7 @@ public class CreateNetworkCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
index d35b22c..94bf50a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.user.network;
import com.cloud.network.vpc.NetworkACLItem;
import com.cloud.user.Account;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -28,6 +29,8 @@ import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.NetworkACLItemResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.async.AsyncJob;
@@ -35,7 +38,6 @@ import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.FirewallRule;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteNetworkACL", description="Deletes a Network ACL", responseObject=SuccessResponse.class)
public class DeleteNetworkACLCmd extends BaseAsyncCmd {
@@ -78,13 +80,13 @@ public class DeleteNetworkACLCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Network ACL Item Id: " + id);
+ CallContext.current().setEventDetails("Network ACL Item Id: " + id);
boolean result = _networkACLService.revokeNetworkACLItem(id);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
index 379b44a..bbfe908 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
@@ -24,12 +24,14 @@ import com.cloud.network.rules.FirewallRule;
import com.cloud.network.vpc.NetworkACL;
import com.cloud.network.vpc.Vpc;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.NetworkACLResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
@APICommand(name = "deleteNetworkACLList", description="Deletes a Network ACL", responseObject=SuccessResponse.class)
@@ -73,13 +75,13 @@ public class DeleteNetworkACLListCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Network ACL Id: " + id);
+ CallContext.current().setEventDetails("Network ACL Id: " + id);
boolean result = _networkACLService.deleteNetworkACL(id);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
index 954146e..6e1b380 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.admin.network.DeleteNetworkOfferingCmd;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.Network;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteNetwork", description="Deletes a network", responseObject=SuccessResponse.class)
public class DeleteNetworkCmd extends BaseAsyncCmd{
@@ -66,7 +67,7 @@ public class DeleteNetworkCmd extends BaseAsyncCmd{
@Override
public void execute(){
- UserContext.current().setEventDetails("Network Id: " + id);
+ CallContext.current().setEventDetails("Network Id: " + id);
boolean result = _networkService.deleteNetwork(id);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/ReplaceNetworkACLListCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/ReplaceNetworkACLListCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/ReplaceNetworkACLListCmd.java
index 67f40d1..c92992c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/ReplaceNetworkACLListCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/ReplaceNetworkACLListCmd.java
@@ -22,12 +22,14 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.NetworkACL;
import com.cloud.network.vpc.Vpc;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.NetworkACLResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.PrivateGatewayResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
@APICommand(name = "replaceNetworkACLList", description="Replaces ACL associated with a Network or private gateway", responseObject=SuccessResponse.class)
@@ -87,7 +89,7 @@ public class ReplaceNetworkACLListCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@@ -101,7 +103,7 @@ public class ReplaceNetworkACLListCmd extends BaseAsyncCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Network id and private gateway can't be passed at the same time");
}
- UserContext.current().setEventDetails("Network ACL Id: " + aclId);
+ CallContext.current().setEventDetails("Network ACL Id: " + aclId);
boolean result = false;
if (getPrivateGatewayId() != null) {
result = _networkACLService.replaceNetworkACLonPrivateGw(aclId, privateGatewayId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
index 1ea815a..d7862a1 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
@@ -21,12 +21,14 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.vpc.NetworkACLItem;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.net.NetUtils;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.NetworkACLItemResponse;
import org.apache.cloudstack.api.response.NetworkACLResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import java.util.ArrayList;
@@ -134,7 +136,7 @@ public class UpdateNetworkACLItemCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
return caller.getAccountId();
}
@@ -158,7 +160,7 @@ public class UpdateNetworkACLItemCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException {
- UserContext.current().setEventDetails("Rule Id: " + getId());
+ CallContext.current().setEventDetails("Rule Id: " + getId());
NetworkACLItem aclItem = _networkACLService.updateNetworkACLItem(getId(), getProtocol(), getSourceCidrList(), getTrafficType(),
getAction(), getNumber(), getSourcePortStart(), getSourcePortEnd(), getIcmpCode(), getIcmpType());
if (aclItem == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
index fe38124..d024e4b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -33,7 +35,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.Network;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "updateNetwork", description="Updates a network", responseObject=NetworkResponse.class)
public class UpdateNetworkCmd extends BaseAsyncCmd {
@@ -129,7 +130,7 @@ public class UpdateNetworkCmd extends BaseAsyncCmd {
@Override
public void execute() throws InsufficientCapacityException, ConcurrentOperationException{
- User callerUser = _accountService.getActiveUser(UserContext.current().getCallerUserId());
+ User callerUser = _accountService.getActiveUser(CallContext.current().getCallingUserId());
Account callerAccount = _accountService.getActiveAccountById(callerUser.getAccountId());
Network network = _networkService.getNetwork(id);
if (network == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/ActivateProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/ActivateProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/ActivateProjectCmd.java
index 95889fe..1f49d8c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/ActivateProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/ActivateProjectCmd.java
@@ -23,12 +23,13 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "activateProject", description="Activates a project", responseObject=ProjectResponse.class, since="3.0.0")
public class ActivateProjectCmd extends BaseAsyncCmd {
@@ -76,7 +77,7 @@ public class ActivateProjectCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Project id: "+ getId());
+ CallContext.current().setEventDetails("Project id: "+ getId());
Project project = _projectService.activateProject(getId());
if (project != null) {
ProjectResponse response = _responseGenerator.createProjectResponse(project);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/CreateProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/CreateProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/CreateProjectCmd.java
index 7515f05..71c8f26 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/CreateProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/CreateProjectCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.projects.Project;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createProject", description = "Creates a project", responseObject = ProjectResponse.class, since = "3.0.0")
public class CreateProjectCmd extends BaseAsyncCreateCmd {
@@ -65,7 +66,7 @@ public class CreateProjectCmd extends BaseAsyncCreateCmd {
if (accountName != null) {
return accountName;
} else {
- return UserContext.current().getCaller().getAccountName();
+ return CallContext.current().getCallingAccount().getAccountName();
}
}
@@ -73,7 +74,7 @@ public class CreateProjectCmd extends BaseAsyncCreateCmd {
if (domainId != null) {
return domainId;
} else {
- return UserContext.current().getCaller().getDomainId();
+ return CallContext.current().getCallingAccount().getDomainId();
}
}
@@ -93,7 +94,7 @@ public class CreateProjectCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if ((accountName != null && domainId == null) || (domainId != null && accountName == null)) {
throw new InvalidParameterValueException("Account name and domain id must be specified together");
@@ -124,7 +125,7 @@ public class CreateProjectCmd extends BaseAsyncCreateCmd {
@Override
public void create() throws ResourceAllocationException {
- UserContext.current().setEventDetails("Project Name: " + getName());
+ CallContext.current().setEventDetails("Project Name: " + getName());
Project project = _projectService.createProject(getName(), getDisplayText(), getAccountName(), getDomainId());
if (project != null) {
this.setEntityId(project.getId());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectCmd.java
index 9b61b69..c3208fb 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteProject", description="Deletes a project", responseObject=SuccessResponse.class, since="3.0.0")
public class DeleteProjectCmd extends BaseAsyncCmd {
@@ -65,7 +66,7 @@ public class DeleteProjectCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Project Id: " + id);
+ CallContext.current().setEventDetails("Project Id: " + id);
boolean result = _projectService.deleteProject(id);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectInvitationCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectInvitationCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectInvitationCmd.java
index 27d1b50..46eb4fd 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectInvitationCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/DeleteProjectInvitationCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectInvitationResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteProjectInvitation", description = "Accepts or declines project invitation", responseObject = SuccessResponse.class, since = "3.0.0")
public class DeleteProjectInvitationCmd extends BaseAsyncCmd {
@@ -66,7 +67,7 @@ public class DeleteProjectInvitationCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("Project invitation id " + id);
+ CallContext.current().setEventDetails("Project invitation id " + id);
boolean result = _projectService.deleteProjectInvitation(id);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/SuspendProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/SuspendProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/SuspendProjectCmd.java
index e2f4bd6..b5e59ce 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/SuspendProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/SuspendProjectCmd.java
@@ -23,6 +23,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -30,7 +32,6 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "suspendProject", description="Suspends a project", responseObject=ProjectResponse.class, since="3.0.0")
public class SuspendProjectCmd extends BaseAsyncCmd {
@@ -66,7 +67,7 @@ public class SuspendProjectCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException{
- UserContext.current().setEventDetails("Project Id: " + id);
+ CallContext.current().setEventDetails("Project Id: " + id);
Project project = _projectService.suspendProject(id);
if (project != null) {
ProjectResponse response = _responseGenerator.createProjectResponse(project);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectCmd.java
index e475bc7..ac7de8d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectCmd.java
@@ -23,13 +23,14 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.projects.Project;
-import com.cloud.user.UserContext;
@APICommand(name = "updateProject", description="Updates a project", responseObject=ProjectResponse.class, since="3.0.0")
public class UpdateProjectCmd extends BaseAsyncCmd {
@@ -90,7 +91,7 @@ public class UpdateProjectCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceAllocationException{
- UserContext.current().setEventDetails("Project id: "+ getId());
+ CallContext.current().setEventDetails("Project id: "+ getId());
Project project = _projectService.updateProject(getId(), getDisplayText(), getAccountName());
if (project != null) {
ProjectResponse response = _responseGenerator.createProjectResponse(project);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectInvitationCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectInvitationCmd.java b/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectInvitationCmd.java
index f34814a..3ce8890 100644
--- a/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectInvitationCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/project/UpdateProjectInvitationCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateProjectInvitation", description = "Accepts or declines project invitation", responseObject = SuccessResponse.class, since = "3.0.0")
public class UpdateProjectInvitationCmd extends BaseAsyncCmd {
@@ -90,7 +91,7 @@ public class UpdateProjectInvitationCmd extends BaseAsyncCmd {
@Override
public void execute() {
- UserContext.current().setEventDetails("Project id: " + projectId + "; accountName " + accountName + "; accept " + getAccept());
+ CallContext.current().setEventDetails("Project id: " + projectId + "; accountName " + accountName + "; accept " + getAccept());
boolean result = _projectService.updateInvitation(projectId, accountName, token, getAccept());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java
index c66cc46..b34dc3e 100644
--- a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java
@@ -24,15 +24,18 @@ import com.cloud.network.rules.LoadBalancer;
import com.cloud.region.ha.GlobalLoadBalancerRule;
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import javax.inject.Inject;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -146,7 +149,7 @@ public class AssignToGlobalLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Global Load balancer rule Id: "+ getGlobalLoadBalancerRuleId()+ " VmIds: "
+ CallContext.current().setEventDetails("Global Load balancer rule Id: "+ getGlobalLoadBalancerRuleId()+ " VmIds: "
+ StringUtils.join(getLoadBalancerRulesIds(), ","));
boolean result = _gslbService.assignToGlobalLoadBalancerRule(this);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
index d39e466..57b227d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
@@ -22,11 +22,13 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.region.ha.GlobalLoadBalancerRule;
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
import org.apache.cloudstack.api.response.RegionResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import javax.inject.Inject;
@@ -129,7 +131,7 @@ public class CreateGlobalLoadBalancerRuleCmd extends BaseAsyncCreateCmd {
@Override
public void execute() throws ResourceAllocationException, ResourceUnavailableException {
- UserContext callerContext = UserContext.current();
+ CallContext callerContext = CallContext.current();
GlobalLoadBalancerRule rule = _entityMgr.findById(GlobalLoadBalancerRule.class, getEntityId());
GlobalLoadBalancerResponse response = null;
if (rule != null) {
@@ -145,7 +147,7 @@ public class CreateGlobalLoadBalancerRuleCmd extends BaseAsyncCreateCmd {
GlobalLoadBalancerRule gslbRule = _gslbService.createGlobalLoadBalancerRule(this);
this.setEntityId(gslbRule.getId());
this.setEntityUuid(gslbRule.getUuid());
- UserContext.current().setEventDetails("Rule Id: " + getEntityId());
+ CallContext.current().setEventDetails("Rule Id: " + getEntityId());
} catch (Exception ex) {
s_logger.warn("Exception: ", ex);
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, ex.getMessage());
@@ -174,7 +176,7 @@ public class CreateGlobalLoadBalancerRuleCmd extends BaseAsyncCreateCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, null, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
index 35401e8..6608660 100644
--- a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
@@ -21,10 +21,12 @@ import com.cloud.event.EventTypes;
import com.cloud.region.ha.GlobalLoadBalancerRule;
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import javax.inject.Inject;
@@ -86,7 +88,7 @@ public class DeleteGlobalLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Deleting global Load balancer rule Id: " + getGlobalLoadBalancerId());
+ CallContext.current().setEventDetails("Deleting global Load balancer rule Id: " + getGlobalLoadBalancerId());
boolean result = _gslbService.deleteGlobalLoadBalancerRule(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/RemoveFromGlobalLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/RemoveFromGlobalLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/RemoveFromGlobalLoadBalancerRuleCmd.java
index fa051af..ff71f67 100644
--- a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/RemoveFromGlobalLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/RemoveFromGlobalLoadBalancerRuleCmd.java
@@ -22,15 +22,18 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.region.ha.GlobalLoadBalancerRule;
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import javax.inject.Inject;
+
import java.util.List;
@APICommand(name = "removeFromGlobalLoadBalancerRule", description="Removes a load balancer rule association with" +
@@ -98,7 +101,7 @@ public class RemoveFromGlobalLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Global Load balancer rule Id: "+ getGlobalLoadBalancerRuleId()+ " VmIds: "
+ CallContext.current().setEventDetails("Global Load balancer rule Id: "+ getGlobalLoadBalancerRuleId()+ " VmIds: "
+ StringUtils.join(getLoadBalancerRulesIds(), ","));
boolean result = _gslbService.removeFromGlobalLoadBalancerRule(this);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java
index 6671886..6d76413 100644
--- a/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/region/ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java
@@ -99,7 +99,7 @@ public class UpdateGlobalLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute() {
- com.cloud.user.UserContext.current().setEventDetails("Global Load balancer Id: "+getId());
+ org.apache.cloudstack.context.CallContext.current().setEventDetails("Global Load balancer Id: "+getId());
GlobalLoadBalancerRule gslbRule = _gslbService.updateGlobalLoadBalancerRule(this);
if (gslbRule != null) {
GlobalLoadBalancerResponse response = _responseGenerator.createGlobalLoadBalancerResponse(gslbRule);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceCountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceCountCmd.java b/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceCountCmd.java
index 0f4c932..9c726d1 100644
--- a/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceCountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceCountCmd.java
@@ -29,11 +29,12 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.ResourceCountResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.configuration.ResourceCount;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "updateResourceCount", description="Recalculate and update resource count for an account or domain.", responseObject=ResourceCountResponse.class)
public class UpdateResourceCountCmd extends BaseCmd {
@@ -99,7 +100,7 @@ public class UpdateResourceCountCmd extends BaseCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceLimitCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceLimitCmd.java b/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceLimitCmd.java
index 826596c..4a5b345 100644
--- a/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceLimitCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/resource/UpdateResourceLimitCmd.java
@@ -25,10 +25,11 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.ResourceLimitResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.configuration.ResourceLimit;
-import com.cloud.user.UserContext;
@APICommand(name = "updateResourceLimit", description="Updates resource limits for an account or domain.", responseObject=ResourceLimitResponse.class)
public class UpdateResourceLimitCmd extends BaseCmd {
@@ -96,7 +97,7 @@ public class UpdateResourceLimitCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java b/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
index 321a5f6..cac9614 100644
--- a/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
@@ -33,12 +33,13 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.security.SecurityRule;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
@APICommand(name = "authorizeSecurityGroupEgress", responseObject = SecurityGroupRuleResponse.class, description = "Authorizes a particular egress rule for this security group", since="3.0.0")
@@ -164,7 +165,7 @@ public class AuthorizeSecurityGroupEgressCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java b/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
index 9ab0fb5..3dfcd05 100644
--- a/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
@@ -33,12 +33,13 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.security.SecurityRule;
-import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
import com.cloud.utils.net.NetUtils;
@@ -165,7 +166,7 @@ public class AuthorizeSecurityGroupIngressCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/securitygroup/CreateSecurityGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/securitygroup/CreateSecurityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/securitygroup/CreateSecurityGroupCmd.java
index 839afb2..52611b8 100644
--- a/api/src/org/apache/cloudstack/api/command/user/securitygroup/CreateSecurityGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/securitygroup/CreateSecurityGroupCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.network.security.SecurityGroup;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createSecurityGroup", responseObject = SecurityGroupResponse.class, description = "Creates a security group")
public class CreateSecurityGroupCmd extends BaseCmd {
@@ -91,7 +92,7 @@ public class CreateSecurityGroupCmd extends BaseCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/securitygroup/DeleteSecurityGroupCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/securitygroup/DeleteSecurityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/securitygroup/DeleteSecurityGroupCmd.java
index aa6ec2d..7e9b9de 100644
--- a/api/src/org/apache/cloudstack/api/command/user/securitygroup/DeleteSecurityGroupCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/securitygroup/DeleteSecurityGroupCmd.java
@@ -26,11 +26,12 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceInUseException;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteSecurityGroup", description="Deletes security group", responseObject=SuccessResponse.class)
public class DeleteSecurityGroupCmd extends BaseCmd {
@@ -107,7 +108,7 @@ public class DeleteSecurityGroupCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
index f5cb900..9fe5ffe 100644
--- a/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
@@ -28,6 +28,8 @@ import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.SnapshotPolicyResponse;
import org.apache.cloudstack.api.response.SnapshotResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -38,7 +40,6 @@ import com.cloud.projects.Project;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createSnapshot", description = "Creates an instant snapshot of a volume.", responseObject = SnapshotResponse.class)
public class CreateSnapshotCmd extends BaseAsyncCreateCmd {
@@ -164,7 +165,7 @@ public class CreateSnapshotCmd extends BaseAsyncCreateCmd {
@Override
public void execute() {
s_logger.info("VOLSS: createSnapshotCmd starts:" + System.currentTimeMillis());
- UserContext.current().setEventDetails("Volume Id: "+getVolumeId());
+ CallContext.current().setEventDetails("Volume Id: "+getVolumeId());
Snapshot snapshot;
try {
snapshot = _volumeService.takeSnapshot(this.getVolumeId(), this.getPolicyId(), this.getEntityId(), _accountService.getAccount(getEntityOwnerId()));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
index 6c26e81..7892261 100644
--- a/api/src/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
@@ -25,12 +25,13 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SnapshotResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.storage.Snapshot;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteSnapshot", description="Deletes a snapshot of a disk volume.", responseObject=SuccessResponse.class)
public class DeleteSnapshotCmd extends BaseAsyncCmd {
@@ -92,7 +93,7 @@ public class DeleteSnapshotCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Snapshot Id: "+getId());
+ CallContext.current().setEventDetails("Snapshot Id: "+getId());
boolean result = _snapshotService.deleteSnapshot(getId());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/ssh/CreateSSHKeyPairCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/ssh/CreateSSHKeyPairCmd.java b/api/src/org/apache/cloudstack/api/command/user/ssh/CreateSSHKeyPairCmd.java
index 56bec7e..6f1a081 100644
--- a/api/src/org/apache/cloudstack/api/command/user/ssh/CreateSSHKeyPairCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/ssh/CreateSSHKeyPairCmd.java
@@ -23,10 +23,11 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SSHKeyPairResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.user.SSHKeyPair;
-import com.cloud.user.UserContext;
@APICommand(name = "createSSHKeyPair", description="Create a new keypair and returns the private key", responseObject=SSHKeyPairResponse.class)
public class CreateSSHKeyPairCmd extends BaseCmd {
@@ -81,7 +82,7 @@ public class CreateSSHKeyPairCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/ssh/DeleteSSHKeyPairCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/ssh/DeleteSSHKeyPairCmd.java b/api/src/org/apache/cloudstack/api/command/user/ssh/DeleteSSHKeyPairCmd.java
index b05a675..eb2d237 100644
--- a/api/src/org/apache/cloudstack/api/command/user/ssh/DeleteSSHKeyPairCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/ssh/DeleteSSHKeyPairCmd.java
@@ -23,10 +23,11 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteSSHKeyPair", description="Deletes a keypair by name", responseObject=SuccessResponse.class)
public class DeleteSSHKeyPairCmd extends BaseCmd {
@@ -90,7 +91,7 @@ public class DeleteSSHKeyPairCmd extends BaseCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/ssh/RegisterSSHKeyPairCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/ssh/RegisterSSHKeyPairCmd.java b/api/src/org/apache/cloudstack/api/command/user/ssh/RegisterSSHKeyPairCmd.java
index b05c6b1..8530375 100644
--- a/api/src/org/apache/cloudstack/api/command/user/ssh/RegisterSSHKeyPairCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/ssh/RegisterSSHKeyPairCmd.java
@@ -23,10 +23,11 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.SSHKeyPairResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.user.SSHKeyPair;
-import com.cloud.user.UserContext;
@APICommand(name = "registerSSHKeyPair", description="Register a public key in a keypair under a certain name", responseObject=SSHKeyPairResponse.class)
public class RegisterSSHKeyPairCmd extends BaseCmd {
@@ -87,7 +88,7 @@ public class RegisterSSHKeyPairCmd extends BaseCmd {
public long getEntityOwnerId() {
Long accountId = finalyzeAccountId(accountName, domainId, projectId, true);
if (accountId == null) {
- return UserContext.current().getCaller().getId();
+ return CallContext.current().getCallingAccount().getId();
}
return accountId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
index 4921b5e..a25bd65 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
@@ -28,6 +28,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -35,7 +37,6 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "copyTemplate", description="Copies a template from one zone to another.", responseObject=TemplateResponse.class)
public class CopyTemplateCmd extends BaseAsyncCmd {
@@ -120,7 +121,7 @@ public class CopyTemplateCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceAllocationException{
try {
- UserContext.current().setEventDetails(getEventDescription());
+ CallContext.current().setEventDetails(getEventDescription());
VirtualMachineTemplate template = _templateService.copyTemplate(this);
if (template != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
index 07aeb0a..271357d 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
@@ -25,7 +25,7 @@ import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiCommandJobType;
import org.apache.cloudstack.api.ApiConstants;
@@ -38,6 +38,8 @@ import org.apache.cloudstack.api.response.SnapshotResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import java.util.Collection;
@@ -251,7 +253,7 @@ import java.util.Map;
@Override
public void execute() {
- UserContext.current().setEventDetails("Template Id: "+getEntityId()+((getSnapshotId() == null) ? " from volume Id: " + getVolumeId() : " from snapshot Id: " + getSnapshotId()));
+ CallContext.current().setEventDetails("Template Id: "+getEntityId()+((getSnapshotId() == null) ? " from volume Id: " + getVolumeId() : " from snapshot Id: " + getSnapshotId()));
VirtualMachineTemplate template = null;
template = this._templateService.createPrivateTemplate(this);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
index b2be2f2..bfaff99 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
@@ -26,13 +26,13 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteTemplate", responseObject=SuccessResponse.class, description="Deletes a template from the system. All virtual machines using the deleted template will not be affected.")
public class DeleteTemplateCmd extends BaseAsyncCmd {
@@ -108,7 +108,7 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Template Id: "+getId());
+ CallContext.current().setEventDetails("Template Id: "+getId());
boolean result = _templateService.deleteTemplate(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
[08/12] 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 code. Part
Posted by ah...@apache.org.
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<HostVO> 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<DedicatedResourceVO> 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<HostVO> 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<DedicatedResourceVO> 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<DomainRouterVO> {
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<DomainRouterVO> {
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<String, String> details;
long id;
- ActionDelegate<Long> actionDelegate;
- public SimulateStartTask(long id, ServerResource resource, Map<String, String> details, ActionDelegate<Long> actionDelegate) {
+ public SimulateStartTask(long id, ServerResource resource, Map<String, String> 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();
}
}
}
[07/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/ApiDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java
index b886256..c0b3117 100755
--- a/server/src/com/cloud/api/ApiDispatcher.java
+++ b/server/src/com/cloud/api/ApiDispatcher.java
@@ -33,6 +33,9 @@ import java.util.regex.Matcher;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.InfrastructureEntity;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -51,19 +54,16 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.Validate;
import org.apache.cloudstack.api.command.admin.resource.ArchiveAlertsCmd;
import org.apache.cloudstack.api.command.admin.resource.DeleteAlertsCmd;
-import org.apache.cloudstack.api.command.admin.resource.ListAlertsCmd;
import org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd;
import org.apache.cloudstack.api.command.user.event.DeleteEventsCmd;
import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.async.AsyncJobManager;
import com.cloud.dao.EntityManager;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.DateUtil;
import com.cloud.utils.ReflectUtil;
import com.cloud.utils.exception.CSExceptionErrorCode;
@@ -74,9 +74,12 @@ public class ApiDispatcher {
private static final Logger s_logger = Logger.getLogger(ApiDispatcher.class.getName());
Long _createSnapshotQueueSizeLimit;
- @Inject AsyncJobManager _asyncMgr = null;
- @Inject AccountManager _accountMgr = null;
- @Inject EntityManager _entityMgr = null;
+ @Inject
+ AsyncJobManager _asyncMgr = null;
+ @Inject
+ AccountManager _accountMgr = null;
+ @Inject
+ EntityManager _entityMgr = null;
private static ApiDispatcher s_instance;
@@ -89,7 +92,7 @@ public class ApiDispatcher {
@PostConstruct
void init() {
- s_instance = this;
+ s_instance = this;
}
public void setCreateSnapshotQueueSizeLimit(Long snapshotLimit) {
@@ -99,27 +102,25 @@ public class ApiDispatcher {
public void dispatchCreateCmd(BaseAsyncCreateCmd cmd, Map<String, String> params) throws Exception {
processParameters(cmd, params);
- UserContext ctx = UserContext.current();
- ctx.setAccountId(cmd.getEntityOwnerId());
- cmd.create();
+ cmd.create();
}
private void doAccessChecks(BaseCmd cmd, Map<Object, AccessType> entitiesToAccess) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getActiveAccountById(cmd.getEntityOwnerId());
- if(cmd instanceof BaseAsyncCreateCmd) {
+ if (cmd instanceof BaseAsyncCreateCmd) {
//check that caller can access the owner account.
_accountMgr.checkAccess(caller, null, true, owner);
}
- if(!entitiesToAccess.isEmpty()){
+ if (!entitiesToAccess.isEmpty()) {
//check that caller can access the owner account.
_accountMgr.checkAccess(caller, null, true, owner);
for (Object entity : entitiesToAccess.keySet()) {
if (entity instanceof ControlledEntity) {
- _accountMgr.checkAccess(caller, entitiesToAccess.get(entity), true, (ControlledEntity) entity);
+ _accountMgr.checkAccess(caller, entitiesToAccess.get(entity), true, (ControlledEntity)entity);
}
else if (entity instanceof InfrastructureEntity) {
//FIXME: Move this code in adapter, remove code from Account manager
@@ -129,37 +130,36 @@ public class ApiDispatcher {
}
public void dispatch(BaseCmd cmd, Map<String, String> params) throws Exception {
- processParameters(cmd, params);
- UserContext ctx = UserContext.current();
- ctx.setAccountId(cmd.getEntityOwnerId());
-
- if (cmd instanceof BaseAsyncCmd) {
-
- BaseAsyncCmd asyncCmd = (BaseAsyncCmd) cmd;
- String startEventId = params.get("ctxStartEventId");
- ctx.setStartEventId(Long.valueOf(startEventId));
-
- // Synchronise job on the object if needed
- if (asyncCmd.getJob() != null && asyncCmd.getSyncObjId() != null && asyncCmd.getSyncObjType() != null) {
- Long queueSizeLimit = null;
- if (asyncCmd.getSyncObjType() != null && asyncCmd.getSyncObjType().equalsIgnoreCase(BaseAsyncCmd.snapshotHostSyncObject)) {
- queueSizeLimit = _createSnapshotQueueSizeLimit;
- } else {
- queueSizeLimit = 1L;
- }
+ processParameters(cmd, params);
+ CallContext ctx = CallContext.current();
+
+ if (cmd instanceof BaseAsyncCmd) {
+
+ BaseAsyncCmd asyncCmd = (BaseAsyncCmd)cmd;
+ String startEventId = params.get("ctxStartEventId");
+ ctx.setStartEventId(Long.valueOf(startEventId));
- if (queueSizeLimit != null) {
+ // Synchronise job on the object if needed
+ if (asyncCmd.getJob() != null && asyncCmd.getSyncObjId() != null && asyncCmd.getSyncObjType() != null) {
+ Long queueSizeLimit = null;
+ if (asyncCmd.getSyncObjType() != null && asyncCmd.getSyncObjType().equalsIgnoreCase(BaseAsyncCmd.snapshotHostSyncObject)) {
+ queueSizeLimit = _createSnapshotQueueSizeLimit;
+ } else {
+ queueSizeLimit = 1L;
+ }
+
+ if (queueSizeLimit != null) {
_asyncMgr.syncAsyncJobExecution(asyncCmd.getJob(), asyncCmd.getSyncObjType(), asyncCmd.getSyncObjId().longValue(), queueSizeLimit);
- } else {
- s_logger.trace("The queue size is unlimited, skipping the synchronizing");
- }
+ } else {
+ s_logger.trace("The queue size is unlimited, skipping the synchronizing");
}
}
- cmd.execute();
+ }
+ cmd.execute();
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
+ @SuppressWarnings({"unchecked", "rawtypes"})
public static void processParameters(BaseCmd cmd, Map<String, String> params) {
Map<Object, AccessType> entitiesToAccess = new HashMap<Object, AccessType>();
Map<String, Object> unpackedParams = cmd.unpackParams(params);
@@ -168,7 +168,7 @@ public class ApiDispatcher {
Object pageSizeObj = unpackedParams.get(ApiConstants.PAGE_SIZE);
Long pageSize = null;
if (pageSizeObj != null) {
- pageSize = Long.valueOf((String) pageSizeObj);
+ pageSize = Long.valueOf((String)pageSizeObj);
}
if ((unpackedParams.get(ApiConstants.PAGE) == null) && (pageSize != null && !pageSize.equals(BaseListCmd.PAGESIZE_UNLIMITED))) {
@@ -193,7 +193,8 @@ public class ApiDispatcher {
Object paramObj = unpackedParams.get(parameterAnnotation.name());
if (paramObj == null) {
if (parameterAnnotation.required()) {
- throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8) + " due to missing parameter "
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8)
+ + " due to missing parameter "
+ parameterAnnotation.name());
}
continue;
@@ -206,24 +207,28 @@ public class ApiDispatcher {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Unable to execute API command " + cmd.getCommandName() + " due to invalid value " + paramObj + " for parameter " + parameterAnnotation.name());
}
- throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8) + " due to invalid value " + paramObj
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8)
+ + " due to invalid value " + paramObj
+ " for parameter "
+ parameterAnnotation.name());
} catch (ParseException parseEx) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Invalid date parameter " + paramObj + " passed to command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8));
}
- throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to parse date " + paramObj + " for command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8)
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to parse date " + paramObj + " for command "
+ + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8)
+ ", please pass dates in the format mentioned in the api documentation");
} catch (InvalidParameterValueException invEx) {
- throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8) + " due to invalid value. " + invEx.getMessage());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to execute API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8)
+ + " due to invalid value. " + invEx.getMessage());
} catch (CloudRuntimeException cloudEx) {
- s_logger.error("CloudRuntimeException", cloudEx);
+ s_logger.error("CloudRuntimeException", cloudEx);
// FIXME: Better error message? This only happens if the API command is not executable, which typically
//means
// there was
// and IllegalAccessException setting one of the parameters.
- throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Internal error executing API command " + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8));
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Internal error executing API command "
+ + cmd.getCommandName().substring(0, cmd.getCommandName().length() - 8));
}
//check access on the resource this field points to
@@ -252,30 +257,30 @@ public class ApiDispatcher {
switch (listType) {
case LONG:
case UUID:
- List<Long> listParam = (List<Long>) field.get(cmd);
+ List<Long> listParam = (List<Long>)field.get(cmd);
for (Long entityId : listParam) {
Object entityObj = s_instance._entityMgr.findById(entity, entityId);
entitiesToAccess.put(entityObj, checkAccess.accessType());
}
break;
- /*
- * case STRING: List<String> listParam =
- * new ArrayList<String>(); listParam =
- * (List)field.get(cmd); for(String
- * entityName: listParam){
- * ControlledEntity entityObj =
- * (ControlledEntity
- * )daoClassInstance(entityId);
- * entitiesToAccess.add(entityObj); }
- * break;
- */
+ /*
+ * case STRING: List<String> listParam =
+ * new ArrayList<String>(); listParam =
+ * (List)field.get(cmd); for(String
+ * entityName: listParam){
+ * ControlledEntity entityObj =
+ * (ControlledEntity
+ * )daoClassInstance(entityId);
+ * entitiesToAccess.add(entityObj); }
+ * break;
+ */
default:
break;
}
break;
case LONG:
case UUID:
- Object entityObj = s_instance._entityMgr.findById(entity, (Long) field.get(cmd));
+ Object entityObj = s_instance._entityMgr.findById(entity, (Long)field.get(cmd));
entitiesToAccess.put(entityObj, checkAccess.accessType());
break;
default:
@@ -333,7 +338,7 @@ public class ApiDispatcher {
if (isPre3x && !isUuid) {
try {
internalId = Long.parseLong(uuid);
- } catch(NumberFormatException e) {
+ } catch (NumberFormatException e) {
internalId = null;
}
if (internalId != null)
@@ -344,7 +349,7 @@ public class ApiDispatcher {
Class<?>[] entities = annotation.entityType()[0].getAnnotation(EntityReference.class).value();
// Go through each entity which is an interface to a VO class and get a VO object
// Try to getId() for the object using reflection, break on first non-null value
- for (Class<?> entity: entities) {
+ for (Class<?> entity : entities) {
// For backward compatibility, we search within removed entities and let service layer deal
// with removed ones, return empty response or error
Object objVO = s_instance._entityMgr.findByUuidIncludingRemoved(entity, uuid);
@@ -366,12 +371,12 @@ public class ApiDispatcher {
if (s_logger.isDebugEnabled())
s_logger.debug("Object entity uuid = " + uuid + " does not exist in the database.");
throw new InvalidParameterValueException("Invalid parameter " + annotation.name() + " value=" + uuid
- + " due to incorrect long value format, or entity does not exist or due to incorrect parameter annotation for the field in api cmd class.");
+ + " due to incorrect long value format, or entity does not exist or due to incorrect parameter annotation for the field in api cmd class.");
}
return internalId;
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
+ @SuppressWarnings({"unchecked", "rawtypes"})
private static void setFieldValue(Field field, BaseCmd cmdObj, Object paramObj, Parameter annotation) throws IllegalArgumentException, ParseException {
try {
field.setAccessible(true);
@@ -387,8 +392,7 @@ public class ApiDispatcher {
if (cmdObj instanceof ListEventsCmd || cmdObj instanceof DeleteEventsCmd
|| cmdObj instanceof ArchiveEventsCmd
|| cmdObj instanceof ArchiveAlertsCmd
- || cmdObj instanceof DeleteAlertsCmd
- ) {
+ || cmdObj instanceof DeleteAlertsCmd) {
boolean isObjInNewDateFormat = isObjInNewDateFormat(paramObj.toString());
if (isObjInNewDateFormat) {
DateFormat newFormat = BaseCmd.NEW_INPUT_FORMAT;
@@ -450,7 +454,7 @@ public class ApiDispatcher {
case LONG: {
listParam.add(Long.valueOf(token));
}
- break;
+ break;
case SHORT:
listParam.add(Short.valueOf(token));
case STRING:
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 090d9c2..a1e2106 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -133,6 +133,7 @@ import org.apache.cloudstack.api.response.VpcOfferingResponse;
import org.apache.cloudstack.api.response.VpcResponse;
import org.apache.cloudstack.api.response.VpnUsersResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
import org.apache.cloudstack.region.PortableIp;
import org.apache.cloudstack.region.PortableIpRange;
@@ -141,6 +142,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.usage.Usage;
import org.apache.cloudstack.usage.UsageService;
import org.apache.cloudstack.usage.UsageTypes;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -276,7 +278,6 @@ import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair;
import com.cloud.utils.StringUtils;
@@ -699,7 +700,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
// show this info to admin only
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account.getType() == Account.ACCOUNT_TYPE_ADMIN) {
VlanVO vl = ApiDBUtils.findVlanById(ipAddr.getVlanId());
if (vl != null) {
@@ -2182,7 +2183,7 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setReservedIpRange(reservation);
// return vlan information only to Root admin
- if (network.getBroadcastUri() != null && UserContext.current().getCaller().getType() == Account.ACCOUNT_TYPE_ADMIN) {
+ if (network.getBroadcastUri() != null && CallContext.current().getCallingAccount().getType() == Account.ACCOUNT_TYPE_ADMIN) {
String broadcastUri = network.getBroadcastUri().toString();
response.setBroadcastUri(broadcastUri);
String vlan = "N/A";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index 86b4cdd..5a72e37 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -52,34 +52,6 @@ import javax.naming.ConfigurationException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.apache.cloudstack.acl.APIChecker;
-import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseAsyncCmd;
-import org.apache.cloudstack.api.BaseAsyncCreateCmd;
-import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.BaseListCmd;
-import org.apache.cloudstack.api.ResponseObject;
-import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.command.admin.host.ListHostsCmd;
-import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd;
-import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
-import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
-import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
-import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
-import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
-import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
-import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
-import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd;
-import org.apache.cloudstack.api.command.user.project.ListProjectsCmd;
-import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd;
-import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
-import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
-import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
-import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
-import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
-import org.apache.cloudstack.api.response.ExceptionResponse;
-import org.apache.cloudstack.api.response.ListResponse;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.ConnectionClosedException;
import org.apache.http.HttpException;
@@ -111,6 +83,36 @@ import org.apache.http.protocol.ResponseServer;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import org.apache.cloudstack.acl.APIChecker;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseAsyncCreateCmd;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.BaseListCmd;
+import org.apache.cloudstack.api.ResponseObject;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.command.admin.host.ListHostsCmd;
+import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd;
+import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
+import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
+import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
+import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
+import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
+import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
+import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
+import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd;
+import org.apache.cloudstack.api.command.user.project.ListProjectsCmd;
+import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd;
+import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
+import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
+import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
+import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
+import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
+import org.apache.cloudstack.api.response.ExceptionResponse;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.api.response.ApiResponseSerializer;
import com.cloud.async.AsyncCommandQueued;
import com.cloud.async.AsyncJob;
@@ -119,6 +121,7 @@ import com.cloud.async.AsyncJobVO;
import com.cloud.configuration.Config;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.dao.EntityManager;
import com.cloud.domain.Domain;
import com.cloud.domain.DomainVO;
import com.cloud.event.ActionEventUtils;
@@ -135,7 +138,6 @@ import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -162,6 +164,8 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
@Inject private DomainManager _domainMgr;
@Inject private AsyncJobManager _asyncMgr;
@Inject private ConfigurationDao _configDao;
+ @Inject
+ private EntityManager _entityMgr;
@Inject List<PluggableService> _pluggableServices;
@Inject List<APIChecker> _apiAccessCheckers;
@@ -179,6 +183,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
@PostConstruct
void initComponent() {
s_instance = this;
+ CallContext.init(_entityMgr);
}
public static ApiServer getInstance() {
@@ -297,7 +302,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
try {
// always trust commands from API port, user context will always be UID_SYSTEM/ACCOUNT_ID_SYSTEM
- UserContext.registerContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, true);
+ CallContext.register(_accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
sb.insert(0, "(userId=" + User.UID_SYSTEM + " accountId=" + Account.ACCOUNT_ID_SYSTEM + " sessionId=" + null + ") ");
String responseText = handleRequest(parameterMap, responseType, sb);
sb.append(" 200 " + ((responseText == null) ? 0 : responseText.length()));
@@ -314,7 +319,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
}
} finally {
s_accessLogger.info(sb.toString());
- UserContext.unregisterContext();
+ CallContext.unregister();
}
}
@@ -411,7 +416,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
catch (InsufficientCapacityException ex){
s_logger.info(ex.getMessage());
String errorMsg = ex.getMessage();
- if (UserContext.current().getCaller().getType() != Account.ACCOUNT_TYPE_ADMIN){
+ if (CallContext.current().getCallingAccount().getType() != Account.ACCOUNT_TYPE_ADMIN){
// hide internal details to non-admin user for security reason
errorMsg = BaseCmd.USER_ERROR_MESSAGE;
@@ -421,7 +426,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
catch (ResourceAllocationException ex){
s_logger.info(ex.getMessage());
String errorMsg = ex.getMessage();
- if (UserContext.current().getCaller().getType() != Account.ACCOUNT_TYPE_ADMIN){
+ if (CallContext.current().getCallingAccount().getType() != Account.ACCOUNT_TYPE_ADMIN){
// hide internal details to non-admin user for security reason
errorMsg = BaseCmd.USER_ERROR_MESSAGE;
}
@@ -430,7 +435,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
catch (ResourceUnavailableException ex){
s_logger.info(ex.getMessage());
String errorMsg = ex.getMessage();
- if (UserContext.current().getCaller().getType() != Account.ACCOUNT_TYPE_ADMIN){
+ if (CallContext.current().getCallingAccount().getType() != Account.ACCOUNT_TYPE_ADMIN){
// hide internal details to non-admin user for security reason
errorMsg = BaseCmd.USER_ERROR_MESSAGE;
}
@@ -447,7 +452,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
catch (Exception ex){
s_logger.error("unhandled exception executing api command: " + ((command == null) ? "null" : command[0]), ex);
String errorMsg = ex.getMessage();
- if (UserContext.current().getCaller().getType() != Account.ACCOUNT_TYPE_ADMIN){
+ if (CallContext.current().getCallingAccount().getType() != Account.ACCOUNT_TYPE_ADMIN){
// hide internal details to non-admin user for security reason
errorMsg = BaseCmd.USER_ERROR_MESSAGE;
}
@@ -458,9 +463,9 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
}
private String queueCommand(BaseCmd cmdObj, Map<String, String> params) throws Exception {
- UserContext ctx = UserContext.current();
- Long callerUserId = ctx.getCallerUserId();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Long callerUserId = ctx.getCallingUserId();
+ Account caller = ctx.getCallingAccount();
// Queue command based on Cmd super class:
@@ -504,8 +509,6 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
params.put("ctxStartEventId", String.valueOf(startEventId));
params.put("cmdEventType", asyncCmd.getEventType().toString());
- ctx.setAccountId(asyncCmd.getEntityOwnerId());
-
Long instanceId = (objectId == null) ? asyncCmd.getInstanceId() : objectId;
AsyncJobVO job = new AsyncJobVO(callerUserId, caller.getId(), cmdObj.getClass().getName(),
ApiGsonHelper.getBuilder().create().toJson(params), instanceId, asyncCmd.getInstanceType());
@@ -731,8 +734,6 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
return false;
}
- UserContext.updateContext(user.getId(), account, null);
-
try{
checkCommandAvailable(user, commandName);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/ApiServlet.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java
index 7525b61..2a5ad73 100755
--- a/server/src/com/cloud/api/ApiServlet.java
+++ b/server/src/com/cloud/api/ApiServlet.java
@@ -31,17 +31,20 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.ServerApiException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.context.CallContext;
+
+import com.cloud.dao.EntityManager;
import com.cloud.exception.CloudAuthenticationException;
import com.cloud.user.Account;
import com.cloud.user.AccountService;
-import com.cloud.user.UserContext;
+import com.cloud.user.User;
import com.cloud.utils.StringUtils;
@Component("apiServlet")
@@ -52,13 +55,15 @@ public class ApiServlet extends HttpServlet {
@Inject ApiServerService _apiServer;
@Inject AccountService _accountMgr;
+ @Inject
+ EntityManager _entityMgr;
public ApiServlet() {
}
@Override
public void init(ServletConfig config) throws ServletException {
- SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
+ SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
@Override
@@ -235,7 +240,6 @@ public class ApiServlet extends HttpServlet {
// Initialize an empty context and we will update it after we have verified the request below,
// we no longer rely on web-session here, verifyRequest will populate user/account information
// if a API key exists
- UserContext.registerContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
Long userId = null;
if (!isNew) {
@@ -266,7 +270,8 @@ public class ApiServlet extends HttpServlet {
writeResponse(resp, serializedResponse, HttpServletResponse.SC_BAD_REQUEST, responseType);
return;
}
- UserContext.updateContext(userId, (Account) accountObj, session.getId());
+ User user = _entityMgr.findById(User.class, userId);
+ CallContext.register(user, (Account)accountObj);
} else {
// Invalidate the session to ensure we won't allow a request across management server
// restarts if the userId was serialized to the stored session
@@ -280,6 +285,8 @@ public class ApiServlet extends HttpServlet {
writeResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType);
return;
}
+ } else {
+ CallContext.register(_accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
}
if (_apiServer.verifyRequest(params, userId)) {
@@ -296,8 +303,8 @@ public class ApiServlet extends HttpServlet {
* key mechanism updateUserContext(params, session != null ? session.getId() : null);
*/
- auditTrailSb.insert(0, "(userId=" + UserContext.current().getCallerUserId() + " accountId="
- + UserContext.current().getCaller().getId() + " sessionId=" + (session != null ? session.getId() : null) + ")");
+ auditTrailSb.insert(0, "(userId=" + CallContext.current().getCallingUserId() + " accountId="
+ + CallContext.current().getCallingAccount().getId() + " sessionId=" + (session != null ? session.getId() : null) + ")");
// Add the HTTP method (GET/POST/PUT/DELETE) as well into the params map.
params.put("httpmethod", new String[] { req.getMethod() });
@@ -330,7 +337,7 @@ public class ApiServlet extends HttpServlet {
s_logger.debug("===END=== " + StringUtils.cleanString(reqStr));
}
// cleanup user context to prevent from being peeked in other request context
- UserContext.unregisterContext();
+ CallContext.unregister();
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 462a276..cef5ddf 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -77,8 +77,10 @@ import org.apache.cloudstack.api.response.UserResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState;
import org.apache.cloudstack.query.QueryService;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -166,7 +168,6 @@ import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
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.Pair;
@@ -334,7 +335,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<UserAccountJoinVO>, Integer> searchForUsersInternal(ListUsersCmd cmd)
throws PermissionDeniedException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// TODO: Integrate with ACL checkAccess refactoring
Long domainId = cmd.getDomainId();
@@ -440,7 +441,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
private Pair<List<EventJoinVO>, Integer> searchForEventsInternal(ListEventsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Long id = cmd.getId();
@@ -555,7 +556,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
private Pair<List<ResourceTagJoinVO>, Integer> listTagsInternal(ListTagsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
String key = cmd.getKey();
String value = cmd.getValue();
@@ -636,7 +637,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
String name = cmd.getGroupName();
String keyword = cmd.getKeyword();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
@@ -689,7 +690,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
private Pair<List<UserVmJoinVO>, Integer> searchForUserVMsInternal(ListVMsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
String hypervisor = cmd.getHypervisor();
boolean listAll = cmd.listAll();
@@ -947,7 +948,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<SecurityGroupJoinVO>, Integer> searchForSecurityGroupsInternal(ListSecurityGroupsCmd cmd)
throws PermissionDeniedException, InvalidParameterValueException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long instanceId = cmd.getVirtualMachineId();
String securityGroup = cmd.getSecurityGroupName();
Long id = cmd.getId();
@@ -1080,7 +1081,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<DomainRouterJoinVO>, Integer> searchForRoutersInternal(BaseListProjectAndAccountResourcesCmd cmd, Long id,
String name, String state, Long zoneId, Long podId, Long hostId, String keyword, Long networkId, Long vpcId, Boolean forVpc, String role) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
@@ -1216,7 +1217,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
boolean isRecursive = cmd.isRecursive();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long accountId = null;
String path = null;
@@ -1358,7 +1359,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
boolean isRecursive = cmd.isRecursive();
boolean listAll = cmd.listAll();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
@@ -1424,7 +1425,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
// long projectId, String accountName, String role, Long startIndex,
// Long pageSizeVal) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// check that the project exists
Project project = _projectDao.findById(projectId);
@@ -1483,7 +1484,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
public Pair<List<HostJoinVO>, Integer> searchForServersInternal(ListHostsCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Object name = cmd.getHostName();
Object type = cmd.getType();
Object state = cmd.getState();
@@ -1595,7 +1596,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<VolumeJoinVO>, Integer> searchForVolumesInternal(ListVolumesCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Long id = cmd.getId();
@@ -1730,7 +1731,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
private Pair<List<AccountJoinVO>, Integer> searchForAccountsInternal(ListAccountsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long domainId = cmd.getDomainId();
Long accountId = cmd.getId();
String accountName = cmd.getSearchName();
@@ -1858,7 +1859,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<AsyncJobJoinVO>, Integer> searchForAsyncJobsInternal(ListAsyncJobsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
@@ -1946,7 +1947,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
}
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Object id = cmd.getId();
Object name = cmd.getStoragePoolName();
Object path = cmd.getPath();
@@ -2038,7 +2039,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<ImageStoreJoinVO>, Integer> searchForImageStoresInternal(ListImageStoresCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Object id = cmd.getId();
Object name = cmd.getStoreName();
String provider = cmd.getProvider();
@@ -2118,7 +2119,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
private Pair<List<ImageStoreJoinVO>, Integer> searchForCacheStoresInternal(ListCacheStoresCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Object id = cmd.getId();
Object name = cmd.getStoreName();
String provider = cmd.getProvider();
@@ -2212,7 +2213,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
cmd.getPageSizeVal());
SearchCriteria<DiskOfferingJoinVO> sc = _diskOfferingJoinDao.createSearchCriteria();
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
Object name = cmd.getDiskOfferingName();
Object id = cmd.getId();
Object keyword = cmd.getKeyword();
@@ -2333,7 +2334,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
cmd.getPageSizeVal());
SearchCriteria<ServiceOfferingJoinVO> sc = _srvOfferingJoinDao.createSearchCriteria();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Object name = cmd.getServiceOfferingName();
Object id = cmd.getId();
Object keyword = cmd.getKeyword();
@@ -2455,7 +2456,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
}
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesByCmd cmd) {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
Long domainId = cmd.getDomainId();
Long id = cmd.getId();
String keyword = cmd.getKeyword();
@@ -2651,7 +2652,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
TemplateFilter templateFilter = TemplateFilter.valueOf(cmd.getTemplateFilter());
Long id = cmd.getId();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
boolean listAll = false;
if (templateFilter != null && templateFilter == TemplateFilter.all) {
@@ -2935,7 +2936,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
TemplateFilter isoFilter = TemplateFilter.valueOf(cmd.getIsoFilter());
Long id = cmd.getId();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
boolean listAll = false;
if (isoFilter != null && isoFilter == TemplateFilter.all) {
@@ -2981,7 +2982,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
String affinityGroupName, String affinityGroupType, Long vmId, String accountName, Long domainId,
boolean isRecursive, boolean listAll, Long startIndex, Long pageSize) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long accountId = caller.getAccountId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/query/ViewResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/ViewResponseHelper.java b/server/src/com/cloud/api/query/ViewResponseHelper.java
index 5972229..8e69dd1 100644
--- a/server/src/com/cloud/api/query/ViewResponseHelper.java
+++ b/server/src/com/cloud/api/query/ViewResponseHelper.java
@@ -37,7 +37,7 @@ import com.cloud.api.query.vo.UserAccountJoinVO;
import com.cloud.api.query.vo.UserVmJoinVO;
import com.cloud.api.query.vo.VolumeJoinVO;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.ApiConstants.HostDetails;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
@@ -62,11 +62,13 @@ import org.apache.cloudstack.api.response.UserResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.api.query.vo.ImageStoreJoinVO;
import com.cloud.api.query.vo.TemplateJoinVO;
+
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Hashtable;
@@ -118,7 +120,7 @@ public class ViewResponseHelper {
}
public static List<UserVmResponse> createUserVmResponse(String objectName, EnumSet<VMDetails> details, UserVmJoinVO... userVms) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Hashtable<Long, UserVmResponse> vmDataList = new Hashtable<Long, UserVmResponse>();
// Initialise the vmdatalist with the input data
@@ -139,7 +141,7 @@ public class ViewResponseHelper {
}
public static List<DomainRouterResponse> createDomainRouterResponse(DomainRouterJoinVO... routers) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Hashtable<Long, DomainRouterResponse> vrDataList = new Hashtable<Long, DomainRouterResponse>();
// Initialise the vrdatalist with the input data
for (DomainRouterJoinVO vr : routers) {
@@ -159,7 +161,7 @@ public class ViewResponseHelper {
public static List<SecurityGroupResponse> createSecurityGroupResponses(List<SecurityGroupJoinVO> securityGroups) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Hashtable<Long, SecurityGroupResponse> vrDataList = new Hashtable<Long, SecurityGroupResponse>();
// Initialise the vrdatalist with the input data
for (SecurityGroupJoinVO vr : securityGroups) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java
index 4c8b545..edceb26 100644
--- a/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java
@@ -17,6 +17,7 @@
package com.cloud.api.query.dao;
import java.util.List;
+
import javax.ejb.Local;
import org.apache.log4j.Logger;
@@ -25,13 +26,15 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.DataCenterJoinVO;
import com.cloud.dc.DataCenter;
+
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
+
import org.springframework.stereotype.Component;
@Component
@@ -56,7 +59,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
@Override
public ZoneResponse newDataCenterResponse(DataCenterJoinVO dataCenter, Boolean showCapacities) {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
ZoneResponse zoneResponse = new ZoneResponse();
zoneResponse.setId(dataCenter.getUuid());
zoneResponse.setName(dataCenter.getName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
index d78580c..6fe776f 100644
--- a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
@@ -26,8 +26,10 @@ import javax.inject.Inject;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.response.TemplateResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -42,7 +44,6 @@ import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
@@ -97,7 +98,7 @@ public class TemplateJoinDaoImpl extends GenericDaoBase<TemplateJoinVO, Long> im
private String getTemplateStatus(TemplateJoinVO template){
boolean isAdmin = false;
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if ((caller == null) || BaseCmd.isAdmin(caller.getType())) {
isAdmin = true;
}
@@ -316,7 +317,7 @@ public class TemplateJoinDaoImpl extends GenericDaoBase<TemplateJoinVO, Long> im
isoResponse.setDomainName(iso.getDomainName());
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
boolean isAdmin = false;
if ((caller == null) || BaseCmd.isAdmin(caller.getType())) {
isAdmin = true;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
index 1c18c96..90bb8c0 100644
--- a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
@@ -23,6 +23,8 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -37,7 +39,6 @@ import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
@@ -73,7 +74,7 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
@Override
public VolumeResponse newVolumeResponse(VolumeJoinVO volume) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VolumeResponse volResponse = new VolumeResponse();
volResponse.setId(volume.getUuid());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/async/AsyncJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/async/AsyncJobManagerImpl.java b/server/src/com/cloud/async/AsyncJobManagerImpl.java
index d3efdee..42ca3ae 100644
--- a/server/src/com/cloud/async/AsyncJobManagerImpl.java
+++ b/server/src/com/cloud/async/AsyncJobManagerImpl.java
@@ -36,42 +36,44 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import org.apache.log4j.Logger;
+import org.apache.log4j.NDC;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.stereotype.Component;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
import org.apache.cloudstack.api.ApiCommandJobType;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
import org.apache.cloudstack.api.response.ExceptionResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.events.EventBus;
import org.apache.cloudstack.framework.events.EventBusException;
-import org.apache.log4j.Logger;
-import org.apache.log4j.NDC;
-import org.springframework.stereotype.Component;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import com.cloud.api.ApiDispatcher;
import com.cloud.api.ApiDBUtils;
+import com.cloud.api.ApiDispatcher;
import com.cloud.api.ApiGsonHelper;
import com.cloud.api.ApiSerializerHelper;
import com.cloud.async.dao.AsyncJobDao;
-import com.cloud.domain.dao.DomainDao;
-import com.cloud.domain.Domain;
-import com.cloud.domain.DomainVO;
-
import com.cloud.cluster.ClusterManager;
import com.cloud.cluster.ClusterManagerListener;
import com.cloud.cluster.ManagementServerHostVO;
import com.cloud.configuration.Config;
import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.dao.EntityManager;
+import com.cloud.domain.DomainVO;
+import com.cloud.domain.dao.DomainDao;
+import com.cloud.event.EventCategory;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
-import com.cloud.event.EventCategory;
-import com.cloud.event.EventTypes;
import com.cloud.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
@@ -86,8 +88,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.exception.ExceptionUtil;
import com.cloud.utils.mgmt.JmxUtil;
import com.cloud.utils.net.MacAddress;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
@Component
@Local(value={AsyncJobManager.class})
@@ -110,6 +110,9 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
private long _jobExpireSeconds = 86400; // 1 day
private long _jobCancelThresholdSeconds = 3600; // 1 hour (for cancelling the jobs blocking other jobs)
+ @Inject
+ private EntityManager _entityMgr;
+
@Inject private ApiDispatcher _dispatcher;
private final ScheduledExecutorService _heartbeatScheduler =
@@ -378,7 +381,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
@Override
public AsyncJob queryAsyncJobResult(QueryAsyncJobResultCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
AsyncJobVO job = _jobDao.findById(cmd.getId());
if (job == null) {
@@ -517,16 +520,19 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
String acctIdStr = params.get("ctxAccountId");
Long userId = null;
Account accountObject = null;
+ User user = null;
if (userIdStr != null) {
userId = Long.parseLong(userIdStr);
+ user = _entityMgr.findById(User.class, userId);
}
if (acctIdStr != null) {
accountObject = _accountDao.findById(Long.parseLong(acctIdStr));
}
- UserContext.registerContext(userId, accountObject, null, false);
+
+ CallContext.register(user, accountObject);
try {
// dispatch could ultimately queue the job
_dispatcher.dispatch(cmdObj, params);
@@ -534,7 +540,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
// serialize this to the async job table
completeAsyncJob(jobId, AsyncJobResult.STATUS_SUCCEEDED, 0, cmdObj.getResponseObject());
} finally {
- UserContext.unregisterContext();
+ CallContext.unregister();
}
// commands might need to be queued as part of synchronization here, so they just have to be re-dispatched from the queue mechanism...
@@ -723,7 +729,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
for(AsyncJobVO job : l) {
s_logger.trace("Expunging unfinished job " + job);
expungeAsyncJob(job);
- }
+ }
//2) Expunge finished jobs
List<AsyncJobVO> completedJobs = _jobDao.getExpiredCompletedJobs(cutTime, 100);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 7e0bc25..fd170bd 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -39,6 +39,9 @@ import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.api.ApiConstants.LDAPParams;
import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
@@ -66,7 +69,7 @@ import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.region.PortableIp;
import org.apache.cloudstack.region.PortableIpDao;
@@ -80,8 +83,6 @@ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
import com.cloud.alert.AlertManager;
import com.cloud.api.ApiDBUtils;
@@ -182,7 +183,6 @@ import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
import com.cloud.user.ResourceLimitService;
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;
@@ -613,14 +613,14 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@Override
@ActionEvent(eventType = EventTypes.EVENT_CONFIGURATION_VALUE_EDIT, eventDescription = "updating configuration")
public Configuration updateConfiguration(UpdateCfgCmd cmd) throws InvalidParameterValueException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
String name = cmd.getCfgName();
String value = cmd.getValue();
Long zoneId = cmd.getZoneId();
Long clusterId = cmd.getClusterId();
Long storagepoolId = cmd.getStoragepoolId();
Long accountId = cmd.getAccountId();
- UserContext.current().setEventDetails(
+ CallContext.current().setEventDetails(
" Name: " + name + " New Value: "
+ (((name.toLowerCase()).contains("password")) ? "*****" : (((value == null) ? "" : value))));
// check if config value exists
@@ -1185,7 +1185,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
public Pod createPod(long zoneId, String name, String startIp, String endIp, String gateway, String netmask,
String allocationState) {
String cidr = NetUtils.ipAndNetMaskToCidr(gateway, netmask);
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
if (allocationState == null) {
allocationState = Grouping.AllocationState.Enabled.toString();
@@ -1205,7 +1205,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
// Check if zone is disabled
DataCenterVO zone = _zoneDao.findById(zoneId);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState()
&& !_accountMgr.isRootAdmin(account.getType())) {
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zoneId);
@@ -1481,7 +1481,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
Transaction txn = Transaction.currentTxn();
boolean success = false;
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
Long zoneId = cmd.getId();
if (userId == null) {
@@ -2006,7 +2006,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@ActionEvent(eventType = EventTypes.EVENT_ZONE_CREATE, eventDescription = "creating zone", async = false)
public DataCenter createZone(CreateZoneCmd cmd) {
// grab parameters from the command
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
String zoneName = cmd.getZoneName();
String dns1 = cmd.getDns1();
String dns2 = cmd.getDns2();
@@ -2062,7 +2062,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@Override
public ServiceOffering createServiceOffering(CreateServiceOfferingCmd cmd) {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
String name = cmd.getServiceOfferingName();
if ((name == null) || (name.length() == 0)) {
@@ -2185,7 +2185,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
if (details != null) {
_serviceOfferingDetailsDao.persist(offering.getId(), details);
}
- UserContext.current().setEventDetails("Service offering id=" + offering.getId());
+ CallContext.current().setEventDetails("Service offering id=" + offering.getId());
return offering;
} else {
return null;
@@ -2199,7 +2199,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
Long id = cmd.getId();
String name = cmd.getServiceOfferingName();
Integer sortKey = cmd.getSortKey();
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
if (userId == null) {
userId = Long.valueOf(User.UID_SYSTEM);
@@ -2257,7 +2257,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
if (_serviceOfferingDao.update(id, offering)) {
offering = _serviceOfferingDao.findById(id);
- UserContext.current().setEventDetails("Service offering id=" + offering.getId());
+ CallContext.current().setEventDetails("Service offering id=" + offering.getId());
return offering;
} else {
return null;
@@ -2334,10 +2334,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
if (iopsWriteRate != null && (iopsWriteRate > 0))
newDiskOffering.setIopsWriteRate(iopsWriteRate);
- UserContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
+ CallContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
DiskOfferingVO offering = _diskOfferingDao.persist(newDiskOffering);
if (offering != null) {
- UserContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
+ CallContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
return offering;
} else {
return null;
@@ -2448,7 +2448,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
// }
if (_diskOfferingDao.update(diskOfferingId, diskOffering)) {
- UserContext.current().setEventDetails("Disk offering id=" + diskOffering.getId());
+ CallContext.current().setEventDetails("Disk offering id=" + diskOffering.getId());
return _diskOfferingDao.findById(diskOfferingId);
} else {
return null;
@@ -2467,7 +2467,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
if (_diskOfferingDao.remove(diskOfferingId)) {
- UserContext.current().setEventDetails("Disk offering id=" + diskOfferingId);
+ CallContext.current().setEventDetails("Disk offering id=" + diskOfferingId);
return true;
} else {
return false;
@@ -2479,7 +2479,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
public boolean deleteServiceOffering(DeleteServiceOfferingCmd cmd) {
Long offeringId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
if (userId == null) {
userId = Long.valueOf(User.UID_SYSTEM);
@@ -2496,7 +2496,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
if (_serviceOfferingDao.remove(offeringId)) {
- UserContext.current().setEventDetails("Service offering id=" + offeringId);
+ CallContext.current().setEventDetails("Service offering id=" + offeringId);
return true;
} else {
return false;
@@ -2640,7 +2640,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
// Check if zone is enabled
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState()
&& !_accountMgr.isRootAdmin(caller.getType())) {
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zoneId);
@@ -2884,7 +2884,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
// ACL check
- checkZoneAccess(UserContext.current().getCaller(), zone);
+ checkZoneAccess(CallContext.current().getCallingAccount(), zone);
// Validate the physical network
if (_physicalNetworkDao.findById(physicalNetworkId) == null) {
@@ -3089,7 +3089,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
}
- // Check if the vlan is being used
+ // Check if the vlan is being used
if (_zoneDao.findVnet(zoneId, physicalNetworkId, vlanId).size() > 0) {
throw new InvalidParameterValueException("The VLAN tag " + vlanId
+ " is already being used for dynamic vlan allocation for the guest network in zone " + zone.getName());
@@ -3426,8 +3426,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
throw new InvalidParameterValueException("Please specify a valid IP range id.");
}
- return releasePublicIpRange(vlanDbId, UserContext.current().getCallerUserId(), UserContext.current()
- .getCaller());
+ return releasePublicIpRange(vlanDbId, CallContext.current().getCallingUserId(), CallContext.current()
+ .getCallingAccount());
}
@DB
@@ -3765,8 +3765,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
throw new InvalidParameterValueException("Please specify a valid IP range id.");
}
- return deleteVlanAndPublicIpRange(UserContext.current().getCallerUserId(), vlanDbId, UserContext.current()
- .getCaller());
+ return deleteVlanAndPublicIpRange(CallContext.current().getCallingUserId(), vlanDbId, CallContext.current()
+ .getCallingAccount());
}
@Override
@@ -4035,9 +4035,12 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
}
- return createNetworkOffering(name, displayText, trafficType, tags, specifyVlan, availability, networkRate,
+
+ NetworkOffering offering = createNetworkOffering(name, displayText, trafficType, tags, specifyVlan, availability, networkRate,
serviceProviderMap, false, guestType, false, serviceOfferingId, conserveMode, serviceCapabilityMap,
specifyIpRanges, isPersistent, details, egressDefaultPolicy);
+ CallContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
+ return offering;
}
void validateLoadBalancerServiceCapabilities(Map<Capability, String> lbServiceCapabilityMap) {
@@ -4364,7 +4367,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
txn.commit();
- UserContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
return offering;
}
@@ -4415,7 +4417,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
isAscending = (isAscending == null ? true : isAscending);
Filter searchFilter = new Filter(NetworkOfferingVO.class, "sortKey", isAscending, cmd.getStartIndex(),
cmd.getPageSizeVal());
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
SearchCriteria<NetworkOfferingVO> sc = _networkOfferingDao.createSearchCriteria();
Long id = cmd.getId();
@@ -4479,7 +4481,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
if (specifyVlan != null) {
sc.addAnd("specifyVlan", SearchCriteria.Op.EQ, specifyVlan);
- }
+ }
if (availability != null) {
sc.addAnd("availability", SearchCriteria.Op.EQ, availability);
@@ -4652,7 +4654,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@ActionEvent(eventType = EventTypes.EVENT_NETWORK_OFFERING_DELETE, eventDescription = "deleting network offering")
public boolean deleteNetworkOffering(DeleteNetworkOfferingCmd cmd) {
Long offeringId = cmd.getId();
- UserContext.current().setEventDetails(" Id: " + offeringId);
+ CallContext.current().setEventDetails(" Id: " + offeringId);
// Verify network offering id
NetworkOfferingVO offering = _networkOfferingDao.findById(offeringId);
@@ -4693,7 +4695,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
Integer sortKey = cmd.getSortKey();
Availability availability = null;
String state = cmd.getState();
- UserContext.current().setEventDetails(" Id: " + id);
+ CallContext.current().setEventDetails(" Id: " + id);
// Verify input parameters
NetworkOfferingVO offeringToUpdate = _networkOfferingDao.findById(id);
@@ -4795,7 +4797,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
acctForUpdate.setDefaultZoneId(defaultZoneId);
if (_accountDao.update(account.getId(), acctForUpdate)) {
- UserContext.current().setEventDetails("Default zone id= " + defaultZoneId);
+ CallContext.current().setEventDetails("Default zone id= " + defaultZoneId);
return _accountDao.findById(account.getId());
} else {
return null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
index bec04c0..1035c5c 100755
--- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -33,6 +33,7 @@ import org.apache.log4j.Logger;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
@@ -110,7 +111,6 @@ import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -1504,9 +1504,9 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
//release elastic IP here if assigned
IPAddressVO ip = _ipAddressDao.findByAssociatedVmId(profile.getId());
if (ip != null && ip.getSystem()) {
- UserContext ctx = UserContext.current();
+ CallContext ctx = CallContext.current();
try {
- _rulesMgr.disableStaticNat(ip.getId(), ctx.getCaller(), ctx.getCallerUserId(), true);
+ _rulesMgr.disableStaticNat(ip.getId(), ctx.getCallingAccount(), ctx.getCallingUserId(), true);
} catch (Exception ex) {
s_logger.warn("Failed to disable static nat and release system ip " + ip + " as a part of vm " + profile.getVirtualMachine() + " stop due to exception ", ex);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/event/ActionEventInterceptor.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/event/ActionEventInterceptor.java b/server/src/com/cloud/event/ActionEventInterceptor.java
index d31a355..ba7e270 100644
--- a/server/src/com/cloud/event/ActionEventInterceptor.java
+++ b/server/src/com/cloud/event/ActionEventInterceptor.java
@@ -20,7 +20,8 @@ import java.lang.reflect.Method;
import org.apache.log4j.Logger;
-import com.cloud.user.UserContext;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.utils.component.ComponentMethodInterceptor;
public class ActionEventInterceptor implements ComponentMethodInterceptor {
@@ -36,9 +37,9 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor {
if (actionEvent != null) {
boolean async = actionEvent.async();
if(async){
- UserContext ctx = UserContext.current();
- long userId = ctx.getCallerUserId();
- long accountId = ctx.getAccountId();
+ CallContext ctx = CallContext.current();
+ long userId = ctx.getCallingUserId();
+ long accountId = ctx.getCallingAccountId();
long startEventId = ctx.getStartEventId();
String eventDescription = actionEvent.eventDescription();
if(ctx.getEventDetails() != null){
@@ -54,9 +55,9 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor {
public void interceptComplete(Method method, Object target, Object event) {
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
- UserContext ctx = UserContext.current();
- long userId = ctx.getCallerUserId();
- long accountId = ctx.getAccountId();
+ CallContext ctx = CallContext.current();
+ long userId = ctx.getCallingUserId();
+ long accountId = ctx.getCallingAccountId();
long startEventId = ctx.getStartEventId();
String eventDescription = actionEvent.eventDescription();
if(ctx.getEventDetails() != null){
@@ -76,9 +77,9 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor {
public void interceptException(Method method, Object target, Object event) {
ActionEvent actionEvent = method.getAnnotation(ActionEvent.class);
if (actionEvent != null) {
- UserContext ctx = UserContext.current();
- long userId = ctx.getCallerUserId();
- long accountId = ctx.getAccountId();
+ CallContext ctx = CallContext.current();
+ long userId = ctx.getCallingUserId();
+ long accountId = ctx.getCallingAccountId();
long startEventId = ctx.getStartEventId();
String eventDescription = actionEvent.eventDescription();
if(ctx.getEventDetails() != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/event/ActionEventUtils.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/event/ActionEventUtils.java b/server/src/com/cloud/event/ActionEventUtils.java
index 906689f..7b727cd 100755
--- a/server/src/com/cloud/event/ActionEventUtils.java
+++ b/server/src/com/cloud/event/ActionEventUtils.java
@@ -17,6 +17,19 @@
package com.cloud.event;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.framework.events.EventBus;
+import org.apache.cloudstack.framework.events.EventBusException;
+
import com.cloud.event.dao.EventDao;
import com.cloud.server.ManagementServer;
import com.cloud.user.Account;
@@ -24,20 +37,8 @@ import com.cloud.user.AccountVO;
import com.cloud.user.User;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
-import com.cloud.user.UserContext;
import com.cloud.utils.component.ComponentContext;
-import org.apache.cloudstack.framework.events.EventBus;
-import org.apache.cloudstack.framework.events.EventBusException;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import java.util.HashMap;
-import java.util.Map;
-
-@Component
public class ActionEventUtils {
private static final Logger s_logger = Logger.getLogger(ActionEventUtils.class);
@@ -46,6 +47,12 @@ public class ActionEventUtils {
protected static UserDao _userDao;
protected static EventBus _eventBus = null;
+ public static final String EventDetails = "event_details";
+ public static final String EventId = "event_id";
+ public static final String EntityType = "entity_type";
+ public static final String EntityUuid = "entity_uuid";
+ public static final String EntityDetails = "entity_details";
+
@Inject EventDao eventDao;
@Inject AccountDao accountDao;
@Inject UserDao userDao;
@@ -156,10 +163,10 @@ public class ActionEventUtils {
// get the entity details for which ActionEvent is generated
String entityType = null;
String entityUuid = null;
- UserContext context = UserContext.current();
+ CallContext context = CallContext.current();
if (context != null) {
- entityType = context.getEntityType();
- entityUuid = context.getEntityUUID();
+ entityType = (String)context.getContextParameter(EntityType);
+ entityUuid = (String)context.getContextParameter(EntityUuid);
}
org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event(
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
index 23708f8..9bf52aa 100644
--- a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
+++ b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
@@ -31,11 +31,13 @@ import com.cloud.storage.dao.VolumeDetailsDao;
import com.cloud.vm.NicDetailVO;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicDetailDao;
+
import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
-
import com.cloud.api.query.dao.ResourceTagJoinDao;
import com.cloud.api.query.vo.ResourceTagJoinVO;
import com.cloud.domain.Domain;
@@ -64,7 +66,6 @@ import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.Manager;
[12/12] git commit: updated refs/heads/master to aa13152
Posted by ah...@apache.org.
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 code. Part of the vmsync branch
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/11e1e585
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/11e1e585
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/11e1e585
Branch: refs/heads/master
Commit: 11e1e585b16562f02f7671d928cb34aafebeab98
Parents: fa9ca72
Author: ahuang <al...@citrix.com>
Authored: Tue Jul 16 02:41:08 2013 -0700
Committer: ahuang <al...@citrix.com>
Committed: Tue Jul 16 11:24:21 2013 -0700
----------------------------------------------------------------------
api/src/com/cloud/user/UserContext.java | 163 -------------
.../com/cloud/user/UserContextInitializer.java | 40 ----
.../org/apache/cloudstack/api/BaseAsyncCmd.java | 10 +-
.../BaseListTemplateOrIsoPermissionsCmd.java | 5 +-
.../command/admin/account/CreateAccountCmd.java | 6 +-
.../command/admin/account/DeleteAccountCmd.java | 7 +-
.../admin/account/DisableAccountCmd.java | 5 +-
.../command/admin/domain/CreateDomainCmd.java | 5 +-
.../command/admin/domain/DeleteDomainCmd.java | 5 +-
.../command/admin/domain/UpdateDomainCmd.java | 5 +-
.../admin/host/CancelMaintenanceCmd.java | 5 +-
.../admin/host/PrepareForMaintenanceCmd.java | 5 +-
.../command/admin/host/ReconnectHostCmd.java | 5 +-
.../admin/host/ReleaseHostReservationCmd.java | 5 +-
...ConfigureInternalLoadBalancerElementCmd.java | 7 +-
.../CreateInternalLoadBalancerElementCmd.java | 5 +-
.../admin/internallb/StartInternalLBVMCmd.java | 7 +-
.../admin/internallb/StopInternalLBVMCmd.java | 7 +-
.../network/AddNetworkServiceProviderCmd.java | 5 +-
.../admin/network/CreatePhysicalNetworkCmd.java | 5 +-
.../admin/network/DeletePhysicalNetworkCmd.java | 5 +-
.../ReleaseDedicatedGuestVlanRangeCmd.java | 6 +-
.../ConfigureVirtualRouterElementCmd.java | 5 +-
.../router/CreateVirtualRouterElementCmd.java | 5 +-
.../command/admin/router/DestroyRouterCmd.java | 7 +-
.../command/admin/router/RebootRouterCmd.java | 5 +-
.../command/admin/router/StartRouterCmd.java | 5 +-
.../api/command/admin/router/StopRouterCmd.java | 5 +-
.../CancelPrimaryStorageMaintenanceCmd.java | 5 +-
.../PreparePrimaryStorageForMaintenanceCmd.java | 5 +-
.../admin/systemvm/DestroySystemVmCmd.java | 7 +-
.../admin/systemvm/MigrateSystemVMCmd.java | 7 +-
.../admin/systemvm/RebootSystemVmCmd.java | 7 +-
.../admin/systemvm/ScaleSystemVMCmd.java | 8 +-
.../admin/systemvm/StartSystemVMCmd.java | 7 +-
.../command/admin/systemvm/StopSystemVmCmd.java | 7 +-
.../admin/systemvm/UpgradeSystemVMCmd.java | 7 +-
.../command/admin/usage/AddTrafficTypeCmd.java | 5 +-
.../api/command/admin/user/CreateUserCmd.java | 7 +-
.../api/command/admin/user/DeleteUserCmd.java | 5 +-
.../api/command/admin/user/DisableUserCmd.java | 5 +-
.../api/command/admin/user/EnableUserCmd.java | 5 +-
.../api/command/admin/user/UpdateUserCmd.java | 5 +-
.../api/command/admin/vm/MigrateVMCmd.java | 7 +-
.../vm/MigrateVirtualMachineWithVolumeCmd.java | 5 +-
.../admin/vpc/DeletePrivateGatewayCmd.java | 5 +-
.../api/command/admin/zone/CreateZoneCmd.java | 5 +-
.../api/command/admin/zone/DeleteZoneCmd.java | 5 +-
.../api/command/admin/zone/UpdateZoneCmd.java | 5 +-
.../user/account/AddAccountToProjectCmd.java | 5 +-
.../account/DeleteAccountFromProjectCmd.java | 5 +-
.../user/address/AssociateIPAddrCmd.java | 11 +-
.../user/address/DisassociateIPAddrCmd.java | 5 +-
.../affinitygroup/CreateAffinityGroupCmd.java | 5 +-
.../affinitygroup/DeleteAffinityGroupCmd.java | 5 +-
.../affinitygroup/UpdateVMAffinityGroupCmd.java | 5 +-
.../autoscale/CreateAutoScaleVmProfileCmd.java | 7 +-
.../user/autoscale/CreateConditionCmd.java | 9 +-
.../autoscale/DeleteAutoScalePolicyCmd.java | 5 +-
.../autoscale/DeleteAutoScaleVmGroupCmd.java | 5 +-
.../autoscale/DeleteAutoScaleVmProfileCmd.java | 5 +-
.../autoscale/UpdateAutoScalePolicyCmd.java | 5 +-
.../autoscale/UpdateAutoScaleVmGroupCmd.java | 5 +-
.../autoscale/UpdateAutoScaleVmProfileCmd.java | 5 +-
.../command/user/event/ArchiveEventsCmd.java | 5 +-
.../api/command/user/event/DeleteEventsCmd.java | 5 +-
.../firewall/CreateEgressFirewallRuleCmd.java | 11 +-
.../user/firewall/CreateFirewallRuleCmd.java | 11 +-
.../firewall/CreatePortForwardingRuleCmd.java | 13 +-
.../firewall/DeleteEgressFirewallRuleCmd.java | 5 +-
.../user/firewall/DeleteFirewallRuleCmd.java | 5 +-
.../firewall/DeletePortForwardingRuleCmd.java | 5 +-
.../api/command/user/iso/AttachIsoCmd.java | 5 +-
.../api/command/user/iso/DeleteIsoCmd.java | 5 +-
.../api/command/user/iso/ExtractIsoCmd.java | 5 +-
.../api/command/user/iso/ListIsosCmd.java | 5 +-
.../api/command/user/iso/RegisterIsoCmd.java | 5 +-
.../AssignToLoadBalancerRuleCmd.java | 5 +-
.../CreateApplicationLoadBalancerCmd.java | 5 +-
.../CreateLBHealthCheckPolicyCmd.java | 10 +-
.../CreateLBStickinessPolicyCmd.java | 7 +-
.../loadbalancer/CreateLoadBalancerRuleCmd.java | 11 +-
.../DeleteApplicationLoadBalancerCmd.java | 5 +-
.../DeleteLBHealthCheckPolicyCmd.java | 8 +-
.../DeleteLBStickinessPolicyCmd.java | 7 +-
.../loadbalancer/DeleteLoadBalancerRuleCmd.java | 5 +-
.../ListLBHealthCheckPoliciesCmd.java | 3 +-
.../ListLBStickinessPoliciesCmd.java | 5 +-
.../RemoveFromLoadBalancerRuleCmd.java | 5 +-
.../loadbalancer/UpdateLoadBalancerRuleCmd.java | 5 +-
.../user/nat/CreateIpForwardingRuleCmd.java | 11 +-
.../user/nat/DeleteIpForwardingRuleCmd.java | 5 +-
.../user/network/CreateNetworkACLCmd.java | 8 +-
.../user/network/CreateNetworkACLListCmd.java | 4 +-
.../command/user/network/CreateNetworkCmd.java | 5 +-
.../user/network/DeleteNetworkACLCmd.java | 8 +-
.../user/network/DeleteNetworkACLListCmd.java | 8 +-
.../command/user/network/DeleteNetworkCmd.java | 5 +-
.../user/network/ReplaceNetworkACLListCmd.java | 8 +-
.../user/network/UpdateNetworkACLItemCmd.java | 8 +-
.../command/user/network/UpdateNetworkCmd.java | 5 +-
.../user/project/ActivateProjectCmd.java | 5 +-
.../command/user/project/CreateProjectCmd.java | 11 +-
.../command/user/project/DeleteProjectCmd.java | 5 +-
.../project/DeleteProjectInvitationCmd.java | 5 +-
.../command/user/project/SuspendProjectCmd.java | 5 +-
.../command/user/project/UpdateProjectCmd.java | 5 +-
.../project/UpdateProjectInvitationCmd.java | 5 +-
.../gslb/AssignToGlobalLoadBalancerRuleCmd.java | 7 +-
.../gslb/CreateGlobalLoadBalancerRuleCmd.java | 10 +-
.../gslb/DeleteGlobalLoadBalancerRuleCmd.java | 6 +-
.../RemoveFromGlobalLoadBalancerRuleCmd.java | 7 +-
.../gslb/UpdateGlobalLoadBalancerRuleCmd.java | 2 +-
.../user/resource/UpdateResourceCountCmd.java | 5 +-
.../user/resource/UpdateResourceLimitCmd.java | 5 +-
.../AuthorizeSecurityGroupEgressCmd.java | 5 +-
.../AuthorizeSecurityGroupIngressCmd.java | 5 +-
.../securitygroup/CreateSecurityGroupCmd.java | 5 +-
.../securitygroup/DeleteSecurityGroupCmd.java | 5 +-
.../user/snapshot/CreateSnapshotCmd.java | 5 +-
.../user/snapshot/DeleteSnapshotCmd.java | 5 +-
.../command/user/ssh/CreateSSHKeyPairCmd.java | 5 +-
.../command/user/ssh/DeleteSSHKeyPairCmd.java | 5 +-
.../command/user/ssh/RegisterSSHKeyPairCmd.java | 5 +-
.../command/user/template/CopyTemplateCmd.java | 5 +-
.../user/template/CreateTemplateCmd.java | 6 +-
.../user/template/DeleteTemplateCmd.java | 4 +-
.../user/template/ExtractTemplateCmd.java | 4 +-
.../command/user/template/ListTemplatesCmd.java | 5 +-
.../user/template/RegisterTemplateCmd.java | 5 +-
.../api/command/user/vm/AddIpToVmNicCmd.java | 11 +-
.../api/command/user/vm/AddNicToVMCmd.java | 5 +-
.../api/command/user/vm/DeployVMCmd.java | 11 +-
.../api/command/user/vm/DestroyVMCmd.java | 5 +-
.../api/command/user/vm/ListNicsCmd.java | 8 +-
.../api/command/user/vm/RebootVMCmd.java | 5 +-
.../command/user/vm/RemoveIpFromVmNicCmd.java | 10 +-
.../api/command/user/vm/RemoveNicFromVMCmd.java | 5 +-
.../api/command/user/vm/ResetVMPasswordCmd.java | 5 +-
.../api/command/user/vm/ResetVMSSHKeyCmd.java | 4 +-
.../api/command/user/vm/RestoreVMCmd.java | 5 +-
.../api/command/user/vm/ScaleVMCmd.java | 4 +-
.../api/command/user/vm/StartVMCmd.java | 5 +-
.../api/command/user/vm/StopVMCmd.java | 5 +-
.../user/vm/UpdateDefaultNicForVMCmd.java | 5 +-
.../api/command/user/vm/UpdateVMCmd.java | 5 +-
.../api/command/user/vm/UpgradeVMCmd.java | 5 +-
.../command/user/vmgroup/CreateVMGroupCmd.java | 5 +-
.../user/vmsnapshot/CreateVMSnapshotCmd.java | 4 +-
.../user/vmsnapshot/DeleteVMSnapshotCmd.java | 5 +-
.../user/vmsnapshot/RevertToVMSnapshotCmd.java | 4 +-
.../user/volume/AddResourceDetailCmd.java | 4 +-
.../command/user/volume/AttachVolumeCmd.java | 5 +-
.../command/user/volume/CreateVolumeCmd.java | 7 +-
.../command/user/volume/DeleteVolumeCmd.java | 7 +-
.../command/user/volume/DetachVolumeCmd.java | 5 +-
.../command/user/volume/ExtractVolumeCmd.java | 5 +-
.../user/volume/RemoveResourceDetailCmd.java | 4 +-
.../command/user/volume/ResizeVolumeCmd.java | 5 +-
.../command/user/volume/UpdateVolumeCmd.java | 5 +-
.../command/user/volume/UploadVolumeCmd.java | 5 +-
.../command/user/vpc/CreateStaticRouteCmd.java | 5 +-
.../api/command/user/vpc/CreateVPCCmd.java | 5 +-
.../command/user/vpc/DeleteStaticRouteCmd.java | 5 +-
.../api/command/user/vpn/AddVpnUserCmd.java | 5 +-
.../user/vpn/CreateVpnCustomerGatewayCmd.java | 5 +-
.../user/vpn/DeleteRemoteAccessVpnCmd.java | 5 +-
.../api/command/user/vpn/RemoveVpnUserCmd.java | 7 +-
.../command/user/vpn/ResetVpnConnectionCmd.java | 5 +-
.../user/vpn/UpdateVpnCustomerGatewayCmd.java | 5 +-
.../apache/cloudstack/context/CallContext.java | 218 +++++++++++++++++
client/tomcatconf/applicationContext.xml.in | 1 -
.../api/command/user/discovery/ListApisCmd.java | 5 +-
.../admin/ratelimit/ResetApiLimitCmd.java | 5 +-
.../command/user/ratelimit/GetApiLimitCmd.java | 7 +-
.../dedicated/DedicatedResourceManagerImpl.java | 12 +-
.../dedicated/manager/DedicatedApiUnitTest.java | 28 ++-
.../implicitplanner/ImplicitPlannerTest.java | 31 ++-
.../cloudstack/api/AddBaremetalDhcpCmd.java | 5 +-
.../cloudstack/api/AddBaremetalPxeCmd.java | 5 +-
.../vmware/VmwareDatacenterApiUnitTest.java | 30 ++-
.../api/commands/AddBigSwitchVnsDeviceCmd.java | 4 +-
.../commands/DeleteBigSwitchVnsDeviceCmd.java | 4 +-
.../commands/AddCiscoAsa1000vResourceCmd.java | 5 +-
.../api/commands/AddCiscoVnmcResourceCmd.java | 5 +-
.../DeleteCiscoAsa1000vResourceCmd.java | 5 +-
.../commands/DeleteCiscoVnmcResourceCmd.java | 5 +-
.../cloud/network/element/CiscoVnmcElement.java | 7 +-
.../lb/ElasticLoadBalancerManagerImpl.java | 8 +-
.../api/commands/AddF5LoadBalancerCmd.java | 6 +-
.../commands/ConfigureF5LoadBalancerCmd.java | 6 +-
.../api/commands/DeleteF5LoadBalancerCmd.java | 6 +-
.../InternalLBVMServiceTest.java | 19 +-
.../cloud/api/commands/AddSrxFirewallCmd.java | 6 +-
.../api/commands/ConfigureSrxFirewallCmd.java | 5 +-
.../api/commands/DeleteSrxFirewallCmd.java | 5 +-
.../commands/AddNetscalerLoadBalancerCmd.java | 6 +-
.../ConfigureNetscalerLoadBalancerCmd.java | 6 +-
.../DeleteNetscalerLoadBalancerCmd.java | 5 +-
.../api/commands/AddNiciraNvpDeviceCmd.java | 6 +-
.../api/commands/DeleteNiciraNvpDeviceCmd.java | 6 +-
.../cloud/network/guru/OvsGuestNetworkGuru.java | 6 +-
.../cloudstack/api/commands/AddSspCmd.java | 5 +-
.../cloudstack/api/commands/DeleteSspCmd.java | 5 +-
.../cloud/agent/manager/AgentManagerImpl.java | 38 +--
server/src/com/cloud/api/ApiDispatcher.java | 136 ++++++-----
server/src/com/cloud/api/ApiResponseHelper.java | 7 +-
server/src/com/cloud/api/ApiServer.java | 85 +++----
server/src/com/cloud/api/ApiServlet.java | 27 ++-
.../com/cloud/api/query/QueryManagerImpl.java | 49 ++--
.../com/cloud/api/query/ViewResponseHelper.java | 12 +-
.../api/query/dao/DataCenterJoinDaoImpl.java | 7 +-
.../api/query/dao/TemplateJoinDaoImpl.java | 7 +-
.../cloud/api/query/dao/VolumeJoinDaoImpl.java | 5 +-
.../com/cloud/async/AsyncJobManagerImpl.java | 42 ++--
.../configuration/ConfigurationManagerImpl.java | 70 +++---
.../consoleproxy/ConsoleProxyManagerImpl.java | 6 +-
.../com/cloud/event/ActionEventInterceptor.java | 21 +-
.../src/com/cloud/event/ActionEventUtils.java | 37 +--
.../metadata/ResourceMetaDataManagerImpl.java | 5 +-
.../com/cloud/network/NetworkManagerImpl.java | 31 +--
.../com/cloud/network/NetworkServiceImpl.java | 61 ++---
.../cloud/network/NetworkUsageManagerImpl.java | 3 +-
.../cloud/network/as/AutoScaleManagerImpl.java | 44 ++--
.../network/firewall/FirewallManagerImpl.java | 17 +-
.../network/guru/ExternalGuestNetworkGuru.java | 6 +-
.../cloud/network/guru/GuestNetworkGuru.java | 8 +-
.../network/lb/LoadBalancingRulesManager.java | 5 +-
.../lb/LoadBalancingRulesManagerImpl.java | 61 ++---
.../VirtualNetworkApplianceManagerImpl.java | 238 ++++++++++---------
.../cloud/network/rules/RulesManagerImpl.java | 43 ++--
.../security/SecurityGroupManagerImpl.java | 17 +-
.../network/vpc/NetworkACLManagerImpl.java | 7 +-
.../network/vpc/NetworkACLServiceImpl.java | 19 +-
.../com/cloud/network/vpc/VpcManagerImpl.java | 57 ++---
.../network/vpn/RemoteAccessVpnManagerImpl.java | 28 +--
.../network/vpn/Site2SiteVpnManagerImpl.java | 35 +--
.../com/cloud/projects/ProjectManagerImpl.java | 30 +--
.../com/cloud/resource/ResourceManagerImpl.java | 14 +-
.../resourcelimit/ResourceLimitManagerImpl.java | 9 +-
.../com/cloud/server/ManagementServerImpl.java | 70 +++---
.../com/cloud/storage/StorageManagerImpl.java | 20 +-
.../storage/StoragePoolAutomationImpl.java | 11 +-
.../com/cloud/storage/VolumeManagerImpl.java | 24 +-
.../secondary/SecondaryStorageManagerImpl.java | 6 +-
.../storage/snapshot/SnapshotManagerImpl.java | 23 +-
.../cloud/tags/TaggedResourceManagerImpl.java | 8 +-
.../com/cloud/template/TemplateAdapterBase.java | 25 +-
.../com/cloud/template/TemplateManagerImpl.java | 47 ++--
.../src/com/cloud/usage/UsageServiceImpl.java | 5 +-
.../src/com/cloud/user/AccountManagerImpl.java | 75 +++---
.../src/com/cloud/user/DomainManagerImpl.java | 32 +--
server/src/com/cloud/vm/UserVmManagerImpl.java | 85 ++++---
.../vm/snapshot/VMSnapshotManagerImpl.java | 7 +-
.../affinity/AffinityGroupServiceImpl.java | 12 +-
.../lb/ApplicationLoadBalancerManagerImpl.java | 9 +-
.../GlobalLoadBalancingRulesServiceImpl.java | 25 +-
.../configuration/ConfigurationManagerTest.java | 43 ++--
.../network/DedicateGuestVlanRangesTest.java | 43 ++--
server/test/com/cloud/vm/UserVmManagerTest.java | 156 +++++++++---
.../com/cloud/vpc/NetworkACLManagerTest.java | 65 +++--
.../com/cloud/vpc/NetworkACLServiceTest.java | 61 +++--
server/test/com/cloud/vpc/VpcTest.java | 71 +++---
.../affinity/AffinityApiUnitTest.java | 34 ++-
.../lb/ApplicationLoadBalancerTest.java | 39 +--
.../networkoffering/ChildTestConfiguration.java | 26 +-
.../CreateNetworkOfferingTest.java | 42 ++--
.../cloudstack/region/RegionManagerTest.java | 3 +-
...GlobalLoadBalancingRulesServiceImplTest.java | 114 +++++----
.../utils/exception/CloudRuntimeException.java | 21 +-
270 files changed, 2352 insertions(+), 1804 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/com/cloud/user/UserContext.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java
deleted file mode 100644
index fdd19d4..0000000
--- a/api/src/com/cloud/user/UserContext.java
+++ /dev/null
@@ -1,163 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// 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,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.user;
-
-import com.cloud.utils.component.ComponentContext;
-import javax.inject.Inject;
-
-public class UserContext {
- private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();
-
- private long userId;
- private String sessionId;
- private Account account;
- private long startEventId = 0;
- private long accountId;
- private String eventDetails;
- private boolean apiServer;
- private Class entityType;
- private String entityUUID;
-
- @Inject private AccountService _accountMgr = null;
-
- public UserContext() {
- }
-
- public UserContext(long userId, Account accountObject, String sessionId, boolean apiServer) {
- this.userId = userId;
- this.account = accountObject;
- this.sessionId = sessionId;
- this.apiServer = apiServer;
- }
-
- public long getCallerUserId() {
- return userId;
- }
-
- public User getCallerUser() {
- if (_accountMgr == null) {
- _accountMgr = ComponentContext.getComponent(AccountService.class);
- }
- return _accountMgr.getActiveUser(userId);
- }
-
- public void setCallerUserId(long userId) {
- this.userId = userId;
- }
-
- public String getSessionId() {
- return sessionId;
- }
-
- public Account getCaller() {
- return account;
- }
-
- public void setCaller(Account accountObject) {
- this.account = accountObject;
- }
-
- public void setSessionKey(String sessionId) {
- this.sessionId = sessionId;
- }
-
- public boolean isApiServer() {
- return apiServer;
- }
-
- public void setApiServer(boolean apiServer) {
- this.apiServer = apiServer;
- }
-
- public static UserContext current() {
- UserContext context = s_currentContext.get();
- if (context == null) {
- //
- // TODO: we should enforce explicit UserContext setup at major entry-points for security concerns,
- // however, there are many places that run background jobs assume the system context.
- //
- // If there is a security concern, all entry points from user (including the front end that takes HTTP
- // request in and
- // the core async-job manager that runs commands from user) have explicitly setup the UserContext.
- //
- return UserContextInitializer.getInstance().getAdminContext();
- }
- return context;
- }
-
- public static void updateContext(long userId, Account accountObject, String sessionId) {
- UserContext context = current();
- assert (context != null) : "Context should be already setup before you can call this one";
-
- context.setCallerUserId(userId);
- context.setCaller(accountObject);
- context.setSessionKey(sessionId);
- }
-
- public static void registerContext(long userId, Account accountObject, String sessionId, boolean apiServer) {
- s_currentContext.set(new UserContext(userId, accountObject, sessionId, apiServer));
- }
-
- public static void unregisterContext() {
- s_currentContext.set(null);
- }
-
- public void setStartEventId(long startEventId) {
- this.startEventId = startEventId;
- }
-
- public long getStartEventId() {
- return startEventId;
- }
-
- public long getAccountId() {
- return accountId;
- }
-
- public void setAccountId(long accountId) {
- this.accountId = accountId;
- }
-
- public void setEventDetails(String eventDetails) {
- this.eventDetails = eventDetails;
- }
-
- public String getEventDetails() {
- return eventDetails;
- }
-
- public void setEntityDetails(Class entityType, String uuid) {
- this.entityType = entityType;
- this.entityUUID = uuid;
- }
-
- public String getEntityType() {
- return (entityType != null) ? entityType.getName() : null;
- }
-
- public void setEntityType(Class entityType) {
- this.entityType = entityType;
- }
-
- public String getEntityUUID() {
- return entityUUID;
- }
-
- public void setEntityUUID(String entityUUID) {
- this.entityUUID = entityUUID;
- }
-}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/com/cloud/user/UserContextInitializer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/UserContextInitializer.java b/api/src/com/cloud/user/UserContextInitializer.java
deleted file mode 100644
index a545963..0000000
--- a/api/src/com/cloud/user/UserContextInitializer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// 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,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.user;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Component;
-
-@Component
-public class UserContextInitializer {
- @Inject private AccountService _accountMgr;
-
- private static UserContextInitializer s_instance;
-
- public UserContextInitializer() {
- s_instance = this;
- }
-
- public static UserContextInitializer getInstance() {
- return s_instance;
- }
-
- public UserContext getAdminContext() {
- return new UserContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
- }
-}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java b/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
index 022157a..0e6f95d 100644
--- a/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
@@ -17,10 +17,10 @@
package org.apache.cloudstack.api;
import org.apache.cloudstack.api.response.AsyncJobResponse;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.async.AsyncJob;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
/**
* queryAsyncJobResult API command.
@@ -109,8 +109,8 @@ public abstract class BaseAsyncCmd extends BaseCmd {
}
protected long saveStartedEvent(String eventType, String description, Long startEventId) {
- UserContext ctx = UserContext.current();
- Long userId = ctx.getCallerUserId();
+ CallContext ctx = CallContext.current();
+ Long userId = ctx.getCallingUserId();
userId = (userId == null) ? User.UID_SYSTEM : userId;
Long startEvent = startEventId;
if (startEvent == null) {
@@ -124,8 +124,8 @@ public abstract class BaseAsyncCmd extends BaseCmd {
}
protected long saveCompletedEvent(String level, String eventType, String description, Long startEventId) {
- UserContext ctx = UserContext.current();
- Long userId = ctx.getCallerUserId();
+ CallContext ctx = CallContext.current();
+ Long userId = ctx.getCallingUserId();
userId = (userId == null) ? User.UID_SYSTEM : userId;
Long startEvent = startEventId;
if (startEvent == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java b/api/src/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
index 47aa679..88732ae 100644
--- a/api/src/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
@@ -19,11 +19,12 @@ package org.apache.cloudstack.api;
import java.util.List;
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
public class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd {
public Logger s_logger = getLogger();
@@ -79,7 +80,7 @@ public class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd {
public void execute(){
List<String> accountNames = _templateService.listTemplatePermissions(this);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
boolean isAdmin = (isAdmin(account.getType()));
TemplatePermissionsResponse response = _responseGenerator.createTemplatePermissionsResponse(accountNames, id, isAdmin);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
index cc74eb2..94325f6 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
@@ -18,7 +18,7 @@ package org.apache.cloudstack.api.command.admin.account;
import com.cloud.user.Account;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -27,6 +27,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import java.util.Collection;
@@ -160,7 +162,7 @@ public class CreateAccountCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
+ CallContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
UserAccount userAccount = _accountService.createUserAccount(getUsername(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimeZone(), getAccountName(), getAccountType(),
getDomainId(), getNetworkDomain(), getDetails(), getAccountUUID(), getUserUUID());
if (userAccount != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
index 4a42fde..b46036b 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
@@ -27,13 +27,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteAccount", description="Deletes a account, and all users associated with this account", responseObject=SuccessResponse.class)
public class DeleteAccountCmd extends BaseAsyncCmd {
@@ -74,7 +75,7 @@ public class DeleteAccountCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();// Let's give the caller here for event logging.
+ Account account = CallContext.current().getCallingAccount();// Let's give the caller here for event logging.
if (account != null) {
return account.getAccountId();
}
@@ -95,7 +96,7 @@ public class DeleteAccountCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Account Id: "+getId());
+ CallContext.current().setEventDetails("Account Id: "+getId());
boolean result = _regionService.deleteUserAccount(this);
if (result) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
index 6d25fde..806a8a5 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
@@ -27,14 +27,15 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "disableAccount", description="Disables an account", responseObject=AccountResponse.class)
public class DisableAccountCmd extends BaseAsyncCmd {
@@ -116,7 +117,7 @@ public class DisableAccountCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException{
- UserContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
+ CallContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
Account result = _regionService.disableAccount(this);
if (result != null){
AccountResponse response = _responseGenerator.createAccountResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
index 91d61cc..c46318e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
@@ -23,11 +23,12 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.domain.Domain;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createDomain", description="Creates a domain", responseObject=DomainResponse.class)
public class CreateDomainCmd extends BaseCmd {
@@ -88,7 +89,7 @@ public class CreateDomainCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Domain Name: "+getDomainName()+((getParentDomainId()!=null)?", Parent DomainId :"+getParentDomainId():""));
+ CallContext.current().setEventDetails("Domain Name: "+getDomainName()+((getParentDomainId()!=null)?", Parent DomainId :"+getParentDomainId():""));
Domain domain = _domainService.createDomain(getDomainName(), getParentDomainId(), getNetworkDomain(), getDomainUUID());
if (domain != null) {
DomainResponse response = _responseGenerator.createDomainResponse(domain);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
index 488a758..6302c2e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
@@ -26,13 +26,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deleteDomain", description="Deletes a specified domain", responseObject=SuccessResponse.class)
public class DeleteDomainCmd extends BaseAsyncCmd {
@@ -95,7 +96,7 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Domain Id: "+getId());
+ CallContext.current().setEventDetails("Domain Id: "+getId());
boolean result = _regionService.deleteDomain(this);
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
index e658f49..e4962d6 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
@@ -25,13 +25,14 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionService;
+
import org.apache.log4j.Logger;
import com.cloud.domain.Domain;
import com.cloud.user.Account;
import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
@APICommand(name = "updateDomain", description="Updates a domain with a new name", responseObject=DomainResponse.class)
public class UpdateDomainCmd extends BaseCmd {
@@ -86,7 +87,7 @@ public class UpdateDomainCmd extends BaseCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Domain Id: "+getId());
+ CallContext.current().setEventDetails("Domain Id: "+getId());
Domain domain = _regionService.updateDomain(this);
if (domain != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
index ea85d12..3179e50 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.host.Host;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "cancelHostMaintenance", description="Cancels host maintenance.", responseObject=HostResponse.class)
public class CancelMaintenanceCmd extends BaseAsyncCmd {
@@ -68,7 +69,7 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
index fd3685a..02d29b3 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.host.Host;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "prepareHostForMaintenance", description="Prepares a host for maintenance.", responseObject=HostResponse.class)
public class PrepareForMaintenanceCmd extends BaseAsyncCmd {
@@ -68,7 +69,7 @@ public class PrepareForMaintenanceCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
index 8a1ef79..ec5f65e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
@@ -24,12 +24,13 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.host.Host;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "reconnectHost", description="Reconnects a host.", responseObject=HostResponse.class)
public class ReconnectHostCmd extends BaseAsyncCmd {
@@ -68,7 +69,7 @@ public class ReconnectHostCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
index b11bcd2..2de452e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "releaseHostReservation", description = "Releases host reservation.", responseObject = SuccessResponse.class)
public class ReleaseHostReservationCmd extends BaseAsyncCmd {
@@ -64,7 +65,7 @@ public class ReleaseHostReservationCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
index 86f3006..bfbe85e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
@@ -23,7 +23,7 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.VirtualRouterProvider;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,10 +31,13 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
+
import org.apache.log4j.Logger;
import javax.inject.Inject;
+
import java.util.List;
@APICommand(name = "configureInternalLoadBalancerElement", responseObject=InternalLoadBalancerElementResponse.class,
@@ -96,7 +99,7 @@ public class ConfigureInternalLoadBalancerElementCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Internal load balancer element: " + id);
+ CallContext.current().setEventDetails("Internal load balancer element: " + id);
VirtualRouterProvider result = _service.get(0).configureInternalLoadBalancerElement(getId(), getEnabled());
if (result != null){
InternalLoadBalancerElementResponse routerResponse = _responseGenerator.createInternalLbElementResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
index 2902f7a..0079949 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
@@ -28,14 +28,15 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
import org.apache.cloudstack.api.response.ProviderResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.VirtualRouterProvider;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createInternalLoadBalancerElement", responseObject=InternalLoadBalancerElementResponse.class, description="Create an Internal Load Balancer element.",since="4.2.0")
public class CreateInternalLoadBalancerElementCmd extends BaseAsyncCreateCmd {
@@ -82,7 +83,7 @@ public class CreateInternalLoadBalancerElementCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Virtual router element Id: "+getEntityId());
+ CallContext.current().setEventDetails("Virtual router element Id: "+getEntityId());
VirtualRouterProvider result = _service.get(0).getInternalLoadBalancerElement(getEntityId());
if (result != null) {
InternalLoadBalancerElementResponse response = _responseGenerator.createInternalLbElementResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
index 256804f..f70e04c 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -33,7 +35,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.router.VirtualRouter.Role;
-import com.cloud.user.UserContext;
@APICommand(name = "startInternalLoadBalancerVM", responseObject=DomainRouterResponse.class, description="Starts an existing internal lb vm.")
public class StartInternalLBVMCmd extends BaseAsyncCmd {
@@ -100,13 +101,13 @@ public class StartInternalLBVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Internal Lb Vm Id: "+getId());
+ CallContext.current().setEventDetails("Internal Lb Vm Id: "+getId());
VirtualRouter result = null;
VirtualRouter router = _routerService.findRouter(getId());
if (router == null || router.getRole() != Role.INTERNAL_LB_VM) {
throw new InvalidParameterValueException("Can't find internal lb vm by id");
} else {
- result = _internalLbSvc.startInternalLbVm(getId(), UserContext.current().getCaller(), UserContext.current().getCallerUserId());
+ result = _internalLbSvc.startInternalLbVm(getId(), CallContext.current().getCallingAccount(), CallContext.current().getCallingUserId());
}
if (result != null){
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
index fd6a7dd..d84f3ab 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -32,7 +34,6 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.router.VirtualRouter.Role;
-import com.cloud.user.UserContext;
@APICommand(name = "stopInternalLoadBalancerVM", description = "Stops an Internal LB vm.", responseObject = DomainRouterResponse.class)
public class StopInternalLBVMCmd extends BaseAsyncCmd {
@@ -103,13 +104,13 @@ public class StopInternalLBVMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException {
- UserContext.current().setEventDetails("Internal lb vm Id: "+getId());
+ CallContext.current().setEventDetails("Internal lb vm Id: "+getId());
VirtualRouter result = null;
VirtualRouter vm = _routerService.findRouter(getId());
if (vm == null || vm.getRole() != Role.INTERNAL_LB_VM) {
throw new InvalidParameterValueException("Can't find internal lb vm by id");
} else {
- result = _internalLbSvc.stopInternalLbVm(getId(), isForced(), UserContext.current().getCaller(), UserContext.current().getCallerUserId());
+ result = _internalLbSvc.stopInternalLbVm(getId(), isForced(), CallContext.current().getCallingAccount(), CallContext.current().getCallingUserId());
}
if (result != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java b/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
index 280369a..d56deb8 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
@@ -27,13 +27,14 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
import org.apache.cloudstack.api.response.ProviderResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "addNetworkServiceProvider", description="Adds a network serviceProvider to a physical network", responseObject=ProviderResponse.class, since="3.0.0")
public class AddNetworkServiceProviderCmd extends BaseAsyncCreateCmd {
@@ -96,7 +97,7 @@ public class AddNetworkServiceProviderCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Network ServiceProvider Id: "+getEntityId());
+ CallContext.current().setEventDetails("Network ServiceProvider Id: "+getEntityId());
PhysicalNetworkServiceProvider result = _networkService.getCreatedPhysicalNetworkServiceProvider(getEntityId());
if (result != null) {
ProviderResponse response = _responseGenerator.createNetworkServiceProviderResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
index 6c1100a..3627e55 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
@@ -28,13 +28,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.PhysicalNetwork;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createPhysicalNetwork", description="Creates a physical network", responseObject=PhysicalNetworkResponse.class, since="3.0.0")
public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd {
@@ -144,7 +145,7 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Physical Network Id: "+getEntityId());
+ CallContext.current().setEventDetails("Physical Network Id: "+getEntityId());
PhysicalNetwork result = _networkService.getCreatedPhysicalNetwork(getEntityId());
if (result != null) {
PhysicalNetworkResponse response = _responseGenerator.createPhysicalNetworkResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
index b5c015a..1764127 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
@@ -25,11 +25,12 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "deletePhysicalNetwork", description="Deletes a Physical Network.", responseObject=SuccessResponse.class, since="3.0.0")
public class DeletePhysicalNetworkCmd extends BaseAsyncCmd {
@@ -68,7 +69,7 @@ public class DeletePhysicalNetworkCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Physical Network Id: " + id);
+ CallContext.current().setEventDetails("Physical Network Id: " + id);
boolean result = _networkService.deletePhysicalNetwork(getId());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java b/api/src/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
index f9e96f6..49a3d36 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
@@ -20,11 +20,13 @@ package org.apache.cloudstack.api.command.admin.network;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceInUseException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.response.CounterResponse;
import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
@APICommand(name = "releaseDedicatedGuestVlanRange", description = "Releases a dedicated guest vlan range to the system", responseObject = SuccessResponse.class)
@@ -80,7 +82,7 @@ public class ReleaseDedicatedGuestVlanRangeCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Dedicated guest vlan range Id: " + id);
+ CallContext.current().setEventDetails("Dedicated guest vlan range Id: " + id);
boolean result = _networkService.releaseDedicatedGuestVlanRange(getId());
if (result) {
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
index e28e916..625abf0 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
@@ -28,6 +28,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -37,7 +39,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.element.VirtualRouterElementService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "configureVirtualRouterElement", responseObject=VirtualRouterProviderResponse.class, description="Configures a virtual router element.")
public class ConfigureVirtualRouterElementCmd extends BaseAsyncCmd {
@@ -116,7 +117,7 @@ public class ConfigureVirtualRouterElementCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Virtual router element: " + id);
+ CallContext.current().setEventDetails("Virtual router element: " + id);
VirtualRouterProvider result = _service.get(0).configure(this);
if (result != null){
VirtualRouterProviderResponse routerResponse = _responseGenerator.createVirtualRouterProviderResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
index b3fca5a..66c8ae5 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
@@ -28,6 +28,8 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ProviderResponse;
import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -37,7 +39,6 @@ import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.element.VirtualRouterElementService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "createVirtualRouterElement", responseObject=VirtualRouterProviderResponse.class, description="Create a virtual router element.")
public class CreateVirtualRouterElementCmd extends BaseAsyncCreateCmd {
@@ -98,7 +99,7 @@ public class CreateVirtualRouterElementCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Virtual router element Id: "+getEntityId());
+ CallContext.current().setEventDetails("Virtual router element Id: "+getEntityId());
VirtualRouterProvider result = _service.get(0).getCreatedElement(getEntityId());
if (result != null) {
VirtualRouterProviderResponse response = _responseGenerator.createVirtualRouterProviderResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
index d0dda29..44ca56b 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "destroyRouter", description = "Destroys a router.", responseObject = DomainRouterResponse.class)
public class DestroyRouterCmd extends BaseAsyncCmd {
@@ -95,10 +96,10 @@ public class DestroyRouterCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException {
- UserContext ctx = UserContext.current();
+ CallContext ctx = CallContext.current();
ctx.setEventDetails("Router Id: "+getId());
- VirtualRouter result = _routerService.destroyRouter(getId(), ctx.getCaller(), ctx.getCallerUserId());
+ VirtualRouter result = _routerService.destroyRouter(getId(), ctx.getCallingAccount(), ctx.getCallingUserId());
if (result != null) {
DomainRouterResponse response = _responseGenerator.createDomainRouterResponse(result);
response.setResponseName(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
index 504b715..0c2cbc3 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -32,7 +34,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "rebootRouter", description="Starts a router.", responseObject=DomainRouterResponse.class)
public class RebootRouterCmd extends BaseAsyncCmd {
@@ -95,7 +96,7 @@ public class RebootRouterCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Router Id: "+getId());
+ CallContext.current().setEventDetails("Router Id: "+getId());
VirtualRouter result = _routerService.rebootRouter(this.getId(), true);
if (result != null){
DomainRouterResponse response = _responseGenerator.createDomainRouterResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
index b575bf5..6981907 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -34,7 +36,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.router.VirtualRouter.Role;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "startRouter", responseObject=DomainRouterResponse.class, description="Starts a router.")
public class StartRouterCmd extends BaseAsyncCmd {
@@ -101,7 +102,7 @@ public class StartRouterCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
- UserContext.current().setEventDetails("Router Id: "+getId());
+ CallContext.current().setEventDetails("Router Id: "+getId());
VirtualRouter result = null;
VirtualRouter router = _routerService.findRouter(getId());
if (router == null || router.getRole() != Role.VIRTUAL_ROUTER) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
index 10aebc0..ab631e8 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -33,7 +35,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.router.VirtualRouter.Role;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "stopRouter", description = "Stops a router.", responseObject = DomainRouterResponse.class)
public class StopRouterCmd extends BaseAsyncCmd {
@@ -104,7 +105,7 @@ public class StopRouterCmd extends BaseAsyncCmd {
@Override
public void execute() throws ConcurrentOperationException, ResourceUnavailableException {
- UserContext.current().setEventDetails("Router Id: "+getId());
+ CallContext.current().setEventDetails("Router Id: "+getId());
VirtualRouter result = null;
VirtualRouter router = _routerService.findRouter(getId());
if (router == null || router.getRole() != Role.VIRTUAL_ROUTER) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
index 525e923..0a5efda 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
@@ -24,13 +24,14 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.StoragePoolResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.storage.StoragePool;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "cancelStorageMaintenance", description="Cancels maintenance for primary storage", responseObject=StoragePoolResponse.class)
public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
@@ -81,7 +82,7 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
index 565ed07..9a784ee 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
@@ -24,6 +24,8 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.StoragePoolResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -31,7 +33,6 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.storage.StoragePool;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
@APICommand(name = "enableStorageMaintenance", description="Puts storage pool into maintenance state", responseObject=StoragePoolResponse.class)
public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd {
@@ -79,7 +80,7 @@ public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd {
@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/api/src/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
index 87c6696..b539df1 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "destroySystemVm", responseObject=SystemVmResponse.class, description="Destroyes a system virtual machine.")
@@ -56,7 +57,7 @@ public class DestroySystemVmCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -92,7 +93,7 @@ public class DestroySystemVmCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
VirtualMachine instance = _mgr.destroySystemVM(this);
if (instance != null) {
SystemVmResponse response = _responseGenerator.createSystemVmResponse(instance);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
index 31871b9..7b3436d 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.SystemVmInstanceResponse;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
@@ -35,7 +37,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.VirtualMachineMigrationException;
import com.cloud.host.Host;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "migrateSystemVm", description="Attempts Migration of a system virtual machine to the host specified.", responseObject=SystemVmInstanceResponse.class)
@@ -81,7 +82,7 @@ public class MigrateSystemVMCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -107,7 +108,7 @@ public class MigrateSystemVMCmd extends BaseAsyncCmd {
throw new InvalidParameterValueException("Unable to find the host to migrate the VM, host id=" + getHostId());
}
try{
- UserContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to host Id: "+ getHostId());
+ CallContext.current().setEventDetails("VM Id: " + getVirtualMachineId() + " to host Id: "+ getHostId());
//FIXME : Should not be calling UserVmService to migrate all types of VMs - need a generic VM layer
VirtualMachine migratedVm = _userVmService.migrateVirtualMachine(getVirtualMachineId(), destinationHost);
if (migratedVm != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
index 8cb0718..904faab 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "rebootSystemVm", description="Reboots a system VM.", responseObject=SystemVmResponse.class)
@@ -64,7 +65,7 @@ public class RebootSystemVmCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -98,7 +99,7 @@ public class RebootSystemVmCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
VirtualMachine result = _mgr.rebootSystemVM(this);
if (result != null) {
SystemVmResponse response = _responseGenerator.createSystemVmResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
index a077e24..61b457f 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
@@ -18,15 +18,17 @@ package org.apache.cloudstack.api.command.admin.systemvm;
import com.cloud.event.EventTypes;
import com.cloud.exception.*;
+
import org.apache.cloudstack.api.*;
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.offering.ServiceOffering;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "scaleSystemVm", responseObject=SystemVmResponse.class, description="Scale the service offering for a system vm (console proxy or secondary storage). " +
@@ -71,7 +73,7 @@ public class ScaleSystemVMCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -81,7 +83,7 @@ public class ScaleSystemVMCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("SystemVm Id: "+getId());
+ CallContext.current().setEventDetails("SystemVm Id: "+getId());
ServiceOffering serviceOffering = _configService.getServiceOffering(serviceOfferingId);
if (serviceOffering == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
index 1283d98..1062ae4 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
@@ -24,11 +24,12 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "startSystemVm", responseObject=SystemVmResponse.class, description="Starts a system virtual machine.")
@@ -68,7 +69,7 @@ public class StartSystemVMCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -102,7 +103,7 @@ public class StartSystemVMCmd extends BaseAsyncCmd {
@Override
public void execute(){
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
VirtualMachine instance = _mgr.startSystemVM(getId());
if (instance != null) {
SystemVmResponse response = _responseGenerator.createSystemVmResponse(instance);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/api/src/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java b/api/src/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
index 9954330..c147540 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
@@ -24,13 +24,14 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.vm.VirtualMachine;
@APICommand(name = "stopSystemVm", description="Stops a system VM.", responseObject=SystemVmResponse.class)
@@ -69,7 +70,7 @@ public class StopSystemVmCmd extends BaseAsyncCmd {
@Override
public long getEntityOwnerId() {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (account != null) {
return account.getId();
}
@@ -109,7 +110,7 @@ public class StopSystemVmCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException, ConcurrentOperationException {
- UserContext.current().setEventDetails("Vm Id: "+getId());
+ CallContext.current().setEventDetails("Vm Id: "+getId());
VirtualMachine result = _mgr.stopSystemVM(this);
if (result != null) {
SystemVmResponse response = _responseGenerator.createSystemVmResponse(result);
[05/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 7bd2864..0a67cff 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.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,
@@ -44,6 +44,8 @@ import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.context.ServerContexts;
import com.cloud.agent.AgentManager;
import com.cloud.agent.AgentManager.OnError;
@@ -205,7 +207,6 @@ import com.cloud.storage.dao.VolumeDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserStatisticsVO;
import com.cloud.user.UserStatsLogVO;
import com.cloud.user.UserVO;
@@ -253,13 +254,12 @@ import com.cloud.vm.dao.NicIpAliasVO;
import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao;
-
/**
* VirtualNetworkApplianceManagerImpl manages the different types of virtual network appliances available in the Cloud Stack.
*/
@Component
@Local(value = { VirtualNetworkApplianceManager.class, VirtualNetworkApplianceService.class })
-public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements VirtualNetworkApplianceManager, VirtualNetworkApplianceService,
+public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements VirtualNetworkApplianceManager, VirtualNetworkApplianceService,
VirtualMachineGuru<DomainRouterVO>, Listener {
private static final Logger s_logger = Logger.getLogger(VirtualNetworkApplianceManagerImpl.class);
@@ -431,7 +431,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
public VirtualRouter upgradeRouter(UpgradeRouterCmd cmd) {
Long routerId = cmd.getId();
Long serviceOfferingId = cmd.getServiceOfferingId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
DomainRouterVO router = _routerDao.findById(routerId);
if (router == null) {
@@ -467,7 +467,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
// Check that the service offering being upgraded to has the same storage pool preference as the VM's current service
// offering
if (currentServiceOffering.getUseLocalStorage() != newServiceOffering.getUseLocalStorage()) {
- throw new InvalidParameterValueException("Can't upgrade, due to new local storage status : " +
+ throw new InvalidParameterValueException("Can't upgrade, due to new local storage status : " +
newServiceOffering.getUseLocalStorage() + " is different from "
+ "curruent local storage status: " + currentServiceOffering.getUseLocalStorage());
}
@@ -541,8 +541,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override @ActionEvent(eventType = EventTypes.EVENT_ROUTER_STOP, eventDescription = "stopping router Vm", async = true)
public VirtualRouter stopRouter(long routerId, boolean forced) throws ResourceUnavailableException, ConcurrentOperationException {
- UserContext context = UserContext.current();
- Account account = context.getCaller();
+ CallContext context = CallContext.current();
+ Account account = context.getCallingAccount();
// verify parameters
DomainRouterVO router = _routerDao.findById(routerId);
@@ -552,7 +552,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
_accountMgr.checkAccess(account, null, true, router);
- UserVO user = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO user = _userDao.findById(CallContext.current().getCallingUserId());
VirtualRouter virtualRouter = stop(router, forced, user, account);
if(virtualRouter == null){
@@ -602,9 +602,9 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
@Override @ActionEvent(eventType = EventTypes.EVENT_ROUTER_REBOOT, eventDescription = "rebooting router Vm", async = true)
- public VirtualRouter rebootRouter(long routerId, boolean reprogramNetwork) throws ConcurrentOperationException,
+ public VirtualRouter rebootRouter(long routerId, boolean reprogramNetwork) throws ConcurrentOperationException,
ResourceUnavailableException, InsufficientCapacityException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// verify parameters
DomainRouterVO router = _routerDao.findById(routerId);
@@ -621,7 +621,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
DataCenter.class, router.getDataCenterId());
}
- UserVO user = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO user = _userDao.findById(CallContext.current().getCallingUserId());
s_logger.debug("Stopping and starting router " + router + " as a part of router reboot");
if (stop(router, false, user, caller) != null) {
@@ -666,11 +666,11 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
value = configs.get("router.check.poolsize");
_rvrStatusUpdatePoolSize = NumbersUtil.parseInt(value, 10);
- /*
+ /*
* We assume that one thread can handle 20 requests in 1 minute in normal situation, so here we give the queue size up to 50 minutes.
* It's mostly for buffer, since each time CheckRouterTask running, it would add all the redundant networks in the queue immediately
*/
- _vrUpdateQueue = new LinkedBlockingQueue<Long>(_rvrStatusUpdatePoolSize * 1000);
+ _vrUpdateQueue = new LinkedBlockingQueue<Long>(_rvrStatusUpdatePoolSize * 1000);
_rvrStatusUpdateExecutor = Executors.newFixedThreadPool(_rvrStatusUpdatePoolSize, new NamedThreadFactory("RedundantRouterStatusMonitor"));
@@ -796,7 +796,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
return VirtualMachineName.getRouterId(vmName);
}
- private VmDataCommand generateVmDataCommand(VirtualRouter router, String vmPrivateIpAddress, String userData,
+ private VmDataCommand generateVmDataCommand(VirtualRouter router, String vmPrivateIpAddress, String userData,
String serviceOffering, String zoneName, String guestIpAddress, String vmName,
String vmInstanceName, long vmId, String vmUuid, String publicKey, long guestNetworkId) {
VmDataCommand cmd = new VmDataCommand(vmPrivateIpAddress, vmName, _networkModel.getExecuteInSeqNtwkElmtCmd());
@@ -860,6 +860,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
public void run() {
+ ServerContexts.registerSystemContext();
try{
final List<DomainRouterVO> routers = _routerDao.listByStateAndNetworkType(State.Running, GuestType.Isolated, mgmtSrvrId);
s_logger.debug("Found " + routers.size() + " running routers. ");
@@ -873,7 +874,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
for (Nic routerNic : routerNics) {
Network network = _networkModel.getNetwork(routerNic.getNetworkId());
//Send network usage command for public nic in VPC VR
- //Send network usage command for isolated guest nic of non VPC VR
+ //Send network usage command for isolated guest nic of non VPC VR
if ((forVpc && network.getTrafficType() == TrafficType.Public) || (!forVpc && network.getTrafficType() == TrafficType.Guest && network.getGuestType() == Network.GuestType.Isolated)) {
final NetworkUsageCommand usageCmd = new NetworkUsageCommand(privateIP, router.getHostName(),
forVpc, routerNic.getIp4Address());
@@ -957,6 +958,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
} catch (Exception e) {
s_logger.warn("Error while collecting network stats", e);
+ } finally {
+ ServerContexts.unregisterSystemContext();
}
}
}
@@ -986,12 +989,12 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
List<UserStatisticsVO> updatedStats = _userStatsDao.listUpdatedStats();
Date updatedTime = new Date();
for(UserStatisticsVO stat : updatedStats){
- //update agg bytes
+ //update agg bytes
stat.setAggBytesReceived(stat.getCurrentBytesReceived() + stat.getNetBytesReceived());
stat.setAggBytesSent(stat.getCurrentBytesSent() + stat.getNetBytesSent());
_userStatsDao.update(stat.getId(), stat);
//insert into op_user_stats_log
- UserStatsLogVO statsLog = new UserStatsLogVO(stat.getId(), stat.getNetBytesReceived(), stat.getNetBytesSent(), stat.getCurrentBytesReceived(),
+ UserStatsLogVO statsLog = new UserStatsLogVO(stat.getId(), stat.getNetBytesReceived(), stat.getNetBytesSent(), stat.getCurrentBytesReceived(),
stat.getCurrentBytesSent(), stat.getAggBytesReceived(), stat.getAggBytesSent(), updatedTime);
_userStatsLogDao.persist(statsLog);
}
@@ -1083,7 +1086,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (oldState != conn.getState()) {
String title = "Site-to-site Vpn Connection to " + gw.getName() +
" just switch from " + oldState + " to " + conn.getState();
- String context = "Site-to-site Vpn Connection to " + gw.getName() + " on router " + router.getHostName() +
+ String context = "Site-to-site Vpn Connection to " + gw.getName() + " on router " + router.getHostName() +
"(id: " + router.getId() + ") " + " just switch from " + oldState + " to " + conn.getState();
s_logger.info(context);
_alertMgr.sendAlert(AlertManager.ALERT_TYPE_DOMAIN_ROUTER,
@@ -1168,8 +1171,6 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
//Ensure router status is update to date before execute this function. The function would try best to recover all routers except MASTER
protected void recoverRedundantNetwork(DomainRouterVO masterRouter, DomainRouterVO backupRouter) {
- UserContext context = UserContext.current();
- context.setAccountId(1);
if (masterRouter.getState() == State.Running && backupRouter.getState() == State.Running) {
HostVO masterHost = _hostDao.findById(masterRouter.getHostId());
HostVO backupHost = _hostDao.findById(backupRouter.getHostId());
@@ -1281,45 +1282,49 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
public void run() {
- while (true) {
+ ServerContexts.registerSystemContext();
try {
- Long networkId = _vrUpdateQueue.take();
- List <DomainRouterVO> routers = _routerDao.listByNetworkAndRole(networkId, Role.VIRTUAL_ROUTER);
-
- if (routers.size() != 2) {
- continue;
- }
- /*
- * We update the router pair which the lower id router owned by this mgmt server, in order
- * to prevent duplicate update of router status from cluster mgmt servers
- */
- DomainRouterVO router0 = routers.get(0);
- DomainRouterVO router1 = routers.get(1);
- DomainRouterVO router = router0;
- if ((router0.getId() < router1.getId()) && router0.getHostId() != null) {
- router = router0;
- } else {
- router = router1;
- }
- if (router.getHostId() == null) {
- s_logger.debug("Skip router pair (" + router0.getInstanceName() + "," + router1.getInstanceName() + ") due to can't find host");
- continue;
- }
- HostVO host = _hostDao.findById(router.getHostId());
- if (host == null || host.getManagementServerId() == null ||
- host.getManagementServerId() != ManagementServerNode.getManagementServerId()) {
- s_logger.debug("Skip router pair (" + router0.getInstanceName() + "," + router1.getInstanceName() + ") due to not belong to this mgmt server");
- continue;
+ while (true) {
+ try {
+ Long networkId = _vrUpdateQueue.take(); // This is a blocking call so this thread won't run all the time if no work item in queue.
+ List <DomainRouterVO> routers = _routerDao.listByNetworkAndRole(networkId, Role.VIRTUAL_ROUTER);
+
+ if (routers.size() != 2) {
+ continue;
+ }
+ /*
+ * We update the router pair which the lower id router owned by this mgmt server, in order
+ * to prevent duplicate update of router status from cluster mgmt servers
+ */
+ DomainRouterVO router0 = routers.get(0);
+ DomainRouterVO router1 = routers.get(1);
+ DomainRouterVO router = router0;
+ if ((router0.getId() < router1.getId()) && router0.getHostId() != null) {
+ router = router0;
+ } else {
+ router = router1;
+ }
+ if (router.getHostId() == null) {
+ s_logger.debug("Skip router pair (" + router0.getInstanceName() + "," + router1.getInstanceName() + ") due to can't find host");
+ continue;
+ }
+ HostVO host = _hostDao.findById(router.getHostId());
+ if (host == null || host.getManagementServerId() == null ||
+ host.getManagementServerId() != ManagementServerNode.getManagementServerId()) {
+ s_logger.debug("Skip router pair (" + router0.getInstanceName() + "," + router1.getInstanceName() + ") due to not belong to this mgmt server");
+ continue;
+ }
+ updateRoutersRedundantState(routers);
+ checkDuplicateMaster(routers);
+ checkSanity(routers);
+ } catch (Exception ex) {
+ s_logger.error("Fail to complete the RvRStatusUpdateTask! ", ex);
}
- updateRoutersRedundantState(routers);
- checkDuplicateMaster(routers);
- checkSanity(routers);
- } catch (Exception ex) {
- s_logger.error("Fail to complete the RvRStatusUpdateTask! ", ex);
}
+ } finally {
+ ServerContexts.unregisterSystemContext();
}
}
-
}
protected class CheckRouterTask implements Runnable {
@@ -1329,6 +1334,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
public void run() {
+ ServerContexts.registerSystemContext();
try {
final List<DomainRouterVO> routers = _routerDao.listIsolatedByHostId(null);
s_logger.debug("Found " + routers.size() + " routers to update status. ");
@@ -1345,6 +1351,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
} catch (Exception ex) {
s_logger.error("Fail to complete the CheckRouterTask! ", ex);
+ } finally {
+ ServerContexts.unregisterSystemContext();
}
}
}
@@ -1402,7 +1410,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
for (HostVO h : hosts) {
if (h.getStatus() == Status.Up) {
- s_logger.debug("Pick up host that has hypervisor type " + h.getHypervisorType() + " in cluster " +
+ s_logger.debug("Pick up host that has hypervisor type " + h.getHypervisorType() + " in cluster " +
cv.getId() + " to start domain router for OVM");
return h.getHypervisorType();
}
@@ -1419,7 +1427,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@DB
protected List<DomainRouterVO> findOrDeployVirtualRouterInGuestNetwork(Network guestNetwork, DeployDestination dest, Account owner,
- boolean isRedundant, Map<Param, Object> params) throws ConcurrentOperationException,
+ boolean isRedundant, Map<Param, Object> params) throws ConcurrentOperationException,
InsufficientCapacityException, ResourceUnavailableException {
List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
@@ -1642,9 +1650,9 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
offerHA = false;
}
- router = new DomainRouterVO(id, routerOffering.getId(), vrProvider.getId(),
+ router = new DomainRouterVO(id, routerOffering.getId(), vrProvider.getId(),
VirtualMachineName.getRouterName(id, _instance), template.getId(), template.getHypervisorType(),
- template.getGuestOSId(), owner.getDomainId(), owner.getId(), isRedundant, 0, false,
+ template.getGuestOSId(), owner.getDomainId(), owner.getId(), isRedundant, 0, false,
RedundantState.UNKNOWN, offerHA, false, vpcId);
router.setRole(Role.VIRTUAL_ROUTER);
router = _itMgr.allocate(router, template, routerOffering, networks, plan, null, owner);
@@ -1687,7 +1695,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- protected List<HypervisorType> getHypervisors(DeployDestination dest, DeploymentPlan plan,
+ protected List<HypervisorType> getHypervisors(DeployDestination dest, DeploymentPlan plan,
List<HypervisorType> supportedHypervisors) throws InsufficientServerCapacityException {
List<HypervisorType> hypervisors = new ArrayList<HypervisorType>();
@@ -1758,7 +1766,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (startIp != null && _ipAddressDao.findByIpAndSourceNetworkId(guestNetwork.getId(), startIp).getAllocatedTime() == null) {
defaultNetworkStartIp = startIp;
} else if (s_logger.isDebugEnabled()){
- s_logger.debug("First ipv4 " + startIp + " in network id=" + guestNetwork.getId() +
+ s_logger.debug("First ipv4 " + startIp + " in network id=" + guestNetwork.getId() +
" is already allocated, can't use it for domain router; will get random ip address from the range");
}
}
@@ -1767,13 +1775,13 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (guestNetwork.getIp6Cidr() != null) {
if (placeholder != null && placeholder.getIp6Address() != null) {
s_logger.debug("Requesting ipv6 address " + placeholder.getIp6Address() + " stored in placeholder nic for the network " + guestNetwork);
- defaultNetworkStartIpv6 = placeholder.getIp6Address();
+ defaultNetworkStartIpv6 = placeholder.getIp6Address();
} else {
String startIpv6 = _networkModel.getStartIpv6Address(guestNetwork.getId());
if (startIpv6 != null && _ipv6Dao.findByNetworkIdAndIp(guestNetwork.getId(), startIpv6) == null) {
defaultNetworkStartIpv6 = startIpv6;
} else if (s_logger.isDebugEnabled()){
- s_logger.debug("First ipv6 " + startIpv6 + " in network id=" + guestNetwork.getId() +
+ s_logger.debug("First ipv6 " + startIpv6 + " in network id=" + guestNetwork.getId() +
" is already allocated, can't use it for domain router; will get random ipv6 address from the range");
}
}
@@ -1842,7 +1850,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- protected Pair<DeploymentPlan, List<DomainRouterVO>> getDeploymentPlanAndRouters(boolean isPodBased,
+ protected Pair<DeploymentPlan, List<DomainRouterVO>> getDeploymentPlanAndRouters(boolean isPodBased,
DeployDestination dest, long guestNetworkId) {
long dcId = dest.getDataCenter().getId();
List<DomainRouterVO> routers = null;
@@ -1865,7 +1873,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- private DomainRouterVO startVirtualRouter(DomainRouterVO router, User user, Account caller, Map<Param, Object> params)
+ private DomainRouterVO startVirtualRouter(DomainRouterVO router, User user, Account caller, Map<Param, Object> params)
throws StorageUnavailableException, InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException {
@@ -1908,7 +1916,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
}
if (routerToBeAvoid == null) {
- return this.start(router, user, caller, params, null);
+ return this.start(router, user, caller, params, null);
}
// We would try best to deploy the router to another place
int retryIndex = 5;
@@ -1945,7 +1953,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
@Override
- public List<DomainRouterVO> deployVirtualRouterInGuestNetwork(Network guestNetwork, DeployDestination dest, Account owner,
+ public List<DomainRouterVO> deployVirtualRouterInGuestNetwork(Network guestNetwork, DeployDestination dest, Account owner,
Map<Param, Object> params, boolean isRedundant) throws InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException {
@@ -1985,7 +1993,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
@Override
- public boolean finalizeVirtualMachineProfile(VirtualMachineProfile<DomainRouterVO> profile, DeployDestination dest,
+ public boolean finalizeVirtualMachineProfile(VirtualMachineProfile<DomainRouterVO> profile, DeployDestination dest,
ReservationContext context) {
boolean dnsProvided = true;
@@ -2048,7 +2056,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
// DOMR control command is sent over management server in VMware
if (dest.getHost().getHypervisorType() == HypervisorType.VMware) {
if (s_logger.isInfoEnabled()) {
- s_logger.info("Check if we need to add management server explicit route to DomR. pod cidr: "
+ s_logger.info("Check if we need to add management server explicit route to DomR. pod cidr: "
+ dest.getPod().getCidrAddress() + "/" + dest.getPod().getCidrSize()
+ ", pod gateway: " + dest.getPod().getGateway() + ", management host: " + _mgmt_host);
}
@@ -2106,7 +2114,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
type = "router";
if (_disable_rp_filter) {
rpFilter=" disable_rp_filter=true";
- }
+ }
}
if (_disable_rp_filter) {
@@ -2124,8 +2132,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
buf.append(" extra_pubnics=" + _routerExtraPublicNics);
}
- /* If virtual router didn't provide DNS service but provide DHCP service, we need to override the DHCP response
- * to return DNS server rather than
+ /* If virtual router didn't provide DNS service but provide DHCP service, we need to override the DHCP response
+ * to return DNS server rather than
* virtual router itself. */
if (dnsProvided || dhcpProvided) {
if (defaultDns1 != null) {
@@ -2161,7 +2169,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- protected StringBuilder createGuestBootLoadArgs(NicProfile guestNic, String defaultDns1,
+ protected StringBuilder createGuestBootLoadArgs(NicProfile guestNic, String defaultDns1,
String defaultDns2, DomainRouterVO router) {
long guestNetworkId = guestNic.getNetworkId();
NetworkVO guestNetwork = _networkDao.findById(guestNetworkId);
@@ -2203,7 +2211,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (cidr != null) {
dhcpRange = NetUtils.getIpRangeStartIpFromCidr(cidr, cidrSize);
}
- }
+ }
} else if (dc.getNetworkType() == NetworkType.Advanced) {
String cidr = guestNetwork.getCidr();
if (cidr != null) {
@@ -2268,7 +2276,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
@Override
- public boolean finalizeDeployment(Commands cmds, VirtualMachineProfile<DomainRouterVO> profile,
+ public boolean finalizeDeployment(Commands cmds, VirtualMachineProfile<DomainRouterVO> profile,
DeployDestination dest, ReservationContext context) throws ResourceUnavailableException {
DomainRouterVO router = profile.getVirtualMachine();
@@ -2303,7 +2311,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
// restart network if restartNetwork = false is not specified in profile parameters
boolean reprogramGuestNtwks = true;
- if (profile.getParameter(Param.ReProgramGuestNetworks) != null
+ if (profile.getParameter(Param.ReProgramGuestNetworks) != null
&& (Boolean) profile.getParameter(Param.ReProgramGuestNetworks) == false) {
reprogramGuestNtwks = false;
}
@@ -2509,7 +2517,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
}
- protected void finalizeIpAssocForNetwork(Commands cmds, VirtualRouter router, Provider provider,
+ protected void finalizeIpAssocForNetwork(Commands cmds, VirtualRouter router, Provider provider,
Long guestNetworkId, Map<String, String> vlanMacAddress) {
ArrayList<? extends PublicIpAddress> publicIps = getPublicIpsToApply(router, provider, guestNetworkId);
@@ -2523,7 +2531,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
}
- protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider,
+ protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider,
Long guestNetworkId, com.cloud.network.IpAddress.State... skipInStates) {
long ownerId = router.getAccountId();
final List<? extends IpAddress> userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
@@ -2642,7 +2650,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
- public boolean startRemoteAccessVpn(Network network, RemoteAccessVpn vpn, List<? extends VirtualRouter> routers)
+ public boolean startRemoteAccessVpn(Network network, RemoteAccessVpn vpn, List<? extends VirtualRouter> routers)
throws ResourceUnavailableException {
if (routers == null || routers.isEmpty()) {
s_logger.warn("Failed to start remote access VPN: no router found for account and zone");
@@ -2653,7 +2661,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
for (VirtualRouter router : routers) {
if (router.getState() != State.Running) {
s_logger.warn("Failed to start remote access VPN: router not in right state " + router.getState());
- throw new ResourceUnavailableException("Failed to start remote access VPN: router not in right state "
+ throw new ResourceUnavailableException("Failed to start remote access VPN: router not in right state "
+ router.getState(), DataCenter.class, network.getDataCenterId());
}
@@ -2668,16 +2676,16 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
Answer answer = cmds.getAnswer("users");
if (!answer.getResult()) {
- s_logger.error("Unable to start vpn: unable add users to vpn in zone " + router.getDataCenterId()
+ s_logger.error("Unable to start vpn: unable add users to vpn in zone " + router.getDataCenterId()
+ " for account " + vpn.getAccountId() + " on domR: " + router.getInstanceName()
+ " due to " + answer.getDetails());
- throw new ResourceUnavailableException("Unable to start vpn: Unable to add users to vpn in zone " +
+ throw new ResourceUnavailableException("Unable to start vpn: Unable to add users to vpn in zone " +
router.getDataCenterId() + " for account " + vpn.getAccountId() + " on domR: "
+ router.getInstanceName() + " due to " + answer.getDetails(), DataCenter.class, router.getDataCenterId());
}
answer = cmds.getAnswer("startVpn");
if (!answer.getResult()) {
- s_logger.error("Unable to start vpn in zone " + router.getDataCenterId() + " for account " +
+ s_logger.error("Unable to start vpn in zone " + router.getDataCenterId() + " for account " +
vpn.getAccountId() + " on domR: " + router.getInstanceName() + " due to "
+ answer.getDetails());
throw new ResourceUnavailableException("Unable to start vpn in zone " + router.getDataCenterId()
@@ -2691,7 +2699,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
- public boolean deleteRemoteAccessVpn(Network network, RemoteAccessVpn vpn, List<? extends VirtualRouter> routers)
+ public boolean deleteRemoteAccessVpn(Network network, RemoteAccessVpn vpn, List<? extends VirtualRouter> routers)
throws ResourceUnavailableException {
if (routers == null || routers.isEmpty()) {
s_logger.warn("Failed to delete remote access VPN: no router found for account and zone");
@@ -2704,7 +2712,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
Commands cmds = new Commands(OnError.Continue);
IpAddress ip = _networkModel.getIp(vpn.getServerAddressId());
- RemoteAccessVpnCfgCommand removeVpnCmd = new RemoteAccessVpnCfgCommand(false, ip.getAddress().addr(),
+ RemoteAccessVpnCfgCommand removeVpnCmd = new RemoteAccessVpnCfgCommand(false, ip.getAddress().addr(),
vpn.getLocalIp(), vpn.getIpRange(), vpn.getIpsecPresharedKey());
removeVpnCmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
removeVpnCmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(network.getId(), router.getId()));
@@ -2721,7 +2729,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
continue;
} else {
s_logger.warn("Failed to delete remote access VPN: domR " + router + " is not in right state " + router.getState());
- throw new ResourceUnavailableException("Failed to delete remote access VPN: domR is not in right state " +
+ throw new ResourceUnavailableException("Failed to delete remote access VPN: domR is not in right state " +
router.getState(), DataCenter.class, network.getDataCenterId());
}
}
@@ -2730,7 +2738,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- private DomainRouterVO start(DomainRouterVO router, User user, Account caller, Map<Param, Object> params, DeploymentPlan planToDeploy)
+ private DomainRouterVO start(DomainRouterVO router, User user, Account caller, Map<Param, Object> params, DeploymentPlan planToDeploy)
throws StorageUnavailableException, InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException {
s_logger.debug("Starting router " + router);
@@ -2807,7 +2815,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
try {
if (network.getTrafficType() == TrafficType.Guest && network.getGuestType() == GuestType.Shared) {
Pod pod = _podDao.findById(vm.getPodIdToDeployIn());
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<VlanVO> vlanList = _vlanDao.listVlansByNetworkIdAndGateway(network.getId(), nic.getGateway());
List<Long> vlanDbIdList = new ArrayList<Long>();
for (VlanVO vlan : vlanList) {
@@ -2829,7 +2837,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
return false;
}
//this means we did not create a ip alis on the router.
- NicIpAliasVO alias = new NicIpAliasVO(domr_guest_nic.getId(), routerAliasIp, router.getId(), UserContext.current().getAccountId(), network.getDomainId(), nic.getNetworkId(),nic.getGateway(), nic.getNetmask());
+ NicIpAliasVO alias = new NicIpAliasVO(domr_guest_nic.getId(), routerAliasIp, router.getId(), CallContext.current().getCallingAccountId(), network.getDomainId(), nic.getNetworkId(),nic.getGateway(), nic.getNetmask());
alias.setAliasCount((routerPublicIP.getIpMacAddress()));
_nicIpAliasDao.persist(alias);
List<IpAliasTO> ipaliasTo = new ArrayList<IpAliasTO>();
@@ -2894,7 +2902,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
- public boolean applyDhcpEntry(Network network, final NicProfile nic, VirtualMachineProfile<UserVm> profile,
+ public boolean applyDhcpEntry(Network network, final NicProfile nic, VirtualMachineProfile<UserVm> profile,
DeployDestination dest, List<DomainRouterVO> routers)
throws ResourceUnavailableException {
if(s_logger.isTraceEnabled()) {
@@ -2908,7 +2916,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
boolean podLevelException = false;
//for user vm in Basic zone we should try to re-deploy vm in a diff pod if it fails to deploy in original pod; so throwing exception with Pod scope
- if (isZoneBasic && podId != null && updatedProfile.getVirtualMachine().getType() == VirtualMachine.Type.User
+ if (isZoneBasic && podId != null && updatedProfile.getVirtualMachine().getType() == VirtualMachine.Type.User
&& network.getTrafficType() == TrafficType.Guest && network.getGuestType() == Network.GuestType.Shared) {
podLevelException = true;
}
@@ -2982,7 +2990,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
boolean podLevelException = false;
//for user vm in Basic zone we should try to re-deploy vm in a diff pod if it fails to deploy in original pod; so throwing exception with Pod scope
- if (isZoneBasic && podId != null && updatedProfile.getVirtualMachine().getType() == VirtualMachine.Type.User
+ if (isZoneBasic && podId != null && updatedProfile.getVirtualMachine().getType() == VirtualMachine.Type.User
&& network.getTrafficType() == TrafficType.Guest && network.getGuestType() == Network.GuestType.Shared) {
podLevelException = true;
}
@@ -3014,7 +3022,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
public String[] applyVpnUsers(Network network, List<? extends VpnUser> users, List<DomainRouterVO> routers) throws ResourceUnavailableException {
if (routers == null || routers.isEmpty()) {
s_logger.warn("Failed to add/remove VPN users: no router found for account and zone");
- throw new ResourceUnavailableException("Unable to assign ip addresses, domR doesn't exist for network " +
+ throw new ResourceUnavailableException("Unable to assign ip addresses, domR doesn't exist for network " +
network.getId(), DataCenter.class, network.getDataCenterId());
}
@@ -3023,7 +3031,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
for (DomainRouterVO router : routers) {
if (router.getState() != State.Running) {
s_logger.warn("Failed to add/remove VPN users: router not in running state");
- throw new ResourceUnavailableException("Unable to assign ip addresses, domR is not in right state " +
+ throw new ResourceUnavailableException("Unable to assign ip addresses, domR is not in right state " +
router.getState(), DataCenter.class, network.getDataCenterId());
}
@@ -3088,10 +3096,10 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
@Override
- public VirtualRouter startRouter(long routerId, boolean reprogramNetwork) throws ResourceUnavailableException,
+ public VirtualRouter startRouter(long routerId, boolean reprogramNetwork) throws ResourceUnavailableException,
InsufficientCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
- User callerUser = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ Account caller = CallContext.current().getCallingAccount();
+ User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
// verify parameters
DomainRouterVO router = _routerDao.findById(routerId);
@@ -3127,7 +3135,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
return router;
}
- UserVO user = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO user = _userDao.findById(CallContext.current().getCallingUserId());
Map<Param, Object> params = new HashMap<Param, Object>();
if (reprogramNetwork) {
params.put(Param.ReProgramGuestNetworks, true);
@@ -3209,7 +3217,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
vifMacAddress = ipAddr.getMacAddress();
}
- IpAddressTO ip = new IpAddressTO(ipAddr.getAccountId(), ipAddr.getAddress().addr(), add, firstIP,
+ IpAddressTO ip = new IpAddressTO(ipAddr.getAccountId(), ipAddr.getAddress().addr(), add, firstIP,
sourceNat, vlanId, vlanGateway, vlanNetmask, vifMacAddress, networkRate, ipAddr.isOneToOneNat());
ip.setTrafficType(network.getTrafficType());
@@ -3307,13 +3315,13 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
Network guestNetwork = _networkModel.getNetwork(guestNetworkId);
Nic nic = _nicDao.findByNtwkIdAndInstanceId(guestNetwork.getId(), router.getId());
- NicProfile nicProfile = new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri(),
- _networkModel.getNetworkRate(guestNetwork.getId(), router.getId()),
- _networkModel.isSecurityGroupSupportedInNetwork(guestNetwork),
+ NicProfile nicProfile = new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri(),
+ _networkModel.getNetworkRate(guestNetwork.getId(), router.getId()),
+ _networkModel.isSecurityGroupSupportedInNetwork(guestNetwork),
_networkModel.getNetworkTag(router.getHypervisorType(), guestNetwork));
- LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,routerPublicIp,
- getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress(),
+ LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,routerPublicIp,
+ getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress(),
_itMgr.toNicTO(nicProfile, router.getHypervisorType()), router.getVpcId());
cmd.lbStatsVisibility = _configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
@@ -3350,7 +3358,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
IpAddress ip = _networkModel.getIp(vpn.getServerAddressId());
- RemoteAccessVpnCfgCommand startVpnCmd = new RemoteAccessVpnCfgCommand(true, ip.getAddress().addr(),
+ RemoteAccessVpnCfgCommand startVpnCmd = new RemoteAccessVpnCfgCommand(true, ip.getAddress().addr(),
vpn.getLocalIp(), vpn.getIpRange(), vpn.getIpsecPresharedKey());
startVpnCmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
startVpnCmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(vpn.getNetworkId(), router.getId()));
@@ -3369,7 +3377,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
// password should be set only on default network element
if (password != null && nic.isDefaultNic()) {
String encodedPassword = PasswordGenerator.rot13(password);
- // We would unset password for BACKUP router in the RvR, to prevent user from accidently reset the
+ // We would unset password for BACKUP router in the RvR, to prevent user from accidently reset the
// password again after BACKUP become MASTER
if (router.getIsRedundantRouter() && router.getRedundantState() != RedundantState.MASTER) {
encodedPassword = PasswordGenerator.rot13("saved_password");
@@ -3663,7 +3671,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp);
lbRules.add(loadBalancing);
}
- return sendLBRules(router, lbRules, network.getId());
+ return sendLBRules(router, lbRules, network.getId());
}
});
}
@@ -3756,7 +3764,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
boolean execute(Network network, VirtualRouter router) throws ResourceUnavailableException;
}
- protected boolean applyRules(Network network, List<? extends VirtualRouter> routers, String typeString,
+ protected boolean applyRules(Network network, List<? extends VirtualRouter> routers, String typeString,
boolean isPodLevelException, Long podId, boolean failWhenDisconnect, RuleApplier applier) throws ResourceUnavailableException {
if (routers == null || routers.isEmpty()) {
s_logger.warn("Unable to apply " + typeString + ", virtual router doesn't exist in the network " + network.getId());
@@ -3779,11 +3787,11 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (router.isStopPending()) {
if (_hostDao.findById(router.getHostId()).getStatus() == Status.Up) {
- throw new ResourceUnavailableException("Unable to process due to the stop pending router " +
+ throw new ResourceUnavailableException("Unable to process due to the stop pending router " +
router.getInstanceName() + " haven't been stopped after it's host coming back!",
DataCenter.class, router.getDataCenterId());
}
- s_logger.debug("Router " + router.getInstanceName() + " is stop pending, so not sending apply " +
+ s_logger.debug("Router " + router.getInstanceName() + " is stop pending, so not sending apply " +
typeString + " commands to the backend");
continue;
}
@@ -3805,15 +3813,15 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
} else if (router.getState() == State.Stopped || router.getState() == State.Stopping) {
- s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() +
+ s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() +
", so not sending apply " + typeString + " commands to the backend");
} else {
s_logger.warn("Unable to apply " + typeString +", virtual router is not in the right state " + router.getState());
if (isZoneBasic && isPodLevelException) {
- throw new ResourceUnavailableException("Unable to apply " + typeString +
+ throw new ResourceUnavailableException("Unable to apply " + typeString +
", virtual router is not in the right state", Pod.class, podId);
}
- throw new ResourceUnavailableException("Unable to apply " + typeString +
+ throw new ResourceUnavailableException("Unable to apply " + typeString +
", virtual router is not in the right state", DataCenter.class, router.getDataCenterId());
}
}
@@ -3870,7 +3878,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
rulesTO = new ArrayList<StaticNatRuleTO>();
for (StaticNat rule : rules) {
IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId());
- StaticNatRuleTO ruleTO = new StaticNatRuleTO(0, sourceIp.getAddress().addr(), null,
+ StaticNatRuleTO ruleTO = new StaticNatRuleTO(0, sourceIp.getAddress().addr(), null,
null, rule.getDestIpAddress(), null, null, null, rule.isForRevoke(), false);
rulesTO.add(ruleTO);
}
@@ -3907,8 +3915,6 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
public void processConnect(Host host, StartupCommand cmd, boolean forRebalance) throws ConnectionException {
- UserContext context = UserContext.current();
- context.setAccountId(1);
List<DomainRouterVO> routers = _routerDao.listIsolatedByHostId(host.getId());
for (DomainRouterVO router : routers) {
if (router.isStopPending()) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index 397ece8..4c1fa37 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -26,6 +26,8 @@ import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -63,7 +65,6 @@ import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
@@ -189,8 +190,8 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@ActionEvent(eventType = EventTypes.EVENT_NET_RULE_ADD, eventDescription = "creating forwarding rule", create = true)
public PortForwardingRule createPortForwardingRule(PortForwardingRule rule, Long vmId, Ip vmIp, boolean openFirewall)
throws NetworkRuleConflictException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
Long ipAddrId = rule.getSourceIpAddressId();
@@ -317,7 +318,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
if (!_firewallDao.setStateToAdd(newRule)) {
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
}
- UserContext.current().setEventDetails("Rule Id: " + newRule.getId());
+ CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(),
ipAddress.getDataCenterId(), newRule.getId(), null, PortForwardingRule.class.getName(),
newRule.getUuid());
@@ -352,7 +353,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@DB
@ActionEvent(eventType = EventTypes.EVENT_NET_RULE_ADD, eventDescription = "creating static nat rule", create = true)
public StaticNatRule createStaticNatRule(StaticNatRule rule, boolean openFirewall) throws NetworkRuleConflictException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long ipAddrId = rule.getSourceIpAddressId();
@@ -399,7 +400,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
if (!_firewallDao.setStateToAdd(newRule)) {
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
}
- UserContext.current().setEventDetails("Rule Id: " + newRule.getId());
+ CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(), 0, newRule.getId(),
null, FirewallRule.class.getName(), newRule.getUuid());
@@ -433,9 +434,9 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
private boolean enableStaticNat(long ipId, long vmId, long networkId, boolean isSystemVm, String vmGuestIp)
throws NetworkRuleConflictException, ResourceUnavailableException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
- UserContext.current().setEventDetails("Ip Id: " + ipId);
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
+ CallContext.current().setEventDetails("Ip Id: " + ipId);
// Verify input parameters
IPAddressVO ipAddress = _ipAddressDao.findById(ipId);
@@ -569,7 +570,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
// Verify ip address parameter
// checking vm id is not sufficient, check for the vm ip
- isIpReadyForStaticNat(vmId, ipAddress, dstIp, caller, ctx.getCallerUserId());
+ isIpReadyForStaticNat(vmId, ipAddress, dstIp, caller, ctx.getCallingUserId());
}
ipAddress.setOneToOneNat(true);
@@ -655,8 +656,8 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@Override
@ActionEvent(eventType = EventTypes.EVENT_NET_RULE_DELETE, eventDescription = "revoking forwarding rule", async = true)
public boolean revokePortForwardingRule(long ruleId, boolean apply) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
PortForwardingRuleVO rule = _portForwardingDao.findById(ruleId);
if (rule == null) {
@@ -665,7 +666,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
_accountMgr.checkAccess(caller, null, true, rule);
- if (!revokePortForwardingRuleInternal(ruleId, caller, ctx.getCallerUserId(), apply)) {
+ if (!revokePortForwardingRuleInternal(ruleId, caller, ctx.getCallingUserId(), apply)) {
throw new CloudRuntimeException("Failed to delete port forwarding rule");
}
return true;
@@ -690,8 +691,8 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@Override
@ActionEvent(eventType = EventTypes.EVENT_NET_RULE_DELETE, eventDescription = "revoking forwarding rule", async = true)
public boolean revokeStaticNatRule(long ruleId, boolean apply) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
FirewallRuleVO rule = _firewallDao.findById(ruleId);
if (rule == null) {
@@ -700,7 +701,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
_accountMgr.checkAccess(caller, null, true, rule);
- if (!revokeStaticNatRuleInternal(ruleId, caller, ctx.getCallerUserId(), apply)) {
+ if (!revokeStaticNatRuleInternal(ruleId, caller, ctx.getCallingUserId(), apply)) {
throw new CloudRuntimeException("Failed to revoke forwarding rule");
}
return true;
@@ -764,7 +765,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
Long id = cmd.getId();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
if (ipId != null) {
@@ -977,7 +978,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@Override
public Pair<List<? extends FirewallRule>, Integer> searchStaticNatRules(Long ipId, Long id, Long vmId, Long start, Long size, String accountName, Long domainId, Long projectId, boolean isRecursive, boolean listAll) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
if (ipId != null) {
@@ -1182,8 +1183,8 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@Override
@ActionEvent(eventType = EventTypes.EVENT_DISABLE_STATIC_NAT, eventDescription = "disabling static nat", async=true)
public boolean disableStaticNat(long ipId) throws ResourceUnavailableException, NetworkRuleConflictException, InsufficientAddressCapacityException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
IPAddressVO ipAddress = _ipAddressDao.findById(ipId);
checkIpAndUserVm(ipAddress, null, caller);
@@ -1211,7 +1212,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
}
}
- return disableStaticNat(ipId, caller, ctx.getCallerUserId(), false);
+ return disableStaticNat(ipId, caller, ctx.getCallingUserId(), false);
}
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
index ce6f8ac..d4460f1 100755
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
@@ -43,10 +43,12 @@ import org.apache.cloudstack.api.command.user.securitygroup.CreateSecurityGroupC
import org.apache.cloudstack.api.command.user.securitygroup.DeleteSecurityGroupCmd;
import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd;
import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupIngressCmd;
+
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.log4j.Logger;
import com.amazonaws.services.identitymanagement.model.User;
+
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.NetworkRulesSystemVmCommand;
import com.cloud.agent.api.NetworkRulesVmSecondaryIpCommand;
@@ -75,7 +77,6 @@ import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.uservm.UserVm;
import com.cloud.utils.NumbersUtil;
@@ -97,8 +98,12 @@ import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.VMInstanceDao;
+
import edu.emory.mathcs.backport.java.util.Collections;
+
import org.apache.cloudstack.api.command.user.securitygroup.*;
+import org.apache.cloudstack.context.CallContext;
+
import java.util.*;
@Local(value = { SecurityGroupManager.class, SecurityGroupService.class })
@@ -596,7 +601,7 @@ public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGro
throw new InvalidParameterValueException("At least one cidr or at least one security group needs to be specified");
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(securityGroup.getAccountId());
if (owner == null) {
@@ -773,7 +778,7 @@ public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGro
private boolean revokeSecurityGroupRule(Long id, SecurityRuleType type) {
// input validation
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
SecurityGroupRuleVO rule = _securityGroupRuleDao.findById(id);
if (rule == null) {
@@ -827,7 +832,7 @@ public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGro
@ActionEvent(eventType = EventTypes.EVENT_SECURITY_GROUP_CREATE, eventDescription = "creating security group")
public SecurityGroupVO createSecurityGroup(CreateSecurityGroupCmd cmd) throws PermissionDeniedException, InvalidParameterValueException {
String name = cmd.getSecurityGroupName();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.finalizeOwner(caller, cmd.getAccountName(), cmd.getDomainId(), cmd.getProjectId());
if (_securityGroupDao.isNameInUse(owner.getId(), owner.getDomainId(), cmd.getSecurityGroupName())) {
@@ -1066,7 +1071,7 @@ public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGro
@ActionEvent(eventType = EventTypes.EVENT_SECURITY_GROUP_DELETE, eventDescription = "deleting security group")
public boolean deleteSecurityGroup(DeleteSecurityGroupCmd cmd) throws ResourceInUseException {
Long groupId = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
SecurityGroupVO group = _securityGroupDao.findById(groupId);
if (group == null) {
@@ -1318,7 +1323,7 @@ public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGro
return true;
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
for (SecurityGroupVO securityGroup: vmSgGrps) {
Account owner = _accountMgr.getAccount(securityGroup.getAccountId());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
index 5c45a86..1028d74 100644
--- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
@@ -35,16 +35,19 @@ import com.cloud.offering.NetworkOffering;
import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import org.apache.cloudstack.context.CallContext;
+
import javax.ejb.Local;
import javax.inject.Inject;
+
import java.util.ArrayList;
import java.util.List;
@@ -232,7 +235,7 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana
if (!_networkACLItemDao.setStateToAdd(newRule)) {
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
}
- UserContext.current().setEventDetails("ACL Item Id: " + newRule.getId());
+ CallContext.current().setEventDetails("ACL Item Id: " + newRule.getId());
txn.commit();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java
index 4c97869..274ca44 100644
--- a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java
+++ b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java
@@ -31,7 +31,6 @@ import com.cloud.tags.ResourceTagVO;
import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.ManagerBase;
@@ -42,16 +41,20 @@ import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
+
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd;
import org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import javax.ejb.Local;
import javax.inject.Inject;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -85,7 +88,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
@Override
public NetworkACL createNetworkACL(String name, String description, long vpcId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Vpc vpc = _vpcMgr.getVpc(vpcId);
if(vpc == null){
throw new InvalidParameterValueException("Unable to find VPC");
@@ -137,7 +140,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
@Override
public boolean deleteNetworkACL(long id) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
NetworkACL acl = _networkACLDao.findById(id);
if(acl == null) {
throw new InvalidParameterValueException("Unable to find specified ACL");
@@ -157,7 +160,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
}
@Override
public boolean replaceNetworkACLonPrivateGw(long aclId, long privateGatewayId) throws ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VpcGateway gateway = _vpcGatewayDao.findById(privateGatewayId);
if (gateway == null) {
throw new InvalidParameterValueException("Unable to find specified private gateway");
@@ -198,7 +201,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
@Override
public boolean replaceNetworkACL(long aclId, long networkId) throws ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
NetworkVO network = _networkDao.findById(networkId);
if(network == null){
@@ -237,7 +240,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
@Override
public NetworkACLItem createNetworkACLItem(CreateNetworkACLCmd aclItemCmd){
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long aclId = aclItemCmd.getACLId();
if(aclId == null){
//ACL id is not specified. Get the ACL details from network
@@ -415,7 +418,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
String action = cmd.getAction();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject =
@@ -518,7 +521,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
Vpc vpc = _vpcMgr.getVpc(acl.getVpcId());
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountMgr.checkAccess(caller, null, true, vpc);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index 2555ef6..f74e770 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -81,7 +81,6 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
@@ -100,15 +99,19 @@ import com.cloud.utils.net.NetUtils;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.ReservationContextImpl;
import com.cloud.vm.dao.DomainRouterDao;
+
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -350,7 +353,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
}
VpcOffering offering = createVpcOffering(name, displayText, svcProviderMap, false, null);
- UserContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
+ CallContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
return offering;
}
@@ -498,7 +501,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
@ActionEvent(eventType = EventTypes.EVENT_VPC_OFFERING_DELETE, eventDescription = "deleting vpc offering")
public boolean deleteVpcOffering(long offId) {
- UserContext.current().setEventDetails(" Id: " + offId);
+ CallContext.current().setEventDetails(" Id: " + offId);
// Verify vpc offering id
VpcOfferingVO offering = _vpcOffDao.findById(offId);
@@ -528,7 +531,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
@ActionEvent(eventType = EventTypes.EVENT_VPC_OFFERING_UPDATE, eventDescription = "updating vpc offering")
public VpcOffering updateVpcOffering(long vpcOffId, String vpcOfferingName, String displayText, String state) {
- UserContext.current().setEventDetails(" Id: " + vpcOffId);
+ CallContext.current().setEventDetails(" Id: " + vpcOffId);
// Verify input parameters
VpcOfferingVO offeringToUpdate = _vpcOffDao.findById(vpcOffId);
@@ -571,7 +574,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@ActionEvent(eventType = EventTypes.EVENT_VPC_CREATE, eventDescription = "creating vpc", create=true)
public Vpc createVpc(long zoneId, long vpcOffId, long vpcOwnerId, String vpcName, String displayText, String cidr,
String networkDomain) throws ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(vpcOwnerId);
//Verify that caller can perform actions in behalf of vpc owner
@@ -697,8 +700,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
@ActionEvent(eventType = EventTypes.EVENT_VPC_DELETE, eventDescription = "deleting VPC")
public boolean deleteVpc(long vpcId) throws ConcurrentOperationException, ResourceUnavailableException {
- UserContext.current().setEventDetails(" Id: " + vpcId);
- UserContext ctx = UserContext.current();
+ CallContext.current().setEventDetails(" Id: " + vpcId);
+ CallContext ctx = CallContext.current();
// Verify vpc id
Vpc vpc = getVpc(vpcId);
@@ -707,9 +710,9 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
}
//verify permissions
- _accountMgr.checkAccess(ctx.getCaller(), null, false, vpc);
+ _accountMgr.checkAccess(ctx.getCallingAccount(), null, false, vpc);
- return destroyVpc(vpc, ctx.getCaller(), ctx.getCallerUserId());
+ return destroyVpc(vpc, ctx.getCallingAccount(), ctx.getCallingUserId());
}
@Override
@@ -764,8 +767,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
@ActionEvent(eventType = EventTypes.EVENT_VPC_UPDATE, eventDescription = "updating vpc")
public Vpc updateVpc(long vpcId, String vpcName, String displayText) {
- UserContext.current().setEventDetails(" Id: " + vpcId);
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + vpcId);
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
VpcVO vpcToUpdate = _vpcDao.findById(vpcId);
@@ -798,7 +801,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
public List<? extends Vpc> listVpcs(Long id, String vpcName, String displayText, List<String> supportedServicesStr,
String cidr, Long vpcOffId, String state, String accountName, Long domainId, String keyword,
Long startIndex, Long pageSizeVal, Long zoneId, Boolean isRecursive, Boolean listAll, Boolean restartRequired, Map<String, String> tags, Long projectId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean,
@@ -941,9 +944,9 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
public boolean startVpc(long vpcId, boolean destroyOnFailure) throws ConcurrentOperationException, ResourceUnavailableException,
InsufficientCapacityException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
- User callerUser = _accountMgr.getActiveUser(ctx.getCallerUserId());
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
+ User callerUser = _accountMgr.getActiveUser(ctx.getCallingUserId());
//check if vpc exists
Vpc vpc = getActiveVpc(vpcId);
@@ -1005,8 +1008,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
public boolean shutdownVpc(long vpcId) throws ConcurrentOperationException, ResourceUnavailableException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
//check if vpc exists
Vpc vpc = getVpc(vpcId);
@@ -1023,7 +1026,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
boolean success = true;
List<Provider> providersToImplement = getVpcProviders(vpc.getId());
- ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(ctx.getCallerUserId()), caller);
+ ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(ctx.getCallingUserId()), caller);
for (VpcProvider element: getVpcElements()){
if(providersToImplement.contains(element.getProvider())){
if (element.shutdownVpc(vpc, context)) {
@@ -1281,7 +1284,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@ActionEvent(eventType = EventTypes.EVENT_VPC_RESTART, eventDescription = "restarting vpc")
public boolean restartVpc(long vpcId) throws ConcurrentOperationException, ResourceUnavailableException,
InsufficientCapacityException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
Vpc vpc = getActiveVpc(vpcId);
@@ -1521,7 +1524,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
}
if (deleteNetwork) {
- User callerUser = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
Account owner = _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM);
ReservationContext context = new ReservationContextImpl(null, null, callerUser, owner);
_ntwkMgr.destroyNetwork(networkId, context);
@@ -1545,7 +1548,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
Boolean listAll = cmd.listAll();
Long domainId = cmd.getDomainId();
String accountName = cmd.getAccountName();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
String state = cmd.getState();
Long projectId = cmd.getProjectId();
@@ -1607,7 +1610,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
public boolean applyStaticRoutes(long vpcId) throws ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<? extends StaticRoute> routes = _staticRouteDao.listByVpcId(vpcId);
return applyStaticRoutes(routes, caller, true);
}
@@ -1675,7 +1678,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@Override
@ActionEvent(eventType = EventTypes.EVENT_STATIC_ROUTE_DELETE, eventDescription = "deleting static route")
public boolean revokeStaticRoute(long routeId) throws ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
StaticRouteVO route = _staticRouteDao.findById(routeId);
if (route == null) {
@@ -1712,7 +1715,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@DB
@ActionEvent(eventType = EventTypes.EVENT_STATIC_ROUTE_CREATE, eventDescription = "creating static route", create=true)
public StaticRoute createStaticRoute(long gatewayId, String cidr) throws NetworkRuleConflictException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//parameters validation
VpcGateway gateway = _vpcGatewayDao.findById(gatewayId);
@@ -1762,7 +1765,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
if (!_staticRouteDao.setStateToAdd(newRoute)) {
throw new CloudRuntimeException("Unable to update the state to add for " + newRoute);
}
- UserContext.current().setEventDetails("Static route Id: " + newRoute.getId());
+ CallContext.current().setEventDetails("Static route Id: " + newRoute.getId());
txn.commit();
@@ -1795,7 +1798,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
Boolean isRecursive = cmd.isRecursive();
Boolean listAll = cmd.listAll();
String accountName = cmd.getAccountName();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Map<String, String> tags = cmd.getTags();
Long projectId = cmd.getProjectId();
@@ -1939,7 +1942,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
@ActionEvent(eventType = EventTypes.EVENT_NET_IP_ASSIGN, eventDescription = "associating Ip", async = true)
public IpAddress associateIPToVpc(long ipId, long vpcId) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = null;
IpAddress ipToAssoc = _ntwkModel.getIp(ipId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 9e7bb13..401b9f4 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -27,6 +27,8 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -43,10 +45,6 @@ import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.Network.Service;
-import com.cloud.network.NetworkModel;
-import com.cloud.network.PublicIpAddress;
-import com.cloud.network.RemoteAccessVpn;
-import com.cloud.network.VpnUser;
import com.cloud.network.*;
import com.cloud.network.VpnUser.State;
import com.cloud.network.dao.FirewallRulesDao;
@@ -66,18 +64,12 @@ import com.cloud.server.ConfigurationServer;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.PasswordGenerator;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.ManagerBase;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Filter;
-import com.cloud.utils.db.JoinBuilder;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.*;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.net.NetUtils;
@@ -113,8 +105,8 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@DB
public RemoteAccessVpn createRemoteAccessVpn(long publicIpId, String ipRange, boolean openFirewall, long networkId)
throws NetworkRuleConflictException {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
// make sure ip address exists
PublicIpAddress ipAddr = _networkMgr.getPublicIpAddress(publicIpId);
@@ -312,7 +304,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@Override
@DB
public VpnUser addVpnUser(long vpnOwnerId, String username, String password) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (!username.matches("^[a-zA-Z0-9][a-zA-Z0-9@._-]{2,63}$")) {
throw new InvalidParameterValueException(
@@ -366,7 +358,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@Override
public List<? extends VpnUser> listVpnUsers(long vpnOwnerId, String userName) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountDao.findById(vpnOwnerId);
_accountMgr.checkAccess(caller, null, true, owner);
return _vpnUsersDao.listByAccount(vpnOwnerId);
@@ -374,7 +366,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@Override @DB
public RemoteAccessVpnVO startRemoteAccessVpn(long ipAddressId, boolean openFirewall) throws ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findByPublicIpAddress(ipAddressId);
if (vpn == null) {
@@ -425,7 +417,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@DB
@Override
public boolean applyVpnUsers(long vpnOwnerId, String userName) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountDao.findById(vpnOwnerId);
_accountMgr.checkAccess(caller, null, true, owner);
@@ -504,7 +496,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
public Pair<List<? extends VpnUser>, Integer> searchForVpnUsers(ListVpnUsersCmd cmd) {
String username = cmd.getUsername();
Long id = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
@@ -542,7 +534,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@Override
public Pair<List<? extends RemoteAccessVpn>, Integer> searchForRemoteAccessVpns(ListRemoteAccessVpnsCmd cmd) {
// do some parameter validation
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long ipAddressId = cmd.getPublicIpId();
List<Long> permittedAccounts = new ArrayList<Long>();
[06/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 42430bc..f6e9a0a 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -39,10 +39,12 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.PortableIp;
import org.apache.cloudstack.region.PortableIpDao;
import org.apache.cloudstack.region.PortableIpVO;
import org.apache.cloudstack.region.Region;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -167,7 +169,6 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
@@ -712,8 +713,8 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
private IpAddress allocateIP(Account ipOwner, boolean isSystem, long zoneId)
throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
- long callerUserId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ long callerUserId = CallContext.current().getCallingUserId();
// check permissions
_accountMgr.checkAccess(caller, null, false, ipOwner);
@@ -768,7 +769,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
ex.addProxyObject(ApiDBUtils.findZoneById(zone.getId()).getUuid());
throw ex;
}
- UserContext.current().setEventDetails("Ip Id: " + ip.getId());
+ CallContext.current().setEventDetails("Ip Id: " + ip.getId());
Ip ipAddress = ip.getAddress();
s_logger.debug("Got " + ipAddress + " to assign for account " + ipOwner.getId() + " in zone " + zone.getId());
@@ -874,7 +875,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
public IPAddressVO associateIPToGuestNetwork(long ipId, long networkId, boolean releaseOnFailure)
throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = null;
IPAddressVO ipToAssoc = _ipAddressDao.findById(ipId);
@@ -888,7 +889,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
if (zone.getNetworkType() == NetworkType.Advanced) {
if (network.getGuestType() == Network.GuestType.Shared) {
if (isSharedNetworkOfferingWithServices(network.getNetworkOfferingId())) {
- _accountMgr.checkAccess(UserContext.current().getCaller(), AccessType.UseNetwork, false, network);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), AccessType.UseNetwork, false, network);
} else {
throw new InvalidParameterValueException("IP can be associated with guest network of 'shared' type only if " +
"network services Source Nat, Static Nat, Port Forwarding, Load balancing, firewall are enabled in the network");
@@ -1002,7 +1003,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = null;
Network network = _networksDao.findById(networkId);
@@ -1025,7 +1026,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
if (zone.getNetworkType() == NetworkType.Advanced) {
if (network.getGuestType() == Network.GuestType.Shared) {
assert (isSharedNetworkOfferingWithServices(network.getNetworkOfferingId()));
- _accountMgr.checkAccess(UserContext.current().getCaller(), AccessType.UseNetwork, false, network);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), AccessType.UseNetwork, false, network);
}
} else {
_accountMgr.checkAccess(caller, null, true, ipToAssoc);
@@ -1984,7 +1985,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
// reapply all the firewall/staticNat/lb rules
s_logger.debug("Reprogramming network " + network + " as a part of network implement");
- if (!reprogramNetworkRules(network.getId(), UserContext.current().getCaller(), network)) {
+ if (!reprogramNetworkRules(network.getId(), CallContext.current().getCallingAccount(), network)) {
s_logger.warn("Failed to re-program the network as a part of network " + network + " implement");
// see DataCenterVO.java
ResourceUnavailableException ex = new ResourceUnavailableException("Unable to apply network rules as a part of network " + network + " implement", DataCenter.class, network.getDataCenterId());
@@ -2655,7 +2656,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
}
txn.commit();
- UserContext.current().setEventDetails("Network Id: " + network.getId());
+ CallContext.current().setEventDetails("Network Id: " + network.getId());
return network;
}
@@ -3356,8 +3357,8 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
if ( createNetwork && requiredOfferings.get(0).getIsPersistent() ) {
DataCenter zone = _dcDao.findById(zoneId);
DeployDestination dest = new DeployDestination(zone, null, null, null);
- Account callerAccount = UserContext.current().getCaller();
- UserVO callerUser = _userDao.findById(UserContext.current().getCallerUserId());
+ Account callerAccount = CallContext.current().getCallingAccount();
+ UserVO callerUser = _userDao.findById(CallContext.current().getCallingUserId());
Journal journal = new Journal.LogJournal("Implementing " + guestNetwork, s_logger);
ReservationContext context = new ReservationContextImpl(UUID.randomUUID().toString(), journal, callerUser, callerAccount);
s_logger.debug("Implementing network " + guestNetwork + " as a part of network provision for persistent network");
@@ -3559,7 +3560,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
public String allocateGuestIP(Account ipOwner, boolean isSystem, long zoneId, Long networkId, String requestedIp)
throws InsufficientAddressCapacityException {
String ipaddr = null;
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// check permissions
Network network = _networksDao.findById(networkId);
@@ -4176,8 +4177,8 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
Long networkId = ip.getAssociatedWithNetworkId();
if (networkId != null) {
if (ip.getSystem()) {
- UserContext ctx = UserContext.current();
- if (!disassociatePublicIpAddress(ip.getId(), ctx.getCallerUserId(), ctx.getCaller())) {
+ CallContext ctx = CallContext.current();
+ if (!disassociatePublicIpAddress(ip.getId(), ctx.getCallingUserId(), ctx.getCallingAccount())) {
s_logger.warn("Unable to release system ip address id=" + ip.getId());
success = false;
} else {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index f8f6044..ccd23bf 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -18,8 +18,6 @@ package com.cloud.network;
import java.net.Inet6Address;
import java.net.InetAddress;
-import java.net.InetAddress;
-import java.net.Inet6Address;
import java.net.UnknownHostException;
import java.security.InvalidParameterException;
import java.sql.PreparedStatement;
@@ -41,31 +39,20 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import com.cloud.network.vpc.dao.VpcDao;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
-import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
import org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
-import org.apache.cloudstack.api.command.user.network.*;
-import com.cloud.network.vpc.NetworkACL;
-import com.cloud.network.vpc.dao.NetworkACLDao;
-import org.apache.cloudstack.acl.ControlledEntity.ACLType;
-import org.apache.cloudstack.acl.SecurityChecker.AccessType;
-import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
-import org.bouncycastle.util.IPAddress;
import com.cloud.api.ApiDBUtils;
import com.cloud.configuration.Config;
@@ -133,13 +120,15 @@ import com.cloud.network.element.VpcVirtualRouterElement;
import com.cloud.network.guru.NetworkGuru;
import com.cloud.network.rules.FirewallRule.Purpose;
import com.cloud.network.rules.FirewallRuleVO;
-import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.RulesManager;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
+import com.cloud.network.vpc.NetworkACL;
import com.cloud.network.vpc.PrivateIpVO;
import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcManager;
+import com.cloud.network.vpc.dao.NetworkACLDao;
import com.cloud.network.vpc.dao.PrivateIpDao;
+import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
@@ -156,11 +145,9 @@ import com.cloud.user.AccountVO;
import com.cloud.user.DomainManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
-import com.cloud.utils.AnnotationHelper;
import com.cloud.utils.Journal;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -518,8 +505,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
public IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId)
throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
- long callerUserId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ long callerUserId = CallContext.current().getCallingUserId();
DataCenter zone = _configMgr.getZone(zoneId);
if (networkId != null) {
@@ -557,8 +544,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@ActionEvent(eventType = EventTypes.EVENT_PORTABLE_IP_ASSIGN, eventDescription = "allocating portable public Ip", create = true)
public IpAddress allocatePortableIP(Account ipOwner, int regionId, Long zoneId, Long networkId, Long vpcId)
throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
- long callerUserId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ long callerUserId = CallContext.current().getCallingUserId();
DataCenter zone = _configMgr.getZone(zoneId);
if ((networkId == null && vpcId == null) && (networkId != null && vpcId != null)) {
@@ -653,7 +640,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
throw new InvalidParameterValueException("Invalid network id is given");
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//check whether the nic belongs to user vm.
NicVO nicVO = _nicDao.findById(nicId);
@@ -753,7 +740,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@Override
@DB
public boolean releaseSecondaryIpFromNic (long ipAddressId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
boolean success = false;
// Verify input parameters
@@ -865,8 +852,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@DB
private boolean releaseIpAddressInternal(long ipAddressId) throws InsufficientAddressCapacityException {
- Long userId = UserContext.current().getCallerUserId();
- Account caller = UserContext.current().getCaller();
+ Long userId = CallContext.current().getCallingUserId();
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
IPAddressVO ipVO = _ipAddressDao.findById(ipAddressId);
@@ -989,7 +976,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
String vlanId = cmd.getVlan();
String name = cmd.getNetworkName();
String displayText = cmd.getDisplayText();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long physicalNetworkId = cmd.getPhysicalNetworkId();
Long zoneId = cmd.getZoneId();
String aclTypeStr = cmd.getAclType();
@@ -1118,8 +1105,6 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
owner = caller;
}
- UserContext.current().setAccountId(owner.getAccountId());
-
boolean ipv4 = true, ipv6 = false;
if (startIP != null) {
ipv4 = true;
@@ -1340,7 +1325,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
return network;
}
DeployDestination dest = new DeployDestination(zone, null, null, null);
- UserVO callerUser = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO callerUser = _userDao.findById(CallContext.current().getCallingUserId());
Journal journal = new Journal.LogJournal("Implementing " + network, s_logger);
ReservationContext context = new ReservationContextImpl(UUID.randomUUID().toString(), journal, callerUser, caller);
s_logger.debug("Implementing network " + network + " as a part of network provision for persistent network");
@@ -1364,7 +1349,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
Long id = cmd.getId();
String keyword = cmd.getKeyword();
Long zoneId = cmd.getZoneId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long domainId = cmd.getDomainId();
String accountName = cmd.getAccountName();
String guestIpType = cmd.getGuestIpType();
@@ -1756,7 +1741,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@ActionEvent(eventType = EventTypes.EVENT_NETWORK_DELETE, eventDescription = "deleting network", async = true)
public boolean deleteNetwork(long networkId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify network id
NetworkVO network = _networksDao.findById(networkId);
@@ -1780,7 +1765,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
// Perform permission check
_accountMgr.checkAccess(caller, null, true, network);
- User callerUser = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
ReservationContext context = new ReservationContextImpl(null, null, callerUser, owner);
return _networkMgr.destroyNetwork(networkId, context);
@@ -1793,7 +1778,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
// This method restarts all network elements belonging to the network and re-applies all the rules
Long networkId = cmd.getNetworkId();
- User callerUser = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
Account callerAccount = _accountMgr.getActiveAccountById(callerUser.getAccountId());
// Check if network exists
@@ -3476,7 +3461,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
throw new CloudRuntimeException("Provider is not deletable because there are active networks using this provider, please upgrade these networks to new network offerings");
}
- User callerUser = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
Account callerAccount = _accountMgr.getActiveAccountById(callerUser.getAccountId());
// shutdown the provider instances
ReservationContext context = new ReservationContextImpl(null, null, callerUser, callerAccount);
@@ -3968,7 +3953,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@Override
public List<? extends Nic> listNics(ListNicsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long nicId = cmd.getNicId();
Long vmId = cmd.getVmId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/NetworkUsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkUsageManagerImpl.java b/server/src/com/cloud/network/NetworkUsageManagerImpl.java
index 972d3ff..5df35c8 100755
--- a/server/src/com/cloud/network/NetworkUsageManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkUsageManagerImpl.java
@@ -73,11 +73,12 @@ import org.apache.cloudstack.api.command.admin.usage.AddTrafficMonitorCmd;
import org.apache.cloudstack.api.command.admin.usage.DeleteTrafficMonitorCmd;
import org.apache.cloudstack.api.command.admin.usage.ListTrafficMonitorsCmd;
import org.apache.cloudstack.api.response.TrafficMonitorResponse;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.usage.UsageIPAddressVO;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserStatisticsVO;
import com.cloud.user.dao.UserStatisticsDao;
import com.cloud.utils.NumbersUtil;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
index 247441e..213ff67 100644
--- a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
+++ b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
@@ -43,6 +43,8 @@ import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScalePolicyCmd
import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmGroupCmd;
import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmProfileCmd;
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -80,7 +82,6 @@ import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
import com.cloud.utils.Pair;
@@ -96,6 +97,7 @@ import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.net.NetUtils;
+
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -306,7 +308,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
public AutoScaleVmProfile createAutoScaleVmProfile(CreateAutoScaleVmProfileCmd cmd) {
Account owner = _accountDao.findById(cmd.getAccountId());
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountMgr.checkAccess(caller, null, true, owner);
long zoneId = cmd.getZoneId();
@@ -337,7 +339,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
ApiDispatcher.processParameters(new DeployVMCmd(), deployParams);
if (autoscaleUserId == null) {
- autoscaleUserId = UserContext.current().getCallerUserId();
+ autoscaleUserId = CallContext.current().getCallingUserId();
}
AutoScaleVmProfileVO profileVO = new AutoScaleVmProfileVO(cmd.getZoneId(), cmd.getDomainId(), cmd.getAccountId(), cmd.getServiceOfferingId(), cmd.getTemplateId(), cmd.getOtherDeployParams(),
@@ -358,7 +360,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
Integer destroyVmGraceperiod = cmd.getDestroyVmGraceperiod();
- AutoScaleVmProfileVO vmProfile = getEntityInDatabase(UserContext.current().getCaller(), "Auto Scale Vm Profile", profileId, _autoScaleVmProfileDao);
+ AutoScaleVmProfileVO vmProfile = getEntityInDatabase(CallContext.current().getCallingAccount(), "Auto Scale Vm Profile", profileId, _autoScaleVmProfileDao);
if (templateId != null) {
vmProfile.setTemplateId(templateId);
@@ -393,7 +395,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@ActionEvent(eventType = EventTypes.EVENT_AUTOSCALEVMPROFILE_DELETE, eventDescription = "deleting autoscale vm profile")
public boolean deleteAutoScaleVmProfile(long id) {
/* Check if entity is in database */
- getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Vm Profile", id, _autoScaleVmProfileDao);
+ getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Vm Profile", id, _autoScaleVmProfileDao);
if (_autoScaleVmGroupDao.isProfileInUse(id)) {
throw new InvalidParameterValueException("Cannot delete AutoScale Vm Profile when it is in use by one more vm groups");
}
@@ -459,7 +461,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
ControlledEntity[] sameOwnerEntities = conditions.toArray(new ControlledEntity[conditions.size() + 1]);
sameOwnerEntities[sameOwnerEntities.length - 1] = autoScalePolicyVO;
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, sameOwnerEntities);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, sameOwnerEntities);
if (conditionIds.size() != conditions.size()) {
// TODO report the condition id which could not be found
@@ -516,7 +518,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@ActionEvent(eventType = EventTypes.EVENT_AUTOSCALEPOLICY_DELETE, eventDescription = "deleting autoscale policy")
public boolean deleteAutoScalePolicy(long id) {
/* Check if entity is in database */
- getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Policy", id, _autoScalePolicyDao);
+ getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Policy", id, _autoScalePolicyDao);
if (_autoScaleVmGroupPolicyMapDao.isAutoScalePolicyInUse(id)) {
throw new InvalidParameterValueException("Cannot delete AutoScale Policy when it is in use by one or more AutoScale Vm Groups");
@@ -543,7 +545,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
public void checkCallerAccess(String accountName, Long domainId)
{
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountDao.findActiveAccount(accountName, domainId);
if (owner == null) {
List<String> idList = new ArrayList<String>();
@@ -573,7 +575,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
boolean listAll = cmd.listAll();
long startIndex = cmd.getStartIndex();
long pageSizeVal = cmd.getPageSizeVal();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean,
ListProjectResourcesCriteria>(domainId, isRecursive, null);
@@ -654,7 +656,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
Integer duration = cmd.getDuration();
Integer quietTime = cmd.getQuietTime();
List<Long> conditionIds = cmd.getConditionIds();
- AutoScalePolicyVO policy = getEntityInDatabase(UserContext.current().getCaller(), "Auto Scale Policy", policyId, _autoScalePolicyDao);
+ AutoScalePolicyVO policy = getEntityInDatabase(CallContext.current().getCallingAccount(), "Auto Scale Policy", policyId, _autoScalePolicyDao);
if (duration != null) {
policy.setDuration(duration);
@@ -697,7 +699,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
interval = NetUtils.DEFAULT_AUTOSCALE_POLICY_INTERVAL_TIME;
}
- LoadBalancerVO loadBalancer = getEntityInDatabase(UserContext.current().getCaller(), ApiConstants.LBID, cmd.getLbRuleId(), _lbDao);
+ LoadBalancerVO loadBalancer = getEntityInDatabase(CallContext.current().getCallingAccount(), ApiConstants.LBID, cmd.getLbRuleId(), _lbDao);
Long zoneId = _ipAddressDao.findById(loadBalancer.getSourceIpAddressId()).getDataCenterId();
@@ -749,7 +751,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@DB
@ActionEvent(eventType = EventTypes.EVENT_AUTOSCALEVMGROUP_DELETE, eventDescription = "deleting autoscale vm group")
public boolean deleteAutoScaleVmGroup(long id) {
- AutoScaleVmGroupVO autoScaleVmGroupVO = getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
+ AutoScaleVmGroupVO autoScaleVmGroupVO = getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
if (autoScaleVmGroupVO.getState().equals(AutoScaleVmGroup.State_New)) {
/* This condition is for handling failures during creation command */
@@ -880,15 +882,15 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
getAutoScalePolicies("scaledownpolicyid", currentScaleDownPolicyIds, counters, interval, false);
policyIds.addAll(currentScaleDownPolicyIds);
}
- AutoScaleVmProfileVO profileVO = getEntityInDatabase(UserContext.current().getCaller(), ApiConstants.VMPROFILE_ID, vmGroup.getProfileId(), _autoScaleVmProfileDao);
+ AutoScaleVmProfileVO profileVO = getEntityInDatabase(CallContext.current().getCallingAccount(), ApiConstants.VMPROFILE_ID, vmGroup.getProfileId(), _autoScaleVmProfileDao);
- LoadBalancerVO loadBalancer = getEntityInDatabase(UserContext.current().getCaller(), ApiConstants.LBID, vmGroup.getLoadBalancerId(), _lbDao);
+ LoadBalancerVO loadBalancer = getEntityInDatabase(CallContext.current().getCallingAccount(), ApiConstants.LBID, vmGroup.getLoadBalancerId(), _lbDao);
validateAutoScaleCounters(loadBalancer.getNetworkId(), counters, profileVO.getCounterParams());
ControlledEntity[] sameOwnerEntities = policies.toArray(new ControlledEntity[policies.size() + 2]);
sameOwnerEntities[sameOwnerEntities.length - 2] = loadBalancer;
sameOwnerEntities[sameOwnerEntities.length - 1] = profileVO;
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, sameOwnerEntities);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, sameOwnerEntities);
final Transaction txn = Transaction.currentTxn();
txn.start();
@@ -917,7 +919,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
List<Long> scaleUpPolicyIds = cmd.getScaleUpPolicyIds();
List<Long> scaleDownPolicyIds = cmd.getScaleDownPolicyIds();
- AutoScaleVmGroupVO vmGroupVO = getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Vm Group", vmGroupId, _autoScaleVmGroupDao);
+ AutoScaleVmGroupVO vmGroupVO = getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Vm Group", vmGroupId, _autoScaleVmGroupDao);
if (!vmGroupVO.getState().equals(AutoScaleVmGroup.State_Disabled)) {
throw new InvalidParameterValueException("An AutoScale Vm Group can be updated only when it is in disabled state");
@@ -947,7 +949,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@DB
@ActionEvent(eventType = EventTypes.EVENT_AUTOSCALEVMGROUP_ENABLE, eventDescription = "enabling autoscale vm group")
public AutoScaleVmGroup enableAutoScaleVmGroup(Long id) {
- AutoScaleVmGroupVO vmGroup = getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
+ AutoScaleVmGroupVO vmGroup = getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
boolean success = false;
if (!vmGroup.getState().equals(AutoScaleVmGroup.State_Disabled)) {
throw new InvalidParameterValueException("Only a AutoScale Vm Group which is in Disabled state can be enabled.");
@@ -974,7 +976,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@ActionEvent(eventType = EventTypes.EVENT_AUTOSCALEVMGROUP_DISABLE, eventDescription = "disabling autoscale vm group")
@DB
public AutoScaleVmGroup disableAutoScaleVmGroup(Long id) {
- AutoScaleVmGroupVO vmGroup = getEntityInDatabase(UserContext.current().getCaller(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
+ AutoScaleVmGroupVO vmGroup = getEntityInDatabase(CallContext.current().getCallingAccount(), "AutoScale Vm Group", id, _autoScaleVmGroupDao);
boolean success = false;
if (!vmGroup.getState().equals(AutoScaleVmGroup.State_Enabled)) {
throw new InvalidParameterValueException("Only a AutoScale Vm Group which is in Enabled state can be disabled.");
@@ -1016,7 +1018,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
s_logger.debug("Adding Counter " + name);
counter = _counterDao.persist(new CounterVO(src, name, cmd.getValue()));
- UserContext.current().setEventDetails(" Id: " + counter.getId() + " Name: " + name);
+ CallContext.current().setEventDetails(" Id: " + counter.getId() + " Name: " + name);
return counter;
}
@@ -1046,7 +1048,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
condition = _conditionDao.persist(new ConditionVO(cid, threshold, cmd.getEntityOwnerId(), cmd.getDomainId(), op));
s_logger.info("Successfully created condition with Id: " + condition.getId());
- UserContext.current().setEventDetails(" Id: " + condition.getId());
+ CallContext.current().setEventDetails(" Id: " + condition.getId());
return condition;
}
@@ -1128,7 +1130,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
@ActionEvent(eventType = EventTypes.EVENT_CONDITION_DELETE, eventDescription = "condition")
public boolean deleteCondition(long conditionId) throws ResourceInUseException {
/* Check if entity is in database */
- ConditionVO condition = getEntityInDatabase(UserContext.current().getCaller(), "Condition", conditionId, _conditionDao);
+ ConditionVO condition = getEntityInDatabase(CallContext.current().getCallingAccount(), "Condition", conditionId, _conditionDao);
if (condition == null) {
throw new InvalidParameterValueException("Unable to find Condition");
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
index d250a08..6fb9bb6 100644
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -28,8 +28,12 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
+
import com.cloud.network.dao.*;
+
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -73,7 +77,6 @@ import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.ManagerBase;
@@ -147,7 +150,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
@Override
public FirewallRule createEgressFirewallRule(FirewallRule rule) throws NetworkRuleConflictException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Network network = _networkDao.findById(rule.getNetworkId());
if (network.getGuestType() == Network.GuestType.Shared) {
@@ -161,7 +164,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
@Override
public FirewallRule createIngressFirewallRule(FirewallRule rule) throws NetworkRuleConflictException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long sourceIpAddressId = rule.getSourceIpAddressId();
return createFirewallRule(sourceIpAddressId, caller, rule.getXid(), rule.getSourcePortStart(),
@@ -227,7 +230,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
if (!_firewallDao.setStateToAdd(newRule)) {
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
}
- UserContext.current().setEventDetails("Rule Id: " + newRule.getId());
+ CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
txn.commit();
@@ -242,7 +245,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
Map<String, String> tags = cmd.getTags();
FirewallRule.TrafficType trafficType = cmd.getTrafficType();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
if (ipId != null) {
@@ -719,8 +722,8 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
@Override
public boolean revokeFirewallRule(long ruleId, boolean apply) {
- Account caller = UserContext.current().getCaller();
- long userId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ long userId = CallContext.current().getCallingUserId();
return revokeFirewallRule(ruleId, apply, caller, userId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
index 87098f5..36ea6a5 100644
--- a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
@@ -22,8 +22,11 @@ import javax.ejb.Local;
import javax.inject.Inject;
import com.cloud.event.ActionEventUtils;
+
import org.apache.log4j.Logger;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.configuration.Config;
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
@@ -47,7 +50,6 @@ import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
import com.cloud.offering.NetworkOffering;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.db.DB;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Ip;
@@ -140,7 +142,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
}
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanTag));
- ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), config.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), 0);
+ ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), config.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), 0);
} else {
vlanTag = Integer.parseInt(config.getBroadcastUri().getHost());
implemented.setBroadcastUri(config.getBroadcastUri());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/guru/GuestNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/GuestNetworkGuru.java b/server/src/com/cloud/network/guru/GuestNetworkGuru.java
index 89b0694..9adffa2 100755
--- a/server/src/com/cloud/network/guru/GuestNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/GuestNetworkGuru.java
@@ -28,8 +28,11 @@ import javax.inject.Inject;
import com.cloud.event.ActionEventUtils;
import com.cloud.server.ConfigurationServer;
import com.cloud.utils.Pair;
+
import org.apache.log4j.Logger;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.configuration.Config;
import com.cloud.configuration.dao.ConfigurationDao;
import com.cloud.dc.DataCenter;
@@ -62,7 +65,6 @@ import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.offering.NetworkOffering;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
@@ -275,7 +277,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
"part of network " + network + " implement ", DataCenter.class, dcId);
}
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vnet));
- ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(),
+ 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());
@@ -415,7 +417,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
s_logger.debug("Releasing vnet for the network id=" + profile.getId());
_dcDao.releaseVnet(profile.getBroadcastUri().getHost(), profile.getDataCenterId(),
profile.getPhysicalNetworkId(), profile.getAccountId(), profile.getReservationId());
- ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), profile.getAccountId(),
+ ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), profile.getAccountId(),
EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_RELEASE, "Released Zone Vlan: "
+ profile.getBroadcastUri().getHost() + " for Network: " + profile.getId(), 0);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java
index a23d96f..2218f7d 100644
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java
@@ -18,6 +18,8 @@ package com.cloud.network.lb;
import java.util.List;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
@@ -27,12 +29,11 @@ import com.cloud.network.rules.LbStickinessMethod;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
public interface LoadBalancingRulesManager extends LoadBalancingRulesService {
LoadBalancer createPublicLoadBalancer(String xId, String name, String description,
- int srcPort, int destPort, long sourceIpId, String protocol, String algorithm, boolean openFirewall, UserContext caller)
+ int srcPort, int destPort, long sourceIpId, String protocol, String algorithm, boolean openFirewall, CallContext caller)
throws NetworkRuleConflictException;
boolean removeAllLoadBalanacersForIp(long ipId, Account caller, long callerUserId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index 6e0d0d7..92f9417 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -36,6 +36,7 @@ import com.cloud.network.LBHealthCheckPolicyVO;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
+
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd;
@@ -45,8 +46,10 @@ import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleI
import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRulesCmd;
import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd;
import org.apache.cloudstack.api.response.ServiceResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -134,7 +137,6 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
import com.cloud.uservm.UserVm;
@@ -155,6 +157,7 @@ import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao;
+
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -516,7 +519,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@ActionEvent(eventType = EventTypes.EVENT_LB_STICKINESSPOLICY_CREATE, eventDescription = "create lb stickinesspolicy to load balancer", create = true)
public StickinessPolicy createLBStickinessPolicy(CreateLBStickinessPolicyCmd cmd)
throws NetworkRuleConflictException {
- UserContext caller = UserContext.current();
+ CallContext caller = CallContext.current();
/* Validation : check corresponding load balancer rule exist */
LoadBalancerVO loadBalancer = _lbDao.findById(cmd.getLbRuleId());
@@ -524,7 +527,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
throw new InvalidParameterValueException("Failed: LB rule id: " + cmd.getLbRuleId() + " not present ");
}
- _accountMgr.checkAccess(caller.getCaller(), null, true, loadBalancer);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, loadBalancer);
if (loadBalancer.getState() == FirewallRule.State.Revoke) {
throw new InvalidParameterValueException("Failed: LB rule id: " + cmd.getLbRuleId()
+ " is in deleting state: ");
@@ -564,7 +567,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@DB
@ActionEvent(eventType = EventTypes.EVENT_LB_HEALTHCHECKPOLICY_CREATE, eventDescription = "create load balancer health check to load balancer", create = true)
public HealthCheckPolicy createLBHealthCheckPolicy(CreateLBHealthCheckPolicyCmd cmd) {
- UserContext caller = UserContext.current();
+ CallContext caller = CallContext.current();
/*
* Validation of cmd Monitor interval must be greater than response
@@ -584,7 +587,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
throw new InvalidParameterValueException("Failed: LB rule id: " + cmd.getLbRuleId() + " not present ");
}
- _accountMgr.checkAccess(caller.getCaller(), null, true, loadBalancer);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, loadBalancer);
if (loadBalancer.getState() == FirewallRule.State.Revoke) {
throw new InvalidParameterValueException("Failed: LB rule id: " + cmd.getLbRuleId()
@@ -738,7 +741,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
public boolean deleteLBStickinessPolicy(long stickinessPolicyId, boolean apply) {
boolean success = true;
- UserContext caller = UserContext.current();
+ CallContext caller = CallContext.current();
LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(stickinessPolicyId);
if (stickinessPolicy == null) {
@@ -751,7 +754,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
}
long loadBalancerId = loadBalancer.getId();
FirewallRule.State backupState = loadBalancer.getState();
- _accountMgr.checkAccess(caller.getCaller(), null, true, loadBalancer);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, loadBalancer);
if (apply) {
if (loadBalancer.getState() == FirewallRule.State.Active) {
@@ -796,7 +799,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
public boolean deleteLBHealthCheckPolicy(long healthCheckPolicyId, boolean apply) {
boolean success = true;
- UserContext caller = UserContext.current();
+ CallContext caller = CallContext.current();
LBHealthCheckPolicyVO healthCheckPolicy = _lb2healthcheckDao.findById(healthCheckPolicyId);
if (healthCheckPolicy == null) {
@@ -809,7 +812,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
}
long loadBalancerId = loadBalancer.getId();
FirewallRule.State backupState = loadBalancer.getState();
- _accountMgr.checkAccess(caller.getCaller(), null, true, loadBalancer);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, loadBalancer);
if (apply) {
if (loadBalancer.getState() == FirewallRule.State.Active) {
@@ -948,8 +951,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@DB
@ActionEvent(eventType = EventTypes.EVENT_ASSIGN_TO_LOAD_BALANCER_RULE, eventDescription = "assigning to load balancer", async = true)
public boolean assignToLoadBalancer(long loadBalancerId, List<Long> instanceIds) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId);
if (loadBalancer == null) {
@@ -1070,14 +1073,14 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
}
private boolean removeFromLoadBalancerInternal(long loadBalancerId, List<Long> instanceIds, boolean rollBack) {
- UserContext caller = UserContext.current();
+ CallContext caller = CallContext.current();
LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(loadBalancerId));
if (loadBalancer == null) {
throw new InvalidParameterException("Invalid load balancer value: " + loadBalancerId);
}
- _accountMgr.checkAccess(caller.getCaller(), null, true, loadBalancer);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, loadBalancer);
boolean success = false;
FirewallRule.State backupState = loadBalancer.getState();
@@ -1174,8 +1177,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Override
@ActionEvent(eventType = EventTypes.EVENT_LOAD_BALANCER_DELETE, eventDescription = "deleting load balancer", async = true)
public boolean deleteLoadBalancerRule(long loadBalancerId, boolean apply) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
LoadBalancerVO rule = _lbDao.findById(loadBalancerId);
@@ -1184,7 +1187,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
}
_accountMgr.checkAccess(caller, null, true, rule);
- boolean result = deleteLoadBalancerRule(loadBalancerId, apply, caller, ctx.getCallerUserId(), true);
+ boolean result = deleteLoadBalancerRule(loadBalancerId, apply, caller, ctx.getCallingUserId(), true);
if (!result) {
throw new CloudRuntimeException("Unable to remove load balancer rule " + loadBalancerId);
}
@@ -1352,7 +1355,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
+ network);
}
- result = createPublicLoadBalancer(xId, name, description, srcPortStart, defPortStart, ipVO.getId(), protocol, algorithm, openFirewall, UserContext.current());
+ result = createPublicLoadBalancer(xId, name, description, srcPortStart, defPortStart, ipVO.getId(), protocol, algorithm, openFirewall, CallContext.current());
} catch (Exception ex) {
s_logger.warn("Failed to create load balancer due to ", ex);
if (ex instanceof NetworkRuleConflictException) {
@@ -1382,7 +1385,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@DB
@Override
public LoadBalancer createPublicLoadBalancer(String xId, String name, String description,
- int srcPort, int destPort, long sourceIpId, String protocol, String algorithm, boolean openFirewall, UserContext caller)
+ int srcPort, int destPort, long sourceIpId, String protocol, String algorithm, boolean openFirewall, CallContext caller)
throws NetworkRuleConflictException {
if (!NetUtils.isValidPort(destPort)) {
@@ -1412,7 +1415,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
throw ex;
}
- _accountMgr.checkAccess(caller.getCaller(), null, true, ipAddr);
+ _accountMgr.checkAccess(caller.getCallingAccount(), null, true, ipAddr);
Long networkId = ipAddr.getAssociatedWithNetworkId();
@@ -1426,7 +1429,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
// verify that lb service is supported by the network
isLbServiceSupportedInNetwork(networkId, Scheme.Public);
- _firewallMgr.validateFirewallRule(caller.getCaller(), ipAddr, srcPort, srcPort, protocol,
+ _firewallMgr.validateFirewallRule(caller.getCallingAccount(), ipAddr, srcPort, srcPort, protocol,
Purpose.LoadBalancing, FirewallRuleType.User, networkId, null);
LoadBalancerVO newRule = new LoadBalancerVO(xId, name, description,
@@ -1448,7 +1451,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
//create rule for all CIDRs
if (openFirewall) {
- _firewallMgr.createRuleForAllCidrs(sourceIpId, caller.getCaller(), srcPort,
+ _firewallMgr.createRuleForAllCidrs(sourceIpId, caller.getCallingAccount(), srcPort,
srcPort, protocol, null, null, newRule.getId(), networkId);
}
@@ -1461,7 +1464,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
}
s_logger.debug("Load balancer " + newRule.getId() + " for Ip address id=" + sourceIpId + ", public port "
+ srcPort + ", private port " + destPort + " is added successfully.");
- UserContext.current().setEventDetails("Load balancer Id: " + newRule.getId());
+ CallContext.current().setEventDetails("Load balancer Id: " + newRule.getId());
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_CREATE, ipAddr.getAllocatedToAccountId(),
ipAddr.getDataCenterId(), newRule.getId(), null, LoadBalancingRule.class.getName(),
newRule.getUuid());
@@ -1669,8 +1672,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
boolean success = true;
if (ip.getSystem()) {
s_logger.debug("Releasing system ip address " + lb.getSourceIpAddressId() + " as a part of delete lb rule");
- if (!_networkMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), UserContext.current()
- .getCallerUserId(), UserContext.current().getCaller())) {
+ if (!_networkMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), CallContext.current()
+ .getCallingUserId(), CallContext.current().getCallingAccount())) {
s_logger.warn("Unable to release system ip address id=" + lb.getSourceIpAddressId()
+ " as a part of delete lb rule");
success = false;
@@ -1762,7 +1765,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Override
@ActionEvent(eventType = EventTypes.EVENT_LOAD_BALANCER_UPDATE, eventDescription = "updating load balancer", async = true)
public LoadBalancer updateLoadBalancerRule(UpdateLoadBalancerRuleCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long lbRuleId = cmd.getId();
String name = cmd.getLoadBalancerName();
String description = cmd.getDescription();
@@ -1834,7 +1837,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Override
public List<UserVmVO> listLoadBalancerInstances(ListLoadBalancerRuleInstancesCmd cmd)
throws PermissionDeniedException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long loadBalancerId = cmd.getId();
Boolean applied = cmd.isApplied();
@@ -1900,7 +1903,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Override
public List<LBStickinessPolicyVO> searchForLBStickinessPolicies(ListLBStickinessPoliciesCmd cmd)
throws PermissionDeniedException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long loadBalancerId = cmd.getLbRuleId();
LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId);
if (loadBalancer == null) {
@@ -1917,7 +1920,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Override
public List<LBHealthCheckPolicyVO> searchForLBHealthCheckPolicies(ListLBHealthCheckPoliciesCmd cmd)
throws PermissionDeniedException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long loadBalancerId = cmd.getLbRuleId();
LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId);
if (loadBalancer == null) {
@@ -1939,7 +1942,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
Long networkId = cmd.getNetworkId();
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
[04/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index a24300e..292b73e 100644
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -35,6 +35,8 @@ import org.apache.cloudstack.api.command.user.vpn.ListVpnCustomerGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -64,7 +66,6 @@ import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.projects.Project.ListProjectResourcesCriteria;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -112,7 +113,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_GATEWAY_CREATE, eventDescription = "creating s2s vpn gateway", create=true)
public Site2SiteVpnGateway createVpnGateway(CreateVpnGatewayCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
//Verify that caller can perform actions in behalf of vpc owner
@@ -157,7 +158,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE, eventDescription = "creating s2s customer gateway", create=true)
public Site2SiteCustomerGateway createCustomerGateway(CreateVpnCustomerGatewayCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
//Verify that caller can perform actions in behalf of vpc owner
@@ -225,7 +226,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CONNECTION_CREATE, eventDescription = "creating s2s vpn connection", create=true)
public Site2SiteVpnConnection createVpnConnection(CreateVpnConnectionCmd cmd) throws NetworkRuleConflictException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
//Verify that caller can perform actions in behalf of vpc owner
@@ -337,8 +338,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE, eventDescription = "deleting s2s vpn customer gateway", create=true)
public boolean deleteCustomerGateway(DeleteVpnCustomerGatewayCmd cmd) {
- UserContext.current().setEventDetails(" Id: " + cmd.getId());
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + cmd.getId());
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
Site2SiteCustomerGateway customerGateway = _customerGatewayDao.findById(id);
@@ -371,8 +372,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_GATEWAY_DELETE, eventDescription = "deleting s2s vpn gateway", create=true)
public boolean deleteVpnGateway(DeleteVpnGatewayCmd cmd) {
- UserContext.current().setEventDetails(" Id: " + cmd.getId());
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + cmd.getId());
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
Site2SiteVpnGateway vpnGateway = _vpnGatewayDao.findById(id);
@@ -389,8 +390,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CUSTOMER_GATEWAY_UPDATE, eventDescription = "update s2s vpn customer gateway", create=true)
public Site2SiteCustomerGateway updateCustomerGateway(UpdateVpnCustomerGatewayCmd cmd) {
- UserContext.current().setEventDetails(" Id: " + cmd.getId());
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + cmd.getId());
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
Site2SiteCustomerGatewayVO gw = _customerGatewayDao.findById(id);
@@ -478,8 +479,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CONNECTION_DELETE, eventDescription = "deleting s2s vpn connection", create=true)
public boolean deleteVpnConnection(DeleteVpnConnectionCmd cmd) throws ResourceUnavailableException {
- UserContext.current().setEventDetails(" Id: " + cmd.getId());
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + cmd.getId());
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
Site2SiteVpnConnectionVO conn = _vpnConnectionDao.findById(id);
@@ -528,8 +529,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CONNECTION_RESET, eventDescription = "reseting s2s vpn connection", create=true)
public Site2SiteVpnConnection resetVpnConnection(ResetVpnConnectionCmd cmd) throws ResourceUnavailableException {
- UserContext.current().setEventDetails(" Id: " + cmd.getId());
- Account caller = UserContext.current().getCaller();
+ CallContext.current().setEventDetails(" Id: " + cmd.getId());
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
Site2SiteVpnConnectionVO conn = _vpnConnectionDao.findById(id);
@@ -559,7 +560,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
long startIndex = cmd.getStartIndex();
long pageSizeVal = cmd.getPageSizeVal();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean,
@@ -598,7 +599,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
long startIndex = cmd.getStartIndex();
long pageSizeVal = cmd.getPageSizeVal();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean,
@@ -642,7 +643,7 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
long startIndex = cmd.getStartIndex();
long pageSizeVal = cmd.getPageSizeVal();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/projects/ProjectManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/projects/ProjectManagerImpl.java b/server/src/com/cloud/projects/ProjectManagerImpl.java
index 7ab385f..97fa413 100755
--- a/server/src/com/cloud/projects/ProjectManagerImpl.java
+++ b/server/src/com/cloud/projects/ProjectManagerImpl.java
@@ -40,6 +40,8 @@ import javax.mail.internet.InternetAddress;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -72,7 +74,6 @@ import com.cloud.user.AccountVO;
import com.cloud.user.DomainManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
@@ -82,6 +83,7 @@ import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
+
import com.sun.mail.smtp.SMTPMessage;
import com.sun.mail.smtp.SMTPSSLTransport;
import com.sun.mail.smtp.SMTPTransport;
@@ -175,7 +177,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_CREATE, eventDescription = "creating project", create=true)
@DB
public Project createProject(String name, String displayText, String accountName, Long domainId) throws ResourceAllocationException{
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = caller;
//check if the user authorized to create the project
@@ -215,7 +217,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
assignAccountToProject(project, owner.getId(), ProjectAccount.Role.Admin);
if (project != null) {
- UserContext.current().setEventDetails("Project id=" + project.getId());
+ CallContext.current().setEventDetails("Project id=" + project.getId());
}
//Increment resource count
@@ -231,7 +233,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_CREATE, eventDescription = "creating project", async=true)
@DB
public Project enableProject(long projectId){
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
ProjectVO project= getProject(projectId);
//verify input parameters
@@ -252,7 +254,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_DELETE, eventDescription = "deleting project", async = true)
public boolean deleteProject(long projectId) {
- UserContext ctx = UserContext.current();
+ CallContext ctx = CallContext.current();
ProjectVO project= getProject(projectId);
//verify input parameters
@@ -260,9 +262,9 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
throw new InvalidParameterValueException("Unable to find project by id " + projectId);
}
- _accountMgr.checkAccess(ctx.getCaller(),AccessType.ModifyProject, true, _accountMgr.getAccount(project.getProjectAccountId()));
+ _accountMgr.checkAccess(ctx.getCallingAccount(),AccessType.ModifyProject, true, _accountMgr.getAccount(project.getProjectAccountId()));
- return deleteProject(ctx.getCaller(), ctx.getCallerUserId(), project);
+ return deleteProject(ctx.getCallingAccount(), ctx.getCallingUserId(), project);
}
@DB
@@ -442,7 +444,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override @DB
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_UPDATE, eventDescription = "updating project", async=true)
public Project updateProject(long projectId, String displayText, String newOwnerName) throws ResourceAllocationException{
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//check that the project exists
ProjectVO project = getProject(projectId);
@@ -503,7 +505,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_ACCOUNT_ADD, eventDescription = "adding account to project", async=true)
public boolean addAccountToProject(long projectId, String accountName, String email) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//check that the project exists
Project project = getProject(projectId);
@@ -589,7 +591,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_ACCOUNT_REMOVE, eventDescription = "removing account from project", async=true)
public boolean deleteAccountFromProject(long projectId, String accountName) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//check that the project exists
Project project = getProject(projectId);
@@ -710,7 +712,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override @DB
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_INVITATION_UPDATE, eventDescription = "updating project invitation", async=true)
public boolean updateInvitation(long projectId, String accountName, String token, boolean accept) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long accountId = null;
boolean result = true;
@@ -794,7 +796,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_ACTIVATE, eventDescription = "activating project")
@DB
public Project activateProject(long projectId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
//check that the project exists
ProjectVO project = getProject(projectId);
@@ -837,7 +839,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_SUSPEND, eventDescription = "suspending project", async = true)
public Project suspendProject (long projectId) throws ConcurrentOperationException, ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
ProjectVO project= getProject(projectId);
//verify input parameters
@@ -979,7 +981,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
@Override @DB
@ActionEvent(eventType = EventTypes.EVENT_PROJECT_INVITATION_REMOVE, eventDescription = "removing project invitation", async=true)
public boolean deleteProjectInvitation(long id) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
ProjectInvitation invitation = _projectInvitationDao.findById(id);
if (invitation == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index df40066..d7652f4 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -43,6 +43,7 @@ import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
import org.apache.cloudstack.api.command.admin.host.UpdateHostCmd;
import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.dao.RegionDao;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
@@ -134,7 +135,6 @@ import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.StringUtils;
import com.cloud.utils.UriUtils;
@@ -378,7 +378,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
throw ex;
}
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(account.getType())) {
PermissionDeniedException ex = new PermissionDeniedException(
"Cannot perform this operation, Zone with specified id is currently disabled");
@@ -573,7 +573,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
String password = cmd.getPassword();
List<String> hostTags = cmd.getHostTags();
- dcId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), dcId);
+ dcId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), dcId);
// this is for standalone option
if (clusterName == null && clusterId == null) {
@@ -623,7 +623,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
throw new InvalidParameterValueException("Can't find zone by id " + dcId);
}
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(account.getType())) {
PermissionDeniedException ex = new PermissionDeniedException(
"Cannot perform this operation, Zone with specified id is currently disabled");
@@ -818,13 +818,13 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@DB
protected boolean doDeleteHost(long hostId, boolean isForced, boolean isForceDeleteStorage) {
- User caller = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User caller = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
// Verify that host exists
HostVO host = _hostDao.findById(hostId);
if (host == null) {
throw new InvalidParameterValueException("Host with id " + hostId + " doesn't exist");
}
- _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), host.getDataCenterId());
+ _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), host.getDataCenterId());
if (!isForced && host.getResourceState() != ResourceState.Maintenance) {
throw new CloudRuntimeException("Host " + host.getUuid() + " cannot be deleted as it is not in maintenance mode. Either put the host into maintenance or perform a forced deletion.");
@@ -2043,7 +2043,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
s_logger.debug("Deleting Host: " + host.getId() + " Guid:" + host.getGuid());
}
- User caller = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User caller = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
if (forceDestroyStorage) {
// put local storage into mainenance mode, will set all the VMs on
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
index b5c060d..9ec27bd 100755
--- a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
+++ b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
@@ -30,8 +30,10 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -78,7 +80,6 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.component.ManagerBase;
@@ -424,7 +425,7 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim
@Override
public List<ResourceLimitVO> searchForLimits(Long id, Long accountId, Long domainId, Integer type, Long startIndex, Long pageSizeVal) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<ResourceLimitVO> limits = new ArrayList<ResourceLimitVO>();
boolean isAccount = true;
@@ -568,7 +569,7 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim
@Override
public ResourceLimitVO updateResourceLimit(Long accountId, Long domainId, Integer typeId, Long max) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (max == null) {
max = new Long(Resource.RESOURCE_UNLIMITED);
@@ -666,7 +667,7 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim
@Override
public List<ResourceCountVO> recalculateResourceCount(Long accountId, Long domainId, Integer typeId) throws InvalidParameterValueException, CloudRuntimeException, PermissionDeniedException {
- Account callerAccount = UserContext.current().getCaller();
+ Account callerAccount = CallContext.current().getCallingAccount();
long count = 0;
List<ResourceCountVO> counts = new ArrayList<ResourceCountVO>();
List<ResourceType> resourceTypes = new ArrayList<ResourceType>();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index f7fc834..8d979c7 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -41,15 +41,19 @@ import javax.naming.ConfigurationException;
import com.cloud.exception.*;
import com.cloud.vm.*;
+
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ApiConstants;
import com.cloud.event.ActionEventUtils;
+
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
import org.apache.cloudstack.api.command.admin.region.*;
+
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
+
import org.apache.cloudstack.affinity.AffinityGroupProcessor;
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
import org.apache.cloudstack.api.command.admin.account.CreateAccountCmd;
@@ -513,7 +517,6 @@ import com.cloud.user.AccountService;
import com.cloud.user.SSHKeyPair;
import com.cloud.user.SSHKeyPairVO;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.SSHKeyPairDao;
@@ -554,6 +557,7 @@ import org.apache.cloudstack.api.command.admin.region.AddRegionCmd;
import org.apache.cloudstack.api.command.admin.region.RemoveRegionCmd;
import org.apache.cloudstack.api.command.admin.region.UpdateRegionCmd;
import org.apache.cloudstack.api.command.admin.config.ListDeploymentPlannersCmd;
+import org.apache.cloudstack.context.CallContext;
public class ManagementServerImpl extends ManagerBase implements ManagementServer {
@@ -837,7 +841,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public boolean archiveEvents(ArchiveEventsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> ids = cmd.getIds();
boolean result =true;
List<Long> permittedAccountIds = new ArrayList<Long>();
@@ -852,7 +856,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
List<EventVO> events = _eventDao.listToArchiveOrDeleteEvents(ids, cmd.getType(), cmd.getStartDate(), cmd.getEndDate(), permittedAccountIds);
ControlledEntity[] sameOwnerEvents = events.toArray(new ControlledEntity[events.size()]);
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, sameOwnerEvents);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, sameOwnerEvents);
if (ids != null && events.size() < ids.size()) {
result = false;
@@ -864,7 +868,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public boolean deleteEvents(DeleteEventsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> ids = cmd.getIds();
boolean result =true;
List<Long> permittedAccountIds = new ArrayList<Long>();
@@ -879,7 +883,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
List<EventVO> events = _eventDao.listToArchiveOrDeleteEvents(ids, cmd.getType(), cmd.getStartDate(), cmd.getEndDate(), permittedAccountIds);
ControlledEntity[] sameOwnerEvents = events.toArray(new ControlledEntity[events.size()]);
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, sameOwnerEvents);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, sameOwnerEvents);
if (ids != null && events.size() < ids.size()) {
result = false;
@@ -906,7 +910,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Filter searchFilter = new Filter(ClusterVO.class, "id", true, startIndex, pageSizeVal);
SearchCriteria<ClusterVO> sc = _clusterDao.createSearchCriteria();
- zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), zoneId);
+ zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), zoneId);
sc.addAnd("dataCenterId", SearchCriteria.Op.EQ, zoneId);
sc.addAnd("hypervisorType", SearchCriteria.Op.EQ, hypervisorType);
@@ -924,7 +928,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Object clusterType = cmd.getClusterType();
Object allocationState = cmd.getAllocationState();
String keyword = cmd.getKeyword();
- zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), zoneId);
+ zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), zoneId);
Filter searchFilter = new Filter(ClusterVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal());
@@ -981,7 +985,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public Pair<List<? extends Host>, Integer> searchForServers(ListHostsCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Object name = cmd.getHostName();
Object type = cmd.getType();
Object state = cmd.getState();
@@ -1001,7 +1005,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
public Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>>
listHostsForMigrationOfVM(Long vmId, Long startIndex, Long pageSize) {
// access check - only root admin can migrate VM
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
@@ -1188,7 +1192,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public Pair<List<? extends StoragePool>, List<? extends StoragePool>> listStoragePoolsForMigrationOfVolume(Long volumeId) {
// Access check - only root administrator can migrate volumes.
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Caller is not a root admin, permission denied to migrate the volume");
@@ -1387,7 +1391,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Long zoneId = cmd.getZoneId();
Object keyword = cmd.getKeyword();
Object allocationState = cmd.getAllocationState();
- zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), zoneId);
+ zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), zoneId);
Filter searchFilter = new Filter(HostPodVO.class, "dataCenterId", true, cmd.getStartIndex(), cmd.getPageSizeVal());
@@ -1745,7 +1749,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Integer sortKey = cmd.getSortKey();
Boolean isDynamicallyScalable = cmd.isDynamicallyScalable();
Boolean isRoutingTemplate = cmd.isRoutingType();
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
// verify that template exists
VMTemplateVO template = _templateDao.findById(id);
@@ -1865,7 +1869,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
List<Long> permittedAccounts = new ArrayList<Long>();
ListProjectResourcesCriteria listProjectResourcesCriteria = null;
if (isAllocated) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
cmd.getDomainId(), cmd.isRecursive(), null);
@@ -2056,9 +2060,9 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
private ConsoleProxyVO stopConsoleProxy(VMInstanceVO systemVm, boolean isForced) throws ResourceUnavailableException, OperationTimedoutException,
ConcurrentOperationException {
- User caller = _userDao.findById(UserContext.current().getCallerUserId());
+ User caller = _userDao.findById(CallContext.current().getCallingUserId());
- if (_itMgr.advanceStop(systemVm, isForced, caller, UserContext.current().getCaller())) {
+ if (_itMgr.advanceStop(systemVm, isForced, caller, CallContext.current().getCallingAccount())) {
return _consoleProxyDao.findById(systemVm.getId());
}
return null;
@@ -2132,7 +2136,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
// check permissions
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountMgr.checkAccess(caller, domain);
// domain name is unique under the parent domain
@@ -2216,7 +2220,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Object type = cmd.getType();
Object keyword = cmd.getKeyword();
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), null);
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), null);
if (id != null) {
sc.addAnd("id", SearchCriteria.Op.EQ, id);
}
@@ -2242,14 +2246,14 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public boolean archiveAlerts(ArchiveAlertsCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), null);
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), null);
boolean result = _alertDao.archiveAlert(cmd.getIds(), cmd.getType(), cmd.getStartDate(), cmd.getEndDate(), zoneId);
return result;
}
@Override
public boolean deleteAlerts(DeleteAlertsCmd cmd) {
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), null);
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), null);
boolean result = _alertDao.deleteAlert(cmd.getIds(), cmd.getType(), cmd.getStartDate(), cmd.getEndDate(), zoneId);
return result;
}
@@ -2265,7 +2269,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
if (clusterId != null) {
throw new InvalidParameterValueException("Currently clusterId param is not suppoerted");
}
- zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), zoneId);
+ zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), zoneId);
List<SummedCapacity> summedCapacities = new ArrayList<SummedCapacity>();
if (zoneId == null && podId == null) {// Group by Zone, capacity type
@@ -2374,7 +2378,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
Long clusterId = cmd.getClusterId();
Boolean fetchLatest = cmd.getFetchLatest();
- zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), zoneId);
+ zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), zoneId);
if (fetchLatest != null && fetchLatest) {
_alertMgr.recalculateCapacity();
}
@@ -2945,9 +2949,9 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
private SecondaryStorageVmVO stopSecondaryStorageVm(VMInstanceVO systemVm, boolean isForced) throws ResourceUnavailableException,
OperationTimedoutException, ConcurrentOperationException {
- User caller = _userDao.findById(UserContext.current().getCallerUserId());
+ User caller = _userDao.findById(CallContext.current().getCallingUserId());
- if (_itMgr.advanceStop(systemVm, isForced, caller, UserContext.current().getCaller())) {
+ if (_itMgr.advanceStop(systemVm, isForced, caller, CallContext.current().getCallingAccount())) {
return _secStorageVmDao.findById(systemVm.getId());
}
return null;
@@ -2971,7 +2975,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public Pair<List<? extends VirtualMachine>, Integer> searchForSystemVm(ListSystemVMsCmd cmd) {
String type = cmd.getSystemVmType();
- Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), cmd.getZoneId());
+ Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
Long id = cmd.getId();
String name = cmd.getSystemVmName();
String state = cmd.getState();
@@ -3153,7 +3157,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public ArrayList<String> getCloudIdentifierResponse(long userId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// verify that user exists
User user = _accountMgr.getUserIncludingRemoved(userId);
@@ -3241,7 +3245,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public InstanceGroupVO updateVmGroup(UpdateVMGroupCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long groupId = cmd.getId();
String groupName = cmd.getGroupName();
@@ -3439,7 +3443,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public SSHKeyPair createSSHKeyPair(CreateSSHKeyPairCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
String accountName = cmd.getAccountName();
Long domainId = cmd.getDomainId();
Long projectId = cmd.getProjectId();
@@ -3463,7 +3467,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public boolean deleteSSHKeyPair(DeleteSSHKeyPairCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
String accountName = cmd.getAccountName();
Long domainId = cmd.getDomainId();
Long projectId = cmd.getProjectId();
@@ -3491,7 +3495,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
String name = cmd.getName();
String fingerPrint = cmd.getFingerprint();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
@@ -3523,7 +3527,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
@ActionEvent(eventType = EventTypes.EVENT_REGISTER_SSH_KEYPAIR, eventDescription = "registering ssh keypair", async = true)
public SSHKeyPair registerSSHKeyPair(RegisterSSHKeyPairCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.finalizeOwner(caller, cmd.getAccountName(), cmd.getDomainId(), cmd.getProjectId());
@@ -3561,7 +3565,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Override
public String getVMPassword(GetVMPasswordCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
UserVmVO vm = _userVmDao.findById(cmd.getId());
if (vm == null) {
@@ -3708,7 +3712,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
if (_hypervisorCapabilitiesDao.update(id, hpvCapabilities)) {
hpvCapabilities = _hypervisorCapabilitiesDao.findById(id);
- UserContext.current().setEventDetails("Hypervisor Capabilities id=" + hpvCapabilities.getId());
+ CallContext.current().setEventDetails("Hypervisor Capabilities id=" + hpvCapabilities.getId());
return hpvCapabilities;
} else {
return null;
@@ -3737,7 +3741,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
private VirtualMachine upgradeStoppedSystemVm(Long systemVmId, Long serviceOfferingId){
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VMInstanceVO systemVm = _vmInstanceDao.findByIdTypes(systemVmId, VirtualMachine.Type.ConsoleProxy, VirtualMachine.Type.SecondaryStorageVm);
if (systemVm == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index 830fd36..2b57bae 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -51,6 +51,7 @@ import org.apache.cloudstack.api.command.admin.storage.CreateStoragePoolCmd;
import org.apache.cloudstack.api.command.admin.storage.DeleteImageStoreCmd;
import org.apache.cloudstack.api.command.admin.storage.DeletePoolCmd;
import org.apache.cloudstack.api.command.admin.storage.UpdateStoragePoolCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
@@ -148,7 +149,6 @@ import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.UserDao;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -698,7 +698,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
throw new InvalidParameterValueException("unable to find zone by id " + zoneId);
}
// Check if zone is disabled
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(account.getType())) {
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zoneId);
}
@@ -1195,9 +1195,9 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
@DB
public PrimaryDataStoreInfo preparePrimaryStorageForMaintenance(Long primaryStorageId) throws ResourceUnavailableException,
InsufficientCapacityException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
User user = _userDao.findById(userId);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
boolean restart = true;
StoragePoolVO primaryStorage = null;
@@ -1226,9 +1226,9 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
@DB
public PrimaryDataStoreInfo cancelPrimaryStorageForMaintenance(CancelPrimaryStorageMaintenanceCmd cmd) throws ResourceUnavailableException {
Long primaryStorageId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
User user = _userDao.findById(userId);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
StoragePoolVO primaryStorage = null;
primaryStorage = _storagePoolDao.findById(primaryStorageId);
@@ -1679,7 +1679,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
throw new InvalidParameterValueException("Can't find zone by id " + dcId);
}
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(account.getType())) {
PermissionDeniedException ex = new PermissionDeniedException(
"Cannot perform this operation, Zone with specified id is currently disabled");
@@ -1754,13 +1754,13 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
@Override
public boolean deleteImageStore(DeleteImageStoreCmd cmd) {
long storeId = cmd.getId();
- User caller = _accountMgr.getActiveUser(UserContext.current().getCallerUserId());
+ User caller = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
// Verify that image store exists
ImageStoreVO store = _imageStoreDao.findById(storeId);
if (store == null) {
throw new InvalidParameterValueException("Image store with id " + storeId + " doesn't exist");
}
- _accountMgr.checkAccessAndSpecifyAuthority(UserContext.current().getCaller(), store.getDataCenterId());
+ _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), store.getDataCenterId());
// Verify that there are no live snapshot, template, volume on the image
// store to be deleted
@@ -1833,7 +1833,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
throw new InvalidParameterValueException("Can't find zone by id " + dcId);
}
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(account.getType())) {
PermissionDeniedException ex = new PermissionDeniedException(
"Cannot perform this operation, Zone with specified id is currently disabled");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StoragePoolAutomationImpl.java b/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
index f6b39f1..5c97183 100644
--- a/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
+++ b/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
@@ -23,9 +23,11 @@ import java.util.List;
import javax.inject.Inject;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.*;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -44,7 +46,6 @@ import com.cloud.storage.dao.StoragePoolWorkDao;
import com.cloud.storage.dao.VolumeDao;
import com.cloud.user.Account;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.UserDao;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.exception.ExecutionException;
@@ -103,9 +104,9 @@ public class StoragePoolAutomationImpl implements StoragePoolAutomation {
@Override
public boolean maintain(DataStore store) {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
User user = _userDao.findById(userId);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
StoragePoolVO pool = this.primaryDataStoreDao.findById(store.getId());
try {
List<StoragePoolVO> spes = null;
@@ -355,9 +356,9 @@ public class StoragePoolAutomationImpl implements StoragePoolAutomation {
@Override
public boolean cancelMaintain(DataStore store) {
// Change the storage state back to up
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
User user = _userDao.findById(userId);
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
StoragePoolVO poolVO = this.primaryDataStoreDao
.findById(store.getId());
StoragePool pool = (StoragePool)store;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/storage/VolumeManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeManagerImpl.java b/server/src/com/cloud/storage/VolumeManagerImpl.java
index 72d27bc..a8a3e1a 100644
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@ -44,6 +44,7 @@ import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
import org.apache.cloudstack.api.command.user.volume.UpdateVolumeCmd;
import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
@@ -153,7 +154,6 @@ import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
import com.cloud.user.VmDiskStatisticsVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
@@ -386,7 +386,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_UPLOAD, eventDescription = "uploading volume", async = true)
public VolumeVO uploadVolume(UploadVolumeCmd cmd)
throws ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
long ownerId = cmd.getEntityOwnerId();
Account owner = _accountDao.findById(ownerId);
Long zoneId = cmd.getZoneId();
@@ -753,7 +753,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
.getDomainId());
volume.setFormat(ImageFormat.valueOf(format));
volume = _volsDao.persist(volume);
- UserContext.current().setEventDetails("Volume Id: " + volume.getId());
+ CallContext.current().setEventDetails("Volume Id: " + volume.getId());
// Increment resource count during allocation; if actual creation fails,
// decrement it
@@ -823,7 +823,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
public VolumeVO allocVolume(CreateVolumeCmd cmd)
throws ResourceAllocationException {
// FIXME: some of the scheduled event stuff might be missing here...
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
long ownerId = cmd.getEntityOwnerId();
Boolean displayVolumeEnabled = cmd.getDisplayVolume();
@@ -1043,7 +1043,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
_usageEventDao.persist(usageEvent);
}
- UserContext.current().setEventDetails("Volume Id: " + volume.getId());
+ CallContext.current().setEventDetails("Volume Id: " + volume.getId());
// Increment resource count during allocation; if actual creation fails,
// decrement it
@@ -1178,8 +1178,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
if (newDiskOffering.getDomainId() == null) {
// do nothing as offering is public
} else {
- _configMgr.checkDiskOfferingAccess(UserContext.current()
- .getCaller(), newDiskOffering);
+ _configMgr.checkDiskOfferingAccess(CallContext.current()
+ .getCallingAccount(), newDiskOffering);
}
if (newDiskOffering.isCustomized()) {
@@ -1207,7 +1207,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
}
/* does the caller have the authority to act on this volume? */
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true,
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true,
volume);
UserVmVO userVm = _userVmDao.findById(volume.getInstanceId());
@@ -1702,7 +1702,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
Long vmId = command.getVirtualMachineId();
Long volumeId = command.getId();
Long deviceId = command.getDeviceId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Check that the volume ID is valid
VolumeInfo volume = volFactory.getVolume(volumeId);
@@ -1901,7 +1901,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
@Override
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_DETACH, eventDescription = "detaching volume", async = true)
public Volume detachVolumeFromVM(DetachVolumeCmd cmmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if ((cmmd.getId() == null && cmmd.getDeviceId() == null && cmmd
.getVirtualMachineId() == null)
|| (cmmd.getId() != null && (cmmd.getDeviceId() != null || cmmd
@@ -2663,7 +2663,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
@Override
public Snapshot allocSnapshot(Long volumeId, Long policyId) throws ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VolumeInfo volume = volFactory.getVolume(volumeId);
if (volume == null) {
@@ -2704,7 +2704,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
Long volumeId = cmd.getId();
Long zoneId = cmd.getZoneId();
String mode = cmd.getMode();
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (!_accountMgr.isRootAdmin(account.getType()) && ApiDBUtils.isExtractionDisabled()) {
throw new PermissionDeniedException("Extraction has been disabled by admin");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
index ec663da..9408d48 100755
--- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
@@ -31,6 +31,7 @@ import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
@@ -107,7 +108,6 @@ import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.user.AccountService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
@@ -1208,9 +1208,9 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
//release elastic IP here
IPAddressVO ip = _ipAddressDao.findByAssociatedVmId(profile.getId());
if (ip != null && ip.getSystem()) {
- UserContext ctx = UserContext.current();
+ CallContext ctx = CallContext.current();
try {
- _rulesMgr.disableStaticNat(ip.getId(), ctx.getCaller(), ctx.getCallerUserId(), true);
+ _rulesMgr.disableStaticNat(ip.getId(), ctx.getCallingAccount(), ctx.getCallingUserId(), true);
} catch (Exception ex) {
s_logger.warn("Failed to disable static nat and release system ip " + ip + " as a part of vm " + profile.getVirtualMachine() + " stop due to exception ", ex);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index 2c9ef82..ddba735 100755
--- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -30,6 +30,7 @@ import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
@@ -44,6 +45,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -109,7 +111,6 @@ import com.cloud.user.AccountVO;
import com.cloud.user.DomainManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.DateUtil;
import com.cloud.utils.DateUtil.IntervalType;
@@ -280,7 +281,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
boolean backedUp = false;
// does the caller have the authority to act on this volume
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, volume);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, volume);
SnapshotInfo snapshot = this.snapshotFactory.getSnapshot(snapshotId, DataStoreRole.Primary);
@@ -427,7 +428,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
}
private Long getSnapshotUserId() {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
if (userId == null) {
return User.UID_SYSTEM;
}
@@ -476,7 +477,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
@DB
@ActionEvent(eventType = EventTypes.EVENT_SNAPSHOT_DELETE, eventDescription = "deleting snapshot", async = true)
public boolean deleteSnapshot(long snapshotId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify parameters
SnapshotVO snapshotCheck = this._snapshotDao.findById(snapshotId);
@@ -534,14 +535,14 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
String intervalTypeStr = cmd.getIntervalType();
Map<String, String> tags = cmd.getTags();
Long zoneId = cmd.getZoneId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
// Verify parameters
if (volumeId != null) {
VolumeVO volume = _volsDao.findById(volumeId);
if (volume != null) {
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, volume);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, volume);
}
}
@@ -712,7 +713,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
throw new InvalidParameterValueException("Failed to create snapshot policy, unable to find a volume with id " + volumeId);
}
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, volume);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, volume);
if (volume.getState() != Volume.State.Ready) {
throw new InvalidParameterValueException("VolumeId: " + volumeId + " is not in " + Volume.State.Ready + " state but " + volume.getState() + ". Cannot take snapshot.");
@@ -810,7 +811,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
if (volume == null) {
throw new InvalidParameterValueException("Unable to find a volume with id " + volumeId);
}
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, volume);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, volume);
Pair<List<SnapshotPolicyVO>, Integer> result = _snapshotPolicyDao.listAndCountByVolumeId(volumeId);
return new Pair<List<? extends SnapshotPolicy>, Integer>(result.first(), result.second());
}
@@ -847,7 +848,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
public List<SnapshotScheduleVO> findRecurringSnapshotSchedule(ListRecurringSnapshotScheduleCmd cmd) {
Long volumeId = cmd.getVolumeId();
Long policyId = cmd.getSnapshotPolicyId();
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
// Verify parameters
VolumeVO volume = _volsDao.findById(volumeId);
@@ -1070,7 +1071,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
throw new InvalidParameterValueException("Policy id given: " + policy + " does not belong to a valid volume");
}
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true, volume);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, volume);
}
boolean success = true;
@@ -1102,7 +1103,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
@Override
public Snapshot allocSnapshot(Long volumeId, Long policyId) throws ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VolumeInfo volume = this.volFactory.getVolume(volumeId);
supportedByHypervisor(volume);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
index 5f25499..e90481c 100644
--- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
+++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
@@ -27,9 +27,12 @@ import javax.naming.ConfigurationException;
import com.cloud.vm.dao.NicDao;
import com.cloud.network.vpc.NetworkACLItemDao;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.api.query.dao.ResourceTagJoinDao;
import com.cloud.domain.Domain;
import com.cloud.event.ActionEvent;
@@ -56,7 +59,6 @@ import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.DB;
@@ -248,7 +250,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso
@ActionEvent(eventType = EventTypes.EVENT_TAGS_CREATE, eventDescription = "creating resource tags")
public List<ResourceTag> createTags(List<String> resourceIds, TaggedResourceType resourceType,
Map<String, String> tags, String customer) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<ResourceTag> resourceTags = new ArrayList<ResourceTag>(tags.size());
@@ -332,7 +334,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso
@DB
@ActionEvent(eventType = EventTypes.EVENT_TAGS_DELETE, eventDescription = "deleting resource tags")
public boolean deleteTags(List<String> resourceIds, TaggedResourceType resourceType, Map<String, String> tags) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
SearchBuilder<ResourceTagVO> sb = _resourceTagDao.createSearchBuilder();
sb.and().op("resourceId", sb.entity().getResourceId(), SearchCriteria.Op.IN);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/template/TemplateAdapterBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java
index 4f29fcd..0e03cf4 100755
--- a/server/src/com/cloud/template/TemplateAdapterBase.java
+++ b/server/src/com/cloud/template/TemplateAdapterBase.java
@@ -27,9 +27,11 @@ import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
import org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd;
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
+
import org.apache.log4j.Logger;
import com.cloud.api.ApiDBUtils;
@@ -59,7 +61,6 @@ import com.cloud.storage.dao.VMTemplateZoneDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
@@ -201,7 +202,7 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
if (zone == null) {
throw new IllegalArgumentException("Please specify a valid zone.");
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if(Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(caller.getType())){
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: "+ zoneId );
}
@@ -215,7 +216,7 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
}
Long id = _tmpltDao.getNextInSequence(Long.class, "id");
- UserContext.current().setEventDetails("Id: " +id+ " name: " + name);
+ CallContext.current().setEventDetails("Id: " +id+ " name: " + name);
return new TemplateProfile(id, userId, name, displayText, bits, passwordEnabled, requiresHVM, url, isPublic,
featured, isExtractable, imgfmt, guestOSId, zoneId, hypervisorType, templateOwner.getAccountName(), templateOwner.getDomainId(),
templateOwner.getAccountId(), chksum, bootable, templateTag, details, sshkeyEnabled, null, isDynamicallyScalable, templateType);
@@ -225,13 +226,13 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
@Override
public TemplateProfile prepare(RegisterTemplateCmd cmd) throws ResourceAllocationException {
//check if the caller can operate with the template owner
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
_accountMgr.checkAccess(caller, null, true, owner);
boolean isRouting = (cmd.isRoutingType() == null) ? false : cmd.isRoutingType();
- return prepare(false, UserContext.current().getCallerUserId(), cmd.getTemplateName(), cmd.getDisplayText(),
+ return prepare(false, CallContext.current().getCallingUserId(), cmd.getTemplateName(), cmd.getDisplayText(),
cmd.getBits(), cmd.isPasswordEnabled(), cmd.getRequiresHvm(), cmd.getUrl(), cmd.isPublic(), cmd.isFeatured(),
cmd.isExtractable(), cmd.getFormat(), cmd.getOsTypeId(), cmd.getZoneId(), HypervisorType.getType(cmd.getHypervisor()),
cmd.getChecksum(), true, cmd.getTemplateTag(), owner, cmd.getDetails(), cmd.isSshKeyEnabled(), null, cmd.isDynamicallyScalable(),
@@ -242,11 +243,11 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
@Override
public TemplateProfile prepare(RegisterIsoCmd cmd) throws ResourceAllocationException {
//check if the caller can operate with the template owner
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
_accountMgr.checkAccess(caller, null, true, owner);
- return prepare(true, UserContext.current().getCallerUserId(), cmd.getIsoName(), cmd.getDisplayText(), 64, false,
+ return prepare(true, CallContext.current().getCallingUserId(), cmd.getIsoName(), cmd.getDisplayText(), 64, false,
true, cmd.getUrl(), cmd.isPublic(), cmd.isFeatured(), cmd.isExtractable(), ImageFormat.ISO.toString(), cmd.getOsTypeId(),
cmd.getZoneId(), HypervisorType.None, cmd.getChecksum(), cmd.isBootable(), null, owner, null, false, cmd.getImageStoreUuid(), cmd.isDynamicallyScalable(),
TemplateType.USER);
@@ -323,8 +324,8 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
@Override
public TemplateProfile prepareDelete(DeleteTemplateCmd cmd) {
Long templateId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
- Account account = UserContext.current().getCaller();
+ Long userId = CallContext.current().getCallingUserId();
+ Account account = CallContext.current().getCallingAccount();
Long zoneId = cmd.getZoneId();
VMTemplateVO template = _tmpltDao.findById(templateId.longValue());
@@ -348,7 +349,7 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
public TemplateProfile prepareExtractTemplate(ExtractTemplateCmd cmd) {
Long templateId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
Long zoneId = cmd.getZoneId();
VMTemplateVO template = _tmpltDao.findById(templateId.longValue());
@@ -360,8 +361,8 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
public TemplateProfile prepareDelete(DeleteIsoCmd cmd) {
Long templateId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
- Account account = UserContext.current().getCaller();
+ Long userId = CallContext.current().getCallingUserId();
+ Account account = CallContext.current().getCallingAccount();
Long zoneId = cmd.getZoneId();
VMTemplateVO template = _tmpltDao.findById(templateId.longValue());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java
index 18a69ca..c7cc818 100755
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -25,6 +25,7 @@ import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
@@ -47,6 +48,7 @@ import org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCm
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
import org.apache.cloudstack.api.command.user.template.UpdateTemplatePermissionsCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
@@ -72,6 +74,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -79,7 +82,6 @@ import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command;
import com.cloud.agent.api.ComputeChecksumCommand;
-
import com.cloud.agent.api.storage.DestroyCommand;
import com.cloud.agent.api.to.DataTO;
import com.cloud.agent.api.to.DiskTO;
@@ -113,7 +115,6 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.hypervisor.HypervisorGuruManager;
import com.cloud.projects.Project;
import com.cloud.projects.ProjectManager;
-
import com.cloud.resource.ResourceManager;
import com.cloud.server.ConfigurationServer;
import com.cloud.storage.GuestOSVO;
@@ -121,7 +122,6 @@ import com.cloud.storage.LaunchPermissionVO;
import com.cloud.storage.Snapshot;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.Storage;
-
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.TemplateType;
import com.cloud.storage.DataStoreRole;
@@ -133,7 +133,6 @@ import com.cloud.storage.StoragePoolStatus;
import com.cloud.storage.TemplateProfile;
import com.cloud.storage.Upload;
import com.cloud.storage.VMTemplateZoneVO;
-
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStoragePoolVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc;
@@ -157,14 +156,12 @@ import com.cloud.storage.download.DownloadMonitor;
import com.cloud.storage.secondary.SecondaryStorageVmManager;
import com.cloud.storage.upload.UploadMonitor;
import com.cloud.template.TemplateAdapter.TemplateAdapterType;
-
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountService;
import com.cloud.user.AccountVO;
import com.cloud.user.ResourceLimitService;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserAccountDao;
import com.cloud.user.dao.UserDao;
@@ -332,7 +329,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_CREATE, eventDescription = "creating template")
public VirtualMachineTemplate registerTemplate(RegisterTemplateCmd cmd) throws URISyntaxException, ResourceAllocationException {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (cmd.getTemplateTag() != null) {
if (!_accountService.isRootAdmin(account.getType())) {
throw new PermissionDeniedException("Parameter templatetag can only be specified by a Root Admin, permission denied");
@@ -374,7 +371,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_ISO_EXTRACT, eventDescription = "extracting ISO", async = true)
public String extract(ExtractIsoCmd cmd) {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
Long templateId = cmd.getId();
Long zoneId = cmd.getZoneId();
String url = cmd.getUrl();
@@ -387,7 +384,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_EXTRACT, eventDescription = "extracting template", async = true)
public String extract(ExtractTemplateCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long templateId = cmd.getId();
Long zoneId = cmd.getZoneId();
String url = cmd.getUrl();
@@ -412,7 +409,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
throw new InvalidParameterValueException("Unable to find template id=" + templateId);
}
- _accountMgr.checkAccess(UserContext.current().getCaller(), AccessType.ModifyEntry, true, vmTemplate);
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), AccessType.ModifyEntry, true, vmTemplate);
prepareTemplateInAllStoragePools(vmTemplate, zoneId);
return vmTemplate;
@@ -677,10 +674,10 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_COPY, eventDescription = "copying template", async = true)
public VirtualMachineTemplate copyTemplate(CopyTemplateCmd cmd) throws StorageUnavailableException, ResourceAllocationException {
Long templateId = cmd.getId();
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
Long sourceZoneId = cmd.getSourceZoneId();
Long destZoneId = cmd.getDestinationZoneId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify parameters
if (sourceZoneId.equals(destZoneId)) {
@@ -888,8 +885,8 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_ISO_DETACH, eventDescription = "detaching ISO", async = true)
public boolean detachIso(long vmId) {
- Account caller = UserContext.current().getCaller();
- Long userId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ Long userId = CallContext.current().getCallingUserId();
// Verify input parameters
UserVmVO vmInstanceCheck = _userVmDao.findById(vmId);
@@ -908,7 +905,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
if (isoId == null) {
throw new InvalidParameterValueException("The specified VM has no ISO attached to it.");
}
- UserContext.current().setEventDetails("Vm Id: " + vmId + " ISO Id: " + isoId);
+ CallContext.current().setEventDetails("Vm Id: " + vmId + " ISO Id: " + isoId);
State vmState = userVM.getState();
if (vmState != State.Running && vmState != State.Stopped) {
@@ -927,8 +924,8 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_ISO_ATTACH, eventDescription = "attaching ISO", async = true)
public boolean attachIso(long isoId, long vmId) {
- Account caller = UserContext.current().getCaller();
- Long userId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ Long userId = CallContext.current().getCallingUserId();
// Verify input parameters
UserVmVO vm = _userVmDao.findById(vmId);
@@ -1045,7 +1042,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_DELETE, eventDescription = "deleting template", async = true)
public boolean deleteTemplate(DeleteTemplateCmd cmd) {
Long templateId = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
VirtualMachineTemplate template = getTemplate(templateId);
if (template == null) {
@@ -1067,7 +1064,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@ActionEvent(eventType = EventTypes.EVENT_ISO_DELETE, eventDescription = "deleting iso", async = true)
public boolean deleteIso(DeleteIsoCmd cmd) {
Long templateId = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long zoneId = cmd.getZoneId();
VirtualMachineTemplate template = getTemplate(templateId);
@@ -1112,7 +1109,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
public List<String> listTemplatePermissions(BaseListTemplateOrIsoPermissionsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long id = cmd.getId();
if (id.equals(Long.valueOf(1))) {
@@ -1163,7 +1160,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
// Input validation
Long id = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<String> accountNames = cmd.getAccountNames();
List<Long> projectIds = cmd.getProjectIds();
Boolean isFeatured = cmd.isFeatured();
@@ -1325,7 +1322,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@DB
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_CREATE, eventDescription = "creating template", async = true)
public VirtualMachineTemplate createPrivateTemplate(CreateTemplateCmd command) throws CloudRuntimeException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
if (userId == null) {
userId = User.UID_SYSTEM;
}
@@ -1433,9 +1430,9 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
@Override
@ActionEvent(eventType = EventTypes.EVENT_TEMPLATE_CREATE, eventDescription = "creating template", create = true)
public VMTemplateVO createPrivateTemplateRecord(CreateTemplateCmd cmd, Account templateOwner) throws ResourceAllocationException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
boolean isAdmin = (isAdmin(caller.getType()));
_accountMgr.checkAccess(caller, null, true, templateOwner);
@@ -1687,7 +1684,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
Boolean isRoutingTemplate = cmd.isRoutingType();
Boolean bootable = cmd.isBootable();
Integer sortKey = cmd.getSortKey();
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
// verify that template exists
VMTemplateVO template = _tmpltDao.findById(id);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/usage/UsageServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/usage/UsageServiceImpl.java b/server/src/com/cloud/usage/UsageServiceImpl.java
index ae0a585..e6e6ab9 100755
--- a/server/src/com/cloud/usage/UsageServiceImpl.java
+++ b/server/src/com/cloud/usage/UsageServiceImpl.java
@@ -30,8 +30,10 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd;
import org.apache.cloudstack.api.command.admin.usage.GetUsageRecordsCmd;
import org.apache.cloudstack.api.response.UsageTypeResponse;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.usage.UsageService;
import org.apache.cloudstack.usage.UsageTypes;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -46,7 +48,6 @@ import com.cloud.usage.dao.UsageDao;
import com.cloud.usage.dao.UsageJobDao;
import com.cloud.user.Account;
import com.cloud.user.AccountVO;
-import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.component.Manager;
import com.cloud.utils.component.ManagerBase;
@@ -115,7 +116,7 @@ public class UsageServiceImpl extends ManagerBase implements UsageService, Manag
Long domainId = cmd.getDomainId();
String accountName = cmd.getAccountName();
Account userAccount = null;
- Account caller = (Account)UserContext.current().getCaller();
+ Account caller = (Account)CallContext.current().getCallingAccount();
Long usageType = cmd.getUsageType();
Long projectId = cmd.getProjectId();
[03/12] 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 code. Part
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index 283e832..4b06e78 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -37,6 +37,9 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker;
@@ -46,9 +49,9 @@ import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.context.ServerContexts;
import org.apache.cloudstack.region.gslb.GlobalLoadBalancerRuleDao;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.query.vo.ControlledViewEntity;
@@ -104,7 +107,6 @@ import com.cloud.projects.ProjectManager;
import com.cloud.projects.ProjectVO;
import com.cloud.projects.dao.ProjectAccountDao;
import com.cloud.projects.dao.ProjectDao;
-import com.cloud.region.ha.GlobalLoadBalancingRulesService;
import com.cloud.server.auth.UserAuthenticator;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Volume;
@@ -277,7 +279,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
public void setSecurityCheckers(List<SecurityChecker> securityCheckers) {
- this._securityCheckers = securityCheckers;
+ _securityCheckers = securityCheckers;
}
@Override
@@ -621,7 +623,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
for (VolumeVO volume : volumes) {
if (!volume.getState().equals(Volume.State.Destroy)) {
try {
- this.volumeMgr.deleteVolume(volume.getId(), caller);
+ volumeMgr.deleteVolume(volume.getId(), caller);
} catch (Exception ex) {
s_logger.warn("Failed to cleanup volumes as a part of account id=" + accountId + " cleanup due to Exception: ", ex);
accountCleanupNeeded = true;
@@ -875,7 +877,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
// Check permissions
- checkAccess(UserContext.current().getCaller(), domain);
+ checkAccess(CallContext.current().getCallingAccount(), domain);
if (!_userAccountDao.validateUsernameInDomain(userName, domainId)) {
throw new InvalidParameterValueException("The user " + userName + " already exists in domain " + domainId);
@@ -910,7 +912,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
txn.commit();
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
//check success
return _userAccountDao.findById(user.getId());
@@ -931,7 +933,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
throw new CloudRuntimeException("The user cannot be created as domain " + domain.getName() + " is being deleted");
}
- checkAccess(UserContext.current().getCaller(), domain);
+ checkAccess(CallContext.current().getCallingAccount(), domain);
Account account = _accountDao.findEnabledAccount(accountName, domainId);
if (account == null || account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
@@ -987,7 +989,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
throw new PermissionDeniedException("user id : " + id + " is system account, update is not allowed");
}
- checkAccess(UserContext.current().getCaller(), null, true, account);
+ checkAccess(CallContext.current().getCallingAccount(), null, true, account);
if (firstName != null) {
if (firstName.isEmpty()) {
@@ -1073,7 +1075,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
throw new CloudRuntimeException("Unable to update user " + id);
}
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ CallContext.current().putContextParameter(User.class, user.getUuid());
return _userAccountDao.findById(id);
}
@@ -1081,7 +1083,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Override
@ActionEvent(eventType = EventTypes.EVENT_USER_DISABLE, eventDescription = "disabling User", async = true)
public UserAccount disableUser(long userId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Check if user exists in the system
User user = _userDao.findById(userId);
@@ -1106,7 +1108,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
boolean success = doSetUserStatus(userId, State.disabled);
if (success) {
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ CallContext.current().putContextParameter(User.class, user.getUuid());
// user successfully disabled
return _userAccountDao.findById(userId);
@@ -1120,7 +1122,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@ActionEvent(eventType = EventTypes.EVENT_USER_ENABLE, eventDescription = "enabling User")
public UserAccount enableUser(long userId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Check if user exists in the system
User user = _userDao.findById(userId);
@@ -1155,7 +1157,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
// whenever the user is successfully enabled, reset the login attempts to zero
updateLoginAttempts(userId, 0, false);
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ CallContext.current().putContextParameter(User.class, user.getUuid());
return _userAccountDao.findById(userId);
} else {
@@ -1166,7 +1168,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Override
@ActionEvent(eventType = EventTypes.EVENT_USER_LOCK, eventDescription = "locking User")
public UserAccount lockUser(long userId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Check if user with id exists in the system
User user = _userDao.findById(userId);
@@ -1219,7 +1221,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
if (success) {
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ CallContext.current().putContextParameter(User.class, user.getUuid());
return _userAccountDao.findById(userId);
} else {
@@ -1232,9 +1234,9 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
// This method deletes the account
public boolean deleteUserAccount(long accountId) {
- UserContext ctx = UserContext.current();
- long callerUserId = ctx.getCallerUserId();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ long callerUserId = ctx.getCallingUserId();
+ Account caller = ctx.getCallingAccount();
// If the user is a System user, return an error. We do not allow this
AccountVO account = _accountDao.findById(accountId);
@@ -1267,7 +1269,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
throw new InvalidParameterValueException("The account id=" + accountId + " manages project(s) with ids " + projectIds + "and can't be removed");
}
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
return deleteAccount(account, callerUserId, caller);
}
@@ -1293,13 +1295,13 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
// Check if user performing the action is allowed to modify this account
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
checkAccess(caller, null, true, account);
boolean success = enableAccount(account.getId());
if (success) {
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
return _accountDao.findById(account.getId());
} else {
@@ -1310,7 +1312,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Override
@ActionEvent(eventType = EventTypes.EVENT_ACCOUNT_DISABLE, eventDescription = "locking account", async = true)
public AccountVO lockAccount(String accountName, Long domainId, Long accountId) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account account = null;
if (accountId != null) {
@@ -1330,7 +1332,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
checkAccess(caller, null, true, account);
if (lockAccount(account.getId())) {
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
return _accountDao.findById(account.getId());
} else {
throw new CloudRuntimeException("Unable to lock account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
@@ -1340,7 +1342,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Override
@ActionEvent(eventType = EventTypes.EVENT_ACCOUNT_DISABLE, eventDescription = "disabling account", async = true)
public AccountVO disableAccount(String accountName, Long domainId, Long accountId) throws ConcurrentOperationException, ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account account = null;
if (accountId != null) {
@@ -1360,7 +1362,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
checkAccess(caller, null, true, account);
if (disableAccount(account.getId())) {
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
return _accountDao.findById(account.getId());
} else {
throw new CloudRuntimeException("Unable to update account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
@@ -1398,7 +1400,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
// Check if user performing the action is allowed to modify this account
- checkAccess(UserContext.current().getCaller(), _domainMgr.getDomain(account.getDomainId()));
+ checkAccess(CallContext.current().getCallingAccount(), _domainMgr.getDomain(account.getDomainId()));
// check if the given account name is unique in this domain for updating
Account duplicateAcccount = _accountDao.findActiveAccount(newAccountName, domainId);
@@ -1443,7 +1445,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
txn.commit();
if (success) {
- UserContext.current().setEntityDetails(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(Account.class, account.getUuid());
return _accountDao.findById(account.getId());
} else {
throw new CloudRuntimeException("Unable to update account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
@@ -1473,8 +1475,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
throw new InvalidParameterValueException("The user is default and can't be removed");
}
- checkAccess(UserContext.current().getCaller(), null, true, account);
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ checkAccess(CallContext.current().getCallingAccount(), null, true, account);
+ CallContext.current().putContextParameter(User.class, user.getUuid());
return _userDao.remove(id);
}
@@ -1489,6 +1491,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
@Override
public void run() {
try {
+ ServerContexts.registerSystemContext();
GlobalLock lock = GlobalLock.getInternLock("AccountCleanup");
if (lock == null) {
s_logger.debug("Couldn't get the global lock");
@@ -1500,10 +1503,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
return;
}
- Transaction txn = null;
try {
- txn = Transaction.open(Transaction.CLOUD_DB);
-
// Cleanup removed accounts
List<AccountVO> removedAccounts = _accountDao.findCleanupsForRemovedAccounts(null);
s_logger.info("Found " + removedAccounts.size() + " removed accounts to cleanup");
@@ -1560,7 +1560,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
Account projectAccount = getAccount(project.getProjectAccountId());
if (projectAccount == null) {
s_logger.debug("Removing inactive project id=" + project.getId());
- _projectMgr.deleteProject(UserContext.current().getCaller(), UserContext.current().getCallerUserId(), project);
+ _projectMgr.deleteProject(CallContext.current().getCallingAccount(), CallContext.current().getCallingUserId(), project);
} else {
s_logger.debug("Can't remove disabled project " + project + " as it has non removed account id=" + project.getId());
}
@@ -1572,11 +1572,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
} catch (Exception e) {
s_logger.error("Exception ", e);
} finally {
- if (txn != null) {
- txn.close();
- }
-
lock.unlock();
+ ServerContexts.unregisterSystemContext();
}
} catch (Exception e) {
s_logger.error("Exception ", e);
@@ -1793,7 +1790,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
userUUID = UUID.randomUUID().toString();
}
UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, userUUID));
- UserContext.current().setEntityDetails(User.class, user.getUuid());
+ CallContext.current().putContextParameter(User.class, user.getUuid());
return user;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/user/DomainManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/DomainManagerImpl.java b/server/src/com/cloud/user/DomainManagerImpl.java
index aad5787..c862061 100644
--- a/server/src/com/cloud/user/DomainManagerImpl.java
+++ b/server/src/com/cloud/user/DomainManagerImpl.java
@@ -24,12 +24,14 @@ import java.util.UUID;
import javax.ejb.Local;
import javax.inject.Inject;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.RegionManager;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
import com.cloud.configuration.Resource.ResourceOwnerType;
import com.cloud.configuration.ResourceLimit;
@@ -133,7 +135,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
@Override
@ActionEvent(eventType = EventTypes.EVENT_DOMAIN_CREATE, eventDescription = "creating Domain")
public Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (parentId == null) {
parentId = Long.valueOf(DomainVO.ROOT_DOMAIN);
@@ -184,7 +186,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, domainUUID));
_resourceCountDao.createResourceCounts(domain.getId(), ResourceLimit.ResourceOwnerType.Domain);
txn.commit();
- UserContext.current().setEntityDetails(Domain.class, domain.getUuid());
+ CallContext.current().putContextParameter(Domain.class, domain.getUuid());
return domain;
}
@@ -211,7 +213,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
@Override
@ActionEvent(eventType = EventTypes.EVENT_DOMAIN_DELETE, eventDescription = "deleting Domain", async = true)
public boolean deleteDomain(long domainId, Boolean cleanup) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
DomainVO domain = _domainDao.findById(domainId);
@@ -281,7 +283,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
}
cleanupDomainOfferings(domain.getId());
- UserContext.current().setEntityDetails(Domain.class, domain.getUuid());
+ CallContext.current().putContextParameter(Domain.class, domain.getUuid());
return true;
} catch (Exception ex) {
s_logger.error("Exception deleting domain with id " + domain.getId(), ex);
@@ -350,15 +352,15 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
for (AccountVO account : accounts) {
if (account.getType() != Account.ACCOUNT_TYPE_PROJECT) {
s_logger.debug("Deleting account " + account + " as a part of domain id=" + domainId + " cleanup");
- boolean deleteAccount = _accountMgr.deleteAccount(account, UserContext.current().getCallerUserId(), UserContext.current().getCaller());
+ boolean deleteAccount = _accountMgr.deleteAccount(account, CallContext.current().getCallingUserId(), CallContext.current().getCallingAccount());
if (!deleteAccount) {
s_logger.warn("Failed to cleanup account id=" + account.getId() + " as a part of domain cleanup");
}
- success = (success && deleteAccount);
+ success = (success && deleteAccount);
} else {
ProjectVO project = _projectDao.findByProjectAccountId(account.getId());
s_logger.debug("Deleting project " + project + " as a part of domain id=" + domainId + " cleanup");
- boolean deleteProject = _projectMgr.deleteProject(UserContext.current().getCaller(), UserContext.current().getCallerUserId(), project);
+ boolean deleteProject = _projectMgr.deleteProject(CallContext.current().getCallingAccount(), CallContext.current().getCallingUserId(), project);
if (!deleteProject) {
s_logger.warn("Failed to cleanup project " + project + " as a part of domain cleanup");
}
@@ -370,8 +372,8 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
boolean networksDeleted = true;
s_logger.debug("Deleting networks for domain id=" + domainId);
List<Long> networkIds = _networkDomainDao.listNetworkIdsByDomain(domainId);
- UserContext ctx = UserContext.current();
- ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(ctx.getCallerUserId()), ctx.getCaller());
+ CallContext ctx = CallContext.current();
+ ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(ctx.getCallingUserId()), ctx.getCallingAccount());
for (Long networkId : networkIds) {
s_logger.debug("Deleting network id=" + networkId + " as a part of domain id=" + domainId + " cleanup");
@@ -419,7 +421,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
@Override
public Pair<List<? extends Domain>, Integer> searchForDomains(ListDomainsCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long domainId = cmd.getId();
boolean listAll = cmd.listAll();
boolean isRecursive = false;
@@ -491,7 +493,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
boolean listAll = cmd.listAll();
String path = null;
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (domainId != null) {
_accountMgr.checkAccess(caller, getDomain(domainId));
} else {
@@ -560,7 +562,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
}
// check permissions
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountMgr.checkAccess(caller, domain);
// domain name is unique in the cloud
@@ -606,7 +608,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
}
}
_domainDao.update(domainId, domain);
- UserContext.current().setEntityDetails(Domain.class, domain.getUuid());
+ CallContext.current().putContextParameter(Domain.class, domain.getUuid());
txn.commit();
return _domainDao.findById(domainId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index ef9fcbc..bd7a791 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -58,6 +58,8 @@ import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd;
import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.context.ServerContexts;
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
import org.apache.cloudstack.engine.service.api.OrchestrationService;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
@@ -210,7 +212,6 @@ import com.cloud.user.ResourceLimitService;
import com.cloud.user.SSHKeyPair;
import com.cloud.user.SSHKeyPairVO;
import com.cloud.user.User;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.VmDiskStatisticsVO;
import com.cloud.user.dao.AccountDao;
@@ -469,7 +470,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@ActionEvent(eventType = EventTypes.EVENT_VM_RESETPASSWORD, eventDescription = "resetting Vm password", async = true)
public UserVm resetVMPassword(ResetVMPasswordCmd cmd, String password)
throws ResourceUnavailableException, InsufficientCapacityException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long vmId = cmd.getId();
UserVmVO userVm = _vmDao.findById(cmd.getId());
_vmDao.loadDetails(userVm);
@@ -515,7 +516,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
private boolean resetVMPasswordInternal(Long vmId,
String password) throws ResourceUnavailableException,
InsufficientCapacityException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
VMInstanceVO vmInstance = _vmDao.findById(vmId);
if (password == null || password.equals("")) {
@@ -584,7 +585,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public UserVm resetVMSSHKey(ResetVMSSHKeyCmd cmd)
throws ResourceUnavailableException, InsufficientCapacityException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.finalizeOwner(caller, cmd.getAccountName(), cmd.getDomainId(), cmd.getProjectId());
Long vmId = cmd.getId();
@@ -636,7 +637,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
}
private boolean resetVMSSHKeyInternal(Long vmId, String SSHPublicKey, String password) throws ResourceUnavailableException, InsufficientCapacityException {
- Long userId = UserContext.current().getCallerUserId();
+ Long userId = CallContext.current().getCallingUserId();
VMInstanceVO vmInstance = _vmDao.findById(vmId);
VMTemplateVO template = _templateDao.findByIdIncludingRemoved(vmInstance.getTemplateId());
@@ -754,7 +755,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
private UserVm upgradeStoppedVirtualMachine(Long vmId, Long svcOffId) throws ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
UserVmVO vmInstance = _vmDao.findById(vmId);
@@ -827,7 +828,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
Long vmId = cmd.getVmId();
Long networkId = cmd.getNetworkId();
String ipAddress = cmd.getIpAddress();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
UserVmVO vmInstance = _vmDao.findById(vmId);
if(vmInstance == null) {
@@ -902,7 +903,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public UserVm removeNicFromVirtualMachine(RemoveNicFromVMCmd cmd) throws InvalidParameterValueException, PermissionDeniedException, CloudRuntimeException {
Long vmId = cmd.getVmId();
Long nicId = cmd.getNicId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
UserVmVO vmInstance = _vmDao.findById(vmId);
if(vmInstance == null) {
@@ -959,7 +960,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public UserVm updateDefaultNicForVirtualMachine(UpdateDefaultNicForVMCmd cmd) throws InvalidParameterValueException, CloudRuntimeException {
Long vmId = cmd.getVmId();
Long nicId = cmd.getNicId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
UserVmVO vmInstance = _vmDao.findById(vmId);
if (vmInstance == null){
@@ -1122,7 +1123,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public boolean upgradeVirtualMachine(Long vmId, Long newServiceOfferingId) throws ResourceUnavailableException, ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException{
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
VMInstanceVO vmInstance = _vmInstanceDao.findById(vmId);
@@ -1285,7 +1286,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
throws ResourceAllocationException, CloudRuntimeException {
Long vmId = cmd.getId();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Verify input parameters
UserVmVO vm = _vmDao.findById(vmId.longValue());
@@ -1496,9 +1497,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public boolean expunge(UserVmVO vm, long callerUserId, Account caller) {
- UserContext ctx = UserContext.current();
- ctx.setAccountId(vm.getAccountId());
-
try {
// expunge the vm
if (!_itMgr.advanceExpunge(vm, _accountMgr.getSystemUser(), caller)) {
@@ -1651,7 +1649,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public void run() {
- UserContext.registerContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
+ ServerContexts.registerSystemContext();
GlobalLock scanLock = GlobalLock.getInternLock("UserVMExpunge");
try {
if (scanLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION)) {
@@ -1685,9 +1683,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
}
} finally {
scanLock.releaseRef();
- UserContext.unregisterContext();
+ ServerContexts.unregisterSystemContext();
}
}
+
}
private static boolean isAdmin(short accountType) {
@@ -1708,7 +1707,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
Long osTypeId = cmd.getOsTypeId();
String userData = cmd.getUserData();
Boolean isDynamicallyScalable = cmd.isDynamicallyScalable();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
// Input validation
UserVmVO vmInstance = null;
@@ -1728,7 +1727,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
"Can't enable ha for the vm as it's created from the Service offering having HA disabled");
}
- _accountMgr.checkAccess(UserContext.current().getCaller(), null, true,
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true,
vmInstance);
if (displayName == null) {
@@ -1863,7 +1862,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@ActionEvent(eventType = EventTypes.EVENT_VM_REBOOT, eventDescription = "rebooting Vm", async = true)
public UserVm rebootVirtualMachine(RebootVMCmd cmd)
throws InsufficientCapacityException, ResourceUnavailableException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long vmId = cmd.getId();
// Verify input parameters
@@ -1886,7 +1885,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
throw new InvalidParameterValueException("Unable to find service offering: " + serviceOfferingId + " corresponding to the vm");
}
- return rebootVirtualMachine(UserContext.current().getCallerUserId(),
+ return rebootVirtualMachine(CallContext.current().getCallingUserId(),
vmId);
}
@@ -1900,7 +1899,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
@DB
public InstanceGroupVO createVmGroup(CreateVMGroupCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long domainId = cmd.getDomainId();
String accountName = cmd.getAccountName();
String groupName = cmd.getGroupName();
@@ -1955,7 +1954,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public boolean deleteVmGroup(DeleteVMGroupCmd cmd) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long groupId = cmd.getId();
// Verify input parameters
@@ -2108,7 +2107,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
List<Long> affinityGroupIdList)
throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<NetworkVO> networkList = new ArrayList<NetworkVO>();
// Verify that caller can perform actions in behalf of vm owner
@@ -2168,7 +2167,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
List<Long> affinityGroupIdList) throws InsufficientCapacityException, ConcurrentOperationException,
ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<NetworkVO> networkList = new ArrayList<NetworkVO>();
boolean isSecurityGroupEnabledNetworkUsed = false;
boolean isVmWare = (template.getHypervisorType() == HypervisorType.VMware || (hypervisor != null && hypervisor == HypervisorType.VMware));
@@ -2283,7 +2282,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
IpAddresses defaultIps, Boolean displayvm, String keyboard, List<Long> affinityGroupIdList)
throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<NetworkVO> networkList = new ArrayList<NetworkVO>();
// Verify that caller can perform actions in behalf of vm owner
@@ -2779,7 +2778,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
if (s_logger.isDebugEnabled()) {
s_logger.debug("Successfully allocated DB entry for " + vm);
}
- UserContext.current().setEventDetails("Vm Id: " + vm.getId());
+ CallContext.current().setEventDetails("Vm Id: " + vm.getId());
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, accountId, zone.getId(), vm.getId(),
vm.getHostName(), offering.getId(), template.getId(), hypervisorType.toString(),
@@ -3113,8 +3112,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public UserVm stopVirtualMachine(long vmId, boolean forced)
throws ConcurrentOperationException {
// Input validation
- Account caller = UserContext.current().getCaller();
- Long userId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ Long userId = CallContext.current().getCallingUserId();
// if account is removed, return error
if (caller != null && caller.getRemoved() != null) {
@@ -3155,13 +3154,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
// release elastic IP here
IPAddressVO ip = _ipAddressDao.findByAssociatedVmId(profile.getId());
if (ip != null && ip.getSystem()) {
- UserContext ctx = UserContext.current();
+ CallContext ctx = CallContext.current();
try {
long networkId = ip.getAssociatedWithNetworkId();
Network guestNetwork = _networkDao.findById(networkId);
NetworkOffering offering = _configMgr.getNetworkOffering(guestNetwork.getNetworkOfferingId());
assert (offering.getAssociatePublicIP() == true) : "User VM should not have system owned public IP associated with it when offering configured not to associate public IP.";
- _rulesMgr.disableStaticNat(ip.getId(), ctx.getCaller(), ctx.getCallerUserId(), true);
+ _rulesMgr.disableStaticNat(ip.getId(), ctx.getCallingAccount(), ctx.getCallingUserId(), true);
} catch (Exception ex) {
s_logger.warn(
"Failed to disable static nat and release system ip "
@@ -3195,9 +3194,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
throws ConcurrentOperationException, ResourceUnavailableException,
InsufficientCapacityException {
// Input validation
- Account callerAccount = UserContext.current().getCaller();
- UserVO callerUser = _userDao.findById(UserContext.current()
- .getCallerUserId());
+ Account callerAccount = CallContext.current().getCallingAccount();
+ UserVO callerUser = _userDao.findById(CallContext.current()
+ .getCallingUserId());
// if account is removed, return error
if (callerAccount != null && callerAccount.getRemoved() != null) {
@@ -3227,7 +3226,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
Host destinationHost = null;
if (hostId != null) {
- Account account = UserContext.current().getCaller();
+ Account account = CallContext.current().getCallingAccount();
if (!_accountService.isRootAdmin(account.getType())) {
throw new PermissionDeniedException(
"Parameter hostid can only be specified by a Root Admin, permission denied");
@@ -3329,8 +3328,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public UserVm destroyVm(long vmId) throws ResourceUnavailableException,
ConcurrentOperationException {
- Account caller = UserContext.current().getCaller();
- Long userId = UserContext.current().getCallerUserId();
+ Account caller = CallContext.current().getCallingAccount();
+ Long userId = CallContext.current().getCallingUserId();
// Verify input parameters
UserVmVO vm = _vmDao.findById(vmId);
@@ -3395,7 +3394,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public void collectVmDiskStatistics (UserVmVO userVm) {
// support KVM only util 2013.06.25
if (!userVm.getHypervisorType().equals(HypervisorType.KVM))
- return;
+ return;
// Collect vm disk statistics from host before stopping Vm
long hostId = userVm.getHostId();
List<String> vmNames = new ArrayList<String>();
@@ -3721,7 +3720,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public VirtualMachine vmStorageMigration(Long vmId, StoragePool destPool) {
// access check - only root admin can migrate VM
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
@@ -3794,7 +3793,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
throws ResourceUnavailableException, ConcurrentOperationException,
ManagementServerException, VirtualMachineMigrationException {
// access check - only root admin can migrate VM
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
@@ -3920,7 +3919,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
Map<String, String> volumeToPool) throws ResourceUnavailableException, ConcurrentOperationException,
ManagementServerException, VirtualMachineMigrationException {
// Access check - only root administrator can migrate VM.
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
@@ -4044,7 +4043,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
// VERIFICATIONS and VALIDATIONS
// VV 1: verify the two users
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN
&& caller.getType() != Account.ACCOUNT_TYPE_DOMAIN_ADMIN) { // only
// root
@@ -4383,7 +4382,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
// if the network offering has persistent set to true, implement the network
if (requiredOfferings.get(0).getIsPersistent()) {
DeployDestination dest = new DeployDestination(zone, null, null, null);
- UserVO callerUser = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO callerUser = _userDao.findById(CallContext.current().getCallingUserId());
Journal journal = new Journal.LogJournal("Implementing " + newNetwork, s_logger);
ReservationContext context = new ReservationContextImpl(UUID.randomUUID().toString(),
journal, callerUser, caller);
@@ -4453,7 +4452,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public UserVm restoreVM(RestoreVMCmd cmd) throws InsufficientCapacityException, ResourceUnavailableException {
// Input validation
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
long vmId = cmd.getVmId();
Long newTemplateId = cmd.getTemplateId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
index 8687163..686c688 100644
--- a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@ -28,9 +28,11 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd;
+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.storage.datastore.db.StoragePoolVO;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -72,7 +74,6 @@ import com.cloud.storage.dao.SnapshotDao;
import com.cloud.storage.dao.VolumeDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
@@ -232,7 +233,7 @@ public class VMSnapshotManagerImpl extends ManagerBase implements VMSnapshotMana
}
protected Account getCaller(){
- return UserContext.current().getCaller();
+ return CallContext.current().getCallingAccount();
}
@Override
@@ -663,7 +664,7 @@ public class VMSnapshotManagerImpl extends ManagerBase implements VMSnapshotMana
"VM Snapshot reverting failed due to vm snapshot is not in the state of Created.");
}
- UserVO callerUser = _userDao.findById(UserContext.current().getCallerUserId());
+ UserVO callerUser = _userDao.findById(CallContext.current().getCallingUserId());
UserVmVO vm = null;
Long hostId = null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
index 5211279..287e622 100644
--- a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
+++ b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
@@ -28,10 +28,13 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
+import org.apache.cloudstack.context.CallContext;
+
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
+
import com.cloud.deploy.DeploymentPlanner;
import com.cloud.event.ActionEvent;
import com.cloud.event.EventTypes;
@@ -41,7 +44,6 @@ import com.cloud.exception.ResourceInUseException;
import com.cloud.network.security.SecurityGroup;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair;
import com.cloud.utils.component.ComponentContext;
@@ -85,7 +87,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
public AffinityGroup createAffinityGroup(String account, Long domainId, String affinityGroupName,
String affinityGroupType, String description) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.finalizeOwner(caller, account, domainId, null);
if (_affinityGroupDao.isNameInUse(owner.getAccountId(), owner.getDomainId(), affinityGroupName)) {
@@ -127,7 +129,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
@ActionEvent(eventType = EventTypes.EVENT_AFFINITY_GROUP_DELETE, eventDescription = "Deleting affinity group")
public boolean deleteAffinityGroup(Long affinityGroupId, String account, Long domainId, String affinityGroupName) {
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.finalizeOwner(caller, account, domainId, null);
AffinityGroupVO group = null;
@@ -187,7 +189,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
public Pair<List<? extends AffinityGroup>, Integer> listAffinityGroups(Long affinityGroupId, String affinityGroupName, String affinityGroupType, Long vmId, Long startIndex, Long pageSize) {
Filter searchFilter = new Filter(AffinityGroupVO.class, "id", Boolean.TRUE, startIndex, pageSize);
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Long accountId = caller.getAccountId();
Long domainId = caller.getDomainId();
@@ -329,7 +331,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
+ "; make sure the virtual machine is stopped and not in an error state before updating.");
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
Account owner = _accountMgr.getAccount(vmInstance.getAccountId());
// check that the affinity groups exist
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
index ac3b8f5..560768c 100644
--- a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
+++ b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
@@ -26,8 +26,10 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
+
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -59,7 +61,6 @@ import com.cloud.tags.ResourceTagVO;
import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.ManagerBase;
@@ -99,7 +100,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
throw new InvalidParameterValueException("Can't find guest network by id");
}
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
_accountMgr.checkAccess(caller, AccessType.UseNetwork, false, guestNtwk);
Network sourceIpNtwk = _networkModel.getNetwork(sourceIpNetworkId);
@@ -166,7 +167,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
}
s_logger.debug("Load balancer " + newRule.getId() + " for Ip address " + newRule.getSourceIp().addr() + ", source port "
+ newRule.getSourcePortStart() + ", instance port " + newRule.getDefaultPortStart() + " is added successfully.");
- UserContext.current().setEventDetails("Load balancer Id: " + newRule.getId());
+ CallContext.current().setEventDetails("Load balancer Id: " + newRule.getId());
Network ntwk = _networkModel.getNetwork(newRule.getNetworkId());
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_CREATE, newRule.getAccountId(),
ntwk.getDataCenterId(), newRule.getId(), null, LoadBalancingRule.class.getName(),
@@ -373,7 +374,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
Map<String, String> tags = cmd.getTags();
- Account caller = UserContext.current().getCaller();
+ Account caller = CallContext.current().getCallingAccount();
List<Long> permittedAccounts = new ArrayList<Long>();
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java b/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
index ad36fae..38ba37c 100644
--- a/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
+++ b/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
@@ -34,20 +34,23 @@ import com.cloud.region.ha.GlobalLoadBalancerRule;
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
-import com.cloud.user.UserContext;
import com.cloud.utils.Pair;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
+
import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.api.command.user.region.ha.gslb.*;
+import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.region.Region;
import org.apache.cloudstack.region.dao.RegionDao;
+
import org.apache.log4j.Logger;
import javax.ejb.Local;
import javax.inject.Inject;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -150,8 +153,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
"Assigning a load balancer rule to global load balancer rule", async=true)
public boolean assignToGlobalLoadBalancerRule(AssignToGlobalLoadBalancerRuleCmd assignToGslbCmd) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
long gslbRuleId = assignToGslbCmd.getGlobalLoadBalancerRuleId();
GlobalLoadBalancerRuleVO gslbRule = _gslbRuleDao.findById(gslbRuleId);
@@ -292,8 +295,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
"Removing a load balancer rule to be part of global load balancer rule")
public boolean removeFromGlobalLoadBalancerRule(RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
long gslbRuleId = removeFromGslbCmd.getGlobalLoadBalancerRuleId();
GlobalLoadBalancerRuleVO gslbRule = _gslbRuleDao.findById(gslbRuleId);
@@ -405,8 +408,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
"Delete global load balancer rule")
public boolean deleteGlobalLoadBalancerRule(DeleteGlobalLoadBalancerRuleCmd deleteGslbCmd) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
long gslbRuleId = deleteGslbCmd.getGlobalLoadBalancerId();
try {
@@ -493,8 +496,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
throw new InvalidParameterValueException("Invalid global load balancer rule id: " + gslbRuleId);
}
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
_accountMgr.checkAccess(caller, SecurityChecker.AccessType.ModifyEntry, true, gslbRule);
@@ -541,8 +544,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
@Override
public List<GlobalLoadBalancerRule> listGlobalLoadBalancerRule(ListGlobalLoadBalancerRuleCmd listGslbCmd) {
- UserContext ctx = UserContext.current();
- Account caller = ctx.getCaller();
+ CallContext ctx = CallContext.current();
+ Account caller = ctx.getCallingAccount();
Integer regionId = listGslbCmd.getRegionId();
Long ruleId = listGslbCmd.getId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/configuration/ConfigurationManagerTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/configuration/ConfigurationManagerTest.java b/server/test/com/cloud/configuration/ConfigurationManagerTest.java
index 5c1cabf..eb362b7 100755
--- a/server/test/com/cloud/configuration/ConfigurationManagerTest.java
+++ b/server/test/com/cloud/configuration/ConfigurationManagerTest.java
@@ -17,25 +17,38 @@
package com.cloud.configuration;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-import java.lang.reflect.Field;
-import org.apache.cloudstack.api.command.admin.vlan.DedicatePublicIpRangeCmd;
-import org.apache.cloudstack.api.command.admin.vlan.ReleasePublicIpRangeCmd;
+import junit.framework.Assert;
+
import org.apache.log4j.Logger;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.apache.cloudstack.api.command.admin.vlan.DedicatePublicIpRangeCmd;
+import org.apache.cloudstack.api.command.admin.vlan.ReleasePublicIpRangeCmd;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.configuration.Resource.ResourceType;
import com.cloud.dc.AccountVlanMapVO;
+import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.DataCenterVO;
import com.cloud.dc.Vlan;
import com.cloud.dc.VlanVO;
-import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.dao.AccountVlanMapDao;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.VlanDao;
@@ -48,17 +61,11 @@ import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
import com.cloud.user.ResourceLimitService;
-import com.cloud.user.UserContext;
+import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.net.Ip;
-import junit.framework.Assert;
-
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.doNothing;
-
public class ConfigurationManagerTest {
private static final Logger s_logger = Logger.getLogger(ConfigurationManagerTest.class);
@@ -98,11 +105,14 @@ public class ConfigurationManagerTest {
configurationMgr._zoneDao = _zoneDao;
configurationMgr._firewallDao = _firewallDao;
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(configurationMgr._accountMgr.getAccount(anyLong())).thenReturn(account);
when(configurationMgr._accountDao.findActiveAccount(anyString(), anyLong())).thenReturn(account);
when(configurationMgr._accountMgr.getActiveAccountById(anyLong())).thenReturn(account);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+ CallContext.register(user, account);
+
when(configurationMgr._publicIpAddressDao.countIPs(anyLong(), anyLong(), anyBoolean())).thenReturn(1);
doNothing().when(configurationMgr._resourceLimitMgr).checkResourceLimit(any(Account.class),
@@ -112,8 +122,6 @@ public class ConfigurationManagerTest {
when(configurationMgr._vlanDao.acquireInLockTable(anyLong(), anyInt())).thenReturn(vlan);
- UserContext.registerContext(1, account, null, true);
-
Field dedicateIdField = _dedicatePublicIpRangeClass.getDeclaredField("id");
dedicateIdField.setAccessible(true);
dedicateIdField.set(dedicatePublicIpRangesCmd, 1L);
@@ -135,6 +143,11 @@ public class ConfigurationManagerTest {
releaseIdField.set(releasePublicIpRangesCmd, 1L);
}
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testDedicatePublicIpRange() throws Exception {
@@ -400,12 +413,14 @@ public class ConfigurationManagerTest {
public class DedicatePublicIpRangeCmdExtn extends DedicatePublicIpRangeCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class ReleasePublicIpRangeCmdExtn extends ReleasePublicIpRangeCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/network/DedicateGuestVlanRangesTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/DedicateGuestVlanRangesTest.java b/server/test/com/cloud/network/DedicateGuestVlanRangesTest.java
index e5d3329..d6ee630 100644
--- a/server/test/com/cloud/network/DedicateGuestVlanRangesTest.java
+++ b/server/test/com/cloud/network/DedicateGuestVlanRangesTest.java
@@ -17,21 +17,32 @@
package com.cloud.network;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-import java.lang.reflect.Field;
-import org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
-import org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
-import org.apache.cloudstack.api.command.admin.network.ReleaseDedicatedGuestVlanRangeCmd;
+import junit.framework.Assert;
import org.apache.log4j.Logger;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
+import org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
+import org.apache.cloudstack.api.command.admin.network.ReleaseDedicatedGuestVlanRangeCmd;
+import org.apache.cloudstack.context.CallContext;
+
import com.cloud.dc.DataCenterVnetVO;
import com.cloud.dc.dao.DataCenterVnetDao;
import com.cloud.network.dao.AccountGuestVlanMapDao;
@@ -40,18 +51,12 @@ import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.projects.ProjectManager;
import com.cloud.user.Account;
-import com.cloud.user.dao.AccountDao;
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.db.Transaction;
-import junit.framework.Assert;
-
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.doNothing;
-
public class DedicateGuestVlanRangesTest {
private static final Logger s_logger = Logger.getLogger(DedicateGuestVlanRangesTest.class);
@@ -86,11 +91,13 @@ public class DedicateGuestVlanRangesTest {
networkService._datacneter_vnet = _dataCenterVnetDao;
networkService._accountGuestVlanMapDao = _accountGuestVlanMapDao;
- Account account = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
+ Account account = new AccountVO("testaccount", 1, "networkdomain", (short) 0, UUID.randomUUID().toString());
when(networkService._accountMgr.getAccount(anyLong())).thenReturn(account);
when(networkService._accountDao.findActiveAccount(anyString(), anyLong())).thenReturn(account);
+
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
- UserContext.registerContext(1, account, null, true);
+ CallContext.register(user, account);
Field accountNameField = _dedicateGuestVlanRangeClass.getDeclaredField("accountName");
accountNameField.setAccessible(true);
@@ -113,6 +120,11 @@ public class DedicateGuestVlanRangesTest {
releaseIdField.set(releaseDedicatedGuestVlanRangesCmd, 1L);
}
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testDedicateGuestVlanRange() throws Exception {
s_logger.info("Running tests for DedicateGuestVlanRange API");
@@ -359,18 +371,21 @@ public class DedicateGuestVlanRangesTest {
}
public class DedicateGuestVlanRangeCmdExtn extends DedicateGuestVlanRangeCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class ReleaseDedicatedGuestVlanRangeCmdExtn extends ReleaseDedicatedGuestVlanRangeCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
}
public class ListDedicatedGuestVlanRangesCmdExtn extends ListDedicatedGuestVlanRangesCmd {
+ @Override
public long getEntityOwnerId() {
return 1;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/vm/UserVmManagerTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/UserVmManagerTest.java b/server/test/com/cloud/vm/UserVmManagerTest.java
index 5eedfa5..0eb9a08 100755
--- a/server/test/com/cloud/vm/UserVmManagerTest.java
+++ b/server/test/com/cloud/vm/UserVmManagerTest.java
@@ -24,24 +24,30 @@ import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.lang.reflect.Field;
import java.util.List;
import java.util.UUID;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
+import org.apache.cloudstack.context.CallContext;
import com.cloud.capacity.CapacityManager;
import com.cloud.configuration.ConfigurationManager;
@@ -56,18 +62,17 @@ import com.cloud.hypervisor.Hypervisor;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.offering.ServiceOffering;
import com.cloud.service.ServiceOfferingVO;
+import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Volume;
import com.cloud.storage.VolumeManager;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.VMTemplateDao;
import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.Storage.ImageFormat;
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.user.dao.UserDao;
@@ -138,7 +143,15 @@ public class UserVmManagerTest {
when(_vmDao.findById(anyLong())).thenReturn(_vmMock);
when(_templateDao.findById(anyLong())).thenReturn(_templateMock);
doReturn(VirtualMachine.State.Error).when(_vmMock).getState();
- _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ } finally {
+ CallContext.unregister();
+ }
}
// Test restoreVm when VM is in stopped state
@@ -160,7 +173,15 @@ public class UserVmManagerTest {
when(_templateMock.getUuid()).thenReturn("e0552266-7060-11e2-bbaa-d55f5db67735");
- _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -185,7 +206,15 @@ public class UserVmManagerTest {
when(_templateMock.getUuid()).thenReturn("e0552266-7060-11e2-bbaa-d55f5db67735");
- _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.restoreVMInternal(_account, _vmMock, null);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -216,7 +245,15 @@ public class UserVmManagerTest {
when(_templateMock.getUuid()).thenReturn("b1a3626e-72e0-4697-8c7c-a110940cc55d");
- _userVmMgr.restoreVMInternal(_account, _vmMock, 14L);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.restoreVMInternal(_account, _vmMock, 14L);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -249,7 +286,15 @@ public class UserVmManagerTest {
when(_templateMock.getUuid()).thenReturn("b1a3626e-72e0-4697-8c7c-a110940cc55d");
- _userVmMgr.restoreVMInternal(_account, _vmMock, 14L);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.restoreVMInternal(_account, _vmMock, 14L);
+ } finally {
+ CallContext.unregister();
+ }
verify(_vmMock, times(1)).setIsoId(14L);
@@ -269,14 +314,19 @@ public class UserVmManagerTest {
serviceOfferingIdField.setAccessible(true);
serviceOfferingIdField.set(cmd, 1L);
+ when(_vmInstanceDao.findById(anyLong())).thenReturn(_vmInstance);
+
// UserContext.current().setEventDetails("Vm Id: "+getId());
- Account account = (Account) new AccountVO("testaccount", 1L, "networkdomain", (short) 0, "uuid");
- //AccountVO(String accountName, long domainId, String networkDomain, short type, int regionId)
- UserContext.registerContext(1, account, null, true);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short) 0, "uuid");
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
- when(_vmInstanceDao.findById(anyLong())).thenReturn(_vmInstance);
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.upgradeVirtualMachine(cmd);
+ } finally {
+ CallContext.unregister();
+ }
- _userVmMgr.upgradeVirtualMachine(cmd);
}
@@ -306,13 +356,20 @@ public class UserVmManagerTest {
doNothing().when(_itMgr).checkIfCanUpgrade(_vmMock, cmd.getServiceOfferingId());
- ServiceOffering so1 = (ServiceOffering) getSvcoffering(512);
- ServiceOffering so2 = (ServiceOffering) getSvcoffering(256);
+ ServiceOffering so1 = getSvcoffering(512);
+ ServiceOffering so2 = getSvcoffering(256);
when(_configMgr.getServiceOffering(anyLong())).thenReturn(so1);
when(_configMgr.getServiceOffering(1L)).thenReturn(so1);
- _userVmMgr.upgradeVirtualMachine(cmd);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, UUID.randomUUID().toString());
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.upgradeVirtualMachine(cmd);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -331,17 +388,13 @@ public class UserVmManagerTest {
serviceOfferingIdField.setAccessible(true);
serviceOfferingIdField.set(cmd, 1L);
- //UserContext.current().setEventDetails("Vm Id: "+getId());
- //Account account = (Account) new AccountVO("testaccount", 1L, "networkdomain", (short) 0, 1);
- //AccountVO(String accountName, long domainId, String networkDomain, short type, int regionId)
- //UserContext.registerContext(1, account, null, true);
when(_vmInstanceDao.findById(anyLong())).thenReturn(_vmInstance);
doReturn(Hypervisor.HypervisorType.XenServer).when(_vmInstance).getHypervisorType();
- ServiceOffering so1 = (ServiceOffering) getSvcoffering(512);
- ServiceOffering so2 = (ServiceOffering) getSvcoffering(256);
+ ServiceOffering so1 = getSvcoffering(512);
+ ServiceOffering so2 = getSvcoffering(256);
when(_configMgr.getServiceOffering(anyLong())).thenReturn(so2);
when(_configMgr.getServiceOffering(1L)).thenReturn(so1);
@@ -354,7 +407,14 @@ public class UserVmManagerTest {
//when(_vmDao.findById(anyLong())).thenReturn(_vmMock);
- _userVmMgr.upgradeVirtualMachine(cmd);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, UUID.randomUUID().toString());
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.upgradeVirtualMachine(cmd);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -380,8 +440,8 @@ public class UserVmManagerTest {
when(_vmInstanceDao.findById(anyLong())).thenReturn(_vmInstance);
doReturn(Hypervisor.HypervisorType.XenServer).when(_vmInstance).getHypervisorType();
- ServiceOffering so1 = (ServiceOffering) getSvcoffering(512);
- ServiceOffering so2 = (ServiceOffering) getSvcoffering(256);
+ ServiceOffering so1 = getSvcoffering(512);
+ ServiceOffering so2 = getSvcoffering(256);
when(_configMgr.getServiceOffering(anyLong())).thenReturn(so2);
when(_configMgr.getServiceOffering(1L)).thenReturn(so1);
@@ -396,7 +456,14 @@ public class UserVmManagerTest {
when(_vmDao.findById(anyLong())).thenReturn(_vmMock);
- _userVmMgr.upgradeVirtualMachine(cmd);
+ Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, UUID.randomUUID().toString());
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+ CallContext.register(user, account);
+ try {
+ _userVmMgr.upgradeVirtualMachine(cmd);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -435,11 +502,17 @@ public class UserVmManagerTest {
domainIdField.set(cmd, 1L);
// caller is of type 0
- Account caller = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0,
+ Account caller = new AccountVO("testaccount", 1, "networkdomain", (short) 0,
UUID.randomUUID().toString());
- UserContext.registerContext(1, caller, null, true);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, caller);
+ try {
_userVmMgr.moveVMToUser(cmd);
+ } finally {
+ CallContext.unregister();
+ }
}
@@ -462,13 +535,13 @@ public class UserVmManagerTest {
domainIdField.set(cmd, 1L);
// caller is of type 0
- Account caller = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 1,
- UUID.randomUUID().toString());
- UserContext.registerContext(1, caller, null, true);
+ Account caller = new AccountVO("testaccount", 1, "networkdomain", (short)1, UUID.randomUUID().toString());
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
- Account oldAccount = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 0,
+ Account oldAccount = new AccountVO("testaccount", 1, "networkdomain", (short) 0,
UUID.randomUUID().toString());
- Account newAccount = (Account) new AccountVO("testaccount", 1, "networkdomain", (short) 1,
+ Account newAccount = new AccountVO("testaccount", 1, "networkdomain", (short) 1,
UUID.randomUUID().toString());
UserVmVO vm = new UserVmVO(10L, "test", "test", 1L, HypervisorType.Any, 1L, false, false, 1L, 1L,
@@ -483,7 +556,12 @@ public class UserVmManagerTest {
doThrow(new PermissionDeniedException("Access check failed")).when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class),
any(Boolean.class), any(ControlledEntity.class));
- _userVmMgr.moveVMToUser(cmd);
+ CallContext.register(user, caller);
+ try {
+ _userVmMgr.moveVMToUser(cmd);
+ } finally {
+ CallContext.unregister();
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11e1e585/server/test/com/cloud/vpc/NetworkACLManagerTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/NetworkACLManagerTest.java b/server/test/com/cloud/vpc/NetworkACLManagerTest.java
index ddcfe7f..446e4e1 100644
--- a/server/test/com/cloud/vpc/NetworkACLManagerTest.java
+++ b/server/test/com/cloud/vpc/NetworkACLManagerTest.java
@@ -15,6 +15,35 @@
package com.cloud.vpc;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.FilterType;
+import org.springframework.core.type.classreading.MetadataReader;
+import org.springframework.core.type.classreading.MetadataReaderFactory;
+import org.springframework.core.type.filter.TypeFilter;
+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.test.utils.SpringUtils;
+
import com.cloud.configuration.ConfigurationManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
@@ -35,32 +64,9 @@ import com.cloud.tags.dao.ResourceTagDao;
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.component.ComponentContext;
import com.cloud.utils.exception.CloudRuntimeException;
-import junit.framework.TestCase;
-import org.apache.cloudstack.test.utils.SpringUtils;
-import org.apache.log4j.Logger;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
-import org.springframework.core.type.classreading.MetadataReader;
-import org.springframework.core.type.classreading.MetadataReaderFactory;
-import org.springframework.core.type.filter.TypeFilter;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
@@ -90,15 +96,24 @@ public class NetworkACLManagerTest extends TestCase{
private static final Logger s_logger = Logger.getLogger( NetworkACLManagerTest.class);
+ @Override
@Before
public void setUp() {
ComponentContext.initComponentsLifeCycle();
Account account = new AccountVO("testaccount", 1, "testdomain", (short) 0, UUID.randomUUID().toString());
- UserContext.registerContext(1, account, null, true);
+ UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+
+ CallContext.register(user, account);
acl = Mockito.mock(NetworkACLVO.class);
aclItem = Mockito.mock(NetworkACLItemVO.class);
}
+ @Override
+ @After
+ public void tearDown() {
+ CallContext.unregister();
+ }
+
@Test
public void testCreateACL() throws Exception {
Mockito.when(_networkACLDao.persist(Mockito.any(NetworkACLVO.class))).thenReturn(acl);