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/06/12 16:18:41 UTC

[1/5] git commit: updated refs/heads/vmsync to d71e358

Updated Branches:
  refs/heads/vmsync b4c6a594e -> d71e358a9


Removed some of the unused code.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/38a30574
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/38a30574
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/38a30574

Branch: refs/heads/vmsync
Commit: 38a30574e912a8e270a0b6c222548d73157b72d9
Parents: b4c6a59
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 11 09:51:51 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 11 09:51:51 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/vm/VirtualMachineManagerImpl.java  | 15 +--------------
 server/src/com/cloud/vm/VmWorkJobDispatcher.java     |  2 +-
 2 files changed, 2 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/38a30574/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 56f066a..409fd62 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -678,8 +678,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     protected Ternary<VMInstanceVO, ReservationContext, VmWorkJobVO> changeToStartState(VirtualMachineGuru vmGuru, VMInstanceVO vm, User caller, Account account)
         throws ConcurrentOperationException {
     	
-        long vmId = vm.getId();
-        
         Ternary<VMInstanceVO, ReservationContext, VmWorkJobVO> result = null;
         Transaction txn = Transaction.currentTxn();
         txn.start();
@@ -1251,7 +1249,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         }
     }
 
-    public void processVmStopWork(String vmUuid, boolean forced) throws AgentUnavailableException,
+    public void orchestrateStop(String vmUuid, boolean forced) throws AgentUnavailableException,
             OperationTimedoutException, ConcurrentOperationException {
         CallContext context = CallContext.current();
         User user = context.getCallingUser();
@@ -1644,8 +1642,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     public VirtualMachine storageMigration(String vmUuid, StoragePool destPool) {
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
 
-        long vmId = vm.getId();
-
         try {
             stateTransitTo(vm, VirtualMachine.Event.StorageMigrationRequested, null);
         } catch (NoTransitionException e) {
@@ -1969,8 +1965,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         DeployDestination destination = new DeployDestination(dc, pod, cluster, destHost);
 
         // Create a map of which volume should go in which storage pool.
-        long vmId = vm.getId();
-        VMInstanceVO vm2 = _vmDao.findById(vmId);
         VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
         volumeToPool = getPoolListForVolumesForMigration(profile, destHost, volumeToPool);
 
@@ -2101,7 +2095,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public boolean migrateAway(VirtualMachine.Type vmType, long vmId, long srcHostId) throws InsufficientServerCapacityException, VirtualMachineMigrationException {
-        VirtualMachineGuru vmGuru = _vmGurus.get(vmType);
         VMInstanceVO vm = _vmDao.findById(vmId);
         if (vm == null) {
             s_logger.debug("Unable to find a VM for " + vmId);
@@ -3026,7 +3019,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         public VMInstanceVO vm;
         public VirtualMachineGuru guru;
 
-        @SuppressWarnings("unchecked")
         public AgentVmInfo(String name, VirtualMachineGuru guru, VMInstanceVO vm, State state, String host) {
             this.name = name;
             this.state = state;
@@ -3221,9 +3213,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             //3) Convert nicProfile to NicTO
             NicTO nicTO = toNicTO(nic, vmProfile.getVirtualMachine().getHypervisorType());
 
-            //4) plug the nic to the vm
-            VirtualMachineGuru vmGuru = getVmGuru(vmVO);
-
             s_logger.debug("Plugging nic for vm " + vm + " in network " + network);
             
             boolean result = false;
@@ -3277,7 +3266,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         DataCenter dc = _configMgr.getZone(network.getDataCenterId());
         Host host = _hostDao.findById(vm.getHostId());
         DeployDestination dest = new DeployDestination(dc, null, null, host);
-        VirtualMachineGuru vmGuru = getVmGuru(vmVO);
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(vmProfile.getVirtualMachine().getHypervisorType());
         VirtualMachineTO vmTO = hvGuru.implement(vmProfile);
 
@@ -3341,7 +3329,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         DataCenter dc = _configMgr.getZone(network.getDataCenterId());
         Host host = _hostDao.findById(vm.getHostId());
         DeployDestination dest = new DeployDestination(dc, null, null, host);
-        VirtualMachineGuru vmGuru = getVmGuru(vmVO);
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(vmProfile.getVirtualMachine().getHypervisorType());
         VirtualMachineTO vmTO = hvGuru.implement(vmProfile);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/38a30574/server/src/com/cloud/vm/VmWorkJobDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VmWorkJobDispatcher.java b/server/src/com/cloud/vm/VmWorkJobDispatcher.java
index 8b04e91..3e6dc0b 100644
--- a/server/src/com/cloud/vm/VmWorkJobDispatcher.java
+++ b/server/src/com/cloud/vm/VmWorkJobDispatcher.java
@@ -72,7 +72,7 @@ public class VmWorkJobDispatcher extends AdapterBase implements AsyncJobDispatch
                 _vmMgr.orchestrateStart(vm.getUuid(), start.getParams(), start.getPlan());
             } else if (cmd.equals(Stop)) {
                 VmWorkStop stop = (VmWorkStop)work;
-                _vmMgr.processVmStopWork(vm.getUuid(), stop.isForceStop());
+                _vmMgr.orchestrateStop(vm.getUuid(), stop.isForceStop());
             }
             _asyncJobMgr.completeAsyncJob(job.getId(), AsyncJobConstants.STATUS_SUCCEEDED, 0, null);
         } catch(Throwable e) {


[4/5] git commit: updated refs/heads/vmsync to d71e358

Posted by ah...@apache.org.
some unfinished cleanup on removing the caller and account


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1310535b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1310535b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1310535b

Branch: refs/heads/vmsync
Commit: 1310535be5345636cccc60bae251c8e782da39b1
Parents: 33dfe4f
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 11 16:45:18 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 11 16:45:18 2013 -0700

----------------------------------------------------------------------
 .../components-api/src/com/cloud/vm/VirtualMachineManager.java | 5 ++---
 server/src/com/cloud/vm/UserVmManagerImpl.java                 | 4 +---
 server/src/com/cloud/vm/VirtualMachineManagerImpl.java         | 6 +++---
 .../test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java | 6 ++----
 4 files changed, 8 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1310535b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
index 1a647e1..5e5c3e9 100644
--- a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
+++ b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
@@ -42,7 +42,6 @@ import com.cloud.storage.StoragePool;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.Volume;
 import com.cloud.user.Account;
-import com.cloud.user.User;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.Manager;
 import com.cloud.utils.fsm.NoTransitionException;
@@ -125,9 +124,9 @@ public interface VirtualMachineManager extends Manager {
     VirtualMachine migrateWithStorage(String vmUuid, long srcId, long destId, Map<Volume, StoragePool> volumeToPool) throws ResourceUnavailableException,
             ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException;
 
-    void reboot(String vmUuid, User caller, Account account);
+    void reboot(String vmUuid);
 
-    void advanceReboot(String vmUuid, User caller, Account account) throws InsufficientCapacityException,
+    void advanceReboot(String vmUuid) throws InsufficientCapacityException,
             ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException;
 
     VirtualMachine storageMigration(String vmUuid, StoragePool storagePoolId);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1310535b/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 e248c43..7a79fc6 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -740,8 +740,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
 
     private UserVm rebootVirtualMachine(long userId, long vmId) {
         UserVmVO vm = _vmDao.findById(vmId);
-        User caller = _accountMgr.getActiveUser(userId);
-        Account owner = _accountMgr.getAccount(vm.getAccountId());
 
         if (vm == null || vm.getState() == State.Destroyed
                 || vm.getState() == State.Expunging || vm.getRemoved() != null) {
@@ -751,7 +749,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
 
         if (vm.getState() == State.Running && vm.getHostId() != null) {
             collectVmDiskStatistics(vm);
-            _itMgr.reboot(vm.getUuid(), caller, owner);
+            _itMgr.reboot(vm.getUuid());
             return _vmDao.findById(vmId);
         } else {
             s_logger.error("Vm id=" + vmId

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1310535b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index d1a557d..57c6852 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -2145,9 +2145,9 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void reboot(String vmUuid, User caller, Account account) {
+    public void reboot(String vmUuid) {
         try {
-            advanceReboot(vmUuid, caller, account);
+            advanceReboot(vmUuid);
         } catch (ConcurrentOperationException e) {
             throw new CloudRuntimeException("Unable to reboot a VM due to concurrent operation", e).add(VirtualMachine.class, vmUuid);
         } catch (InsufficientCapacityException e) {
@@ -2160,7 +2160,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void advanceReboot(String vmUuid, User caller, Account account) throws InsufficientCapacityException,
+    public void advanceReboot(String vmUuid) throws InsufficientCapacityException,
             ConcurrentOperationException, ResourceUnavailableException, OperationTimedoutException {
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
         if (vm.getHostId() == null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1310535b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
index 80fe930..77b9268 100644
--- a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
+++ b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
@@ -52,7 +52,6 @@ import com.cloud.storage.StoragePool;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.Volume;
 import com.cloud.user.Account;
-import com.cloud.user.User;
 import com.cloud.utils.Pair;
 import com.cloud.utils.fsm.NoTransitionException;
 import com.cloud.vm.VirtualMachine.Event;
@@ -230,13 +229,12 @@ public class VmWorkMockVirtualMachineManagerImpl implements VirtualMachineManage
 	}
 
 	@Override
-    public void reboot(String vmUuid,
-            User caller, Account account) {
+    public void reboot(String vmUuid) {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public void advanceReboot(String vmUuid, User caller, Account account)
+    public void advanceReboot(String vmUuid)
 			throws InsufficientCapacityException, ResourceUnavailableException,
 			ConcurrentOperationException, OperationTimedoutException {
 		// TODO Auto-generated method stub


[5/5] git commit: updated refs/heads/vmsync to d71e358

Posted by ah...@apache.org.
Removed unused methods


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d71e358a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d71e358a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d71e358a

Branch: refs/heads/vmsync
Commit: d71e358a9fd4bcd7c663eba21111a21693db1e4a
Parents: 1310535
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 11 16:49:49 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 11 16:49:49 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/vm/VirtualMachineManager.java           |  7 -------
 server/src/com/cloud/vm/VirtualMachineManagerImpl.java    | 10 +---------
 2 files changed, 1 insertion(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d71e358a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
index 5e5c3e9..83ec485 100644
--- a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
+++ b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
@@ -17,7 +17,6 @@
 package com.cloud.vm;
 
 import java.net.URI;
-import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -96,12 +95,6 @@ public interface VirtualMachineManager extends Manager {
 
     void registerGuru(VirtualMachine.Type type, VirtualMachineGuru guru);
     
-    // FIXME: This method is added by VirtualMachinePowerStateSyncImpl
-    Collection<VirtualMachineGuru> getRegisteredGurus();
-
-    // FIXME: Apparently this method is added by Kelven for VmWorkJobDispatcher.  Should look into removing this.
-    VirtualMachineGuru getVmGuru(VirtualMachine vm);
-    
     boolean stateTransitTo(VMInstanceVO vm, VirtualMachine.Event e, Long hostId) throws NoTransitionException;
 
     void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, DeploymentPlan planToDeploy)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d71e358a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 57c6852..f04a589 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -282,15 +282,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         }
     }
     
-    @Override
-    public Collection<VirtualMachineGuru> getRegisteredGurus() {
-    	synchronized(_vmGurus) {
-    		return _vmGurus.values();
-    	}
-    }
-
-    @Override
-    public VirtualMachineGuru getVmGuru(VirtualMachine vm) {
+    private VirtualMachineGuru getVmGuru(VirtualMachine vm) {
         return _vmGurus.get(vm.getType());
     }
 


[2/5] git commit: updated refs/heads/vmsync to d71e358

Posted by ah...@apache.org.
Removed unused stuff from virtualmachinemanager


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ad1c82fd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ad1c82fd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ad1c82fd

Branch: refs/heads/vmsync
Commit: ad1c82fdda2a97f6d0bb764b37f42ae9f9fd2c8d
Parents: 38a3057
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 11 13:15:23 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 11 13:15:23 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/storage/VolumeManager.java    |   6 +-
 .../src/com/cloud/vm/VirtualMachineManager.java |   6 +-
 .../engine/vm/VirtualMachineOrchestrator.java   |   2 +-
 .../com/cloud/vm/VirtualMachineProfileImpl.java |  29 +-
 .../com/cloud/storage/VolumeManagerImpl.java    |   9 +-
 .../vm/ClusteredVirtualMachineManagerImpl.java  |   7 +-
 .../com/cloud/vm/ReservationContextImpl.java    |  22 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java  |   2 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java | 182 +++-------
 .../async/MockVirtualMachineManagerImpl.java    | 361 -------------------
 .../cloud/vm/VirtualMachineManagerImplTest.java |  21 +-
 .../vm/VmWorkMockVirtualMachineManagerImpl.java |   5 +-
 12 files changed, 102 insertions(+), 550 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/engine/components-api/src/com/cloud/storage/VolumeManager.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/storage/VolumeManager.java b/engine/components-api/src/com/cloud/storage/VolumeManager.java
index c2e5bdc..36fd75b 100644
--- a/engine/components-api/src/com/cloud/storage/VolumeManager.java
+++ b/engine/components-api/src/com/cloud/storage/VolumeManager.java
@@ -27,7 +27,6 @@ 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.UploadVolumeCmd;
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.deploy.DeployDestination;
@@ -41,6 +40,7 @@ import com.cloud.storage.Volume.Type;
 import com.cloud.user.Account;
 import com.cloud.vm.DiskProfile;
 import com.cloud.vm.VMInstanceVO;
+import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 
 public interface VolumeManager extends VolumeApiService {
@@ -92,8 +92,8 @@ public interface VolumeManager extends VolumeApiService {
     @Override
     Volume migrateVolume(MigrateVolumeCmd cmd);
 
-    <T extends VMInstanceVO> void migrateVolumes(T vm, VirtualMachineTO vmTo, Host srcHost, Host destHost,
-            Map<VolumeVO, StoragePoolVO> volumeToPool);
+    void migrateVolumes(VirtualMachine vm, VirtualMachineTO vmTo, Host srcHost, Host destHost,
+            Map<Volume, StoragePool> volumeToPool);
 
     boolean storageMigration(
             VirtualMachineProfile vm,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
index 922a1f4..70142d5 100644
--- a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
+++ b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
@@ -21,8 +21,6 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-
 import com.cloud.agent.api.to.NicTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.deploy.DeployDestination;
@@ -42,7 +40,7 @@ import com.cloud.service.ServiceOfferingVO;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.StoragePool;
 import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.VolumeVO;
+import com.cloud.storage.Volume;
 import com.cloud.user.Account;
 import com.cloud.user.User;
 import com.cloud.utils.Pair;
@@ -127,7 +125,7 @@ public interface VirtualMachineManager extends Manager {
     VirtualMachine migrate(String vmUuid, long srcHostId, DeployDestination dest) throws ResourceUnavailableException, ConcurrentOperationException, ManagementServerException,
             VirtualMachineMigrationException;
 
-    VirtualMachine migrateWithStorage(String vmUuid, long srcId, long destId, Map<VolumeVO, StoragePoolVO> volumeToPool) throws ResourceUnavailableException,
+    VirtualMachine migrateWithStorage(String vmUuid, long srcId, long destId, Map<Volume, StoragePool> volumeToPool) throws ResourceUnavailableException,
             ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException;
 
     void reboot(String vmUuid, User caller, Account account);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/engine/orchestration/src/org/apache/cloudstack/engine/vm/VirtualMachineOrchestrator.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/vm/VirtualMachineOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/vm/VirtualMachineOrchestrator.java
index 43e34e4..1c5356e 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/vm/VirtualMachineOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/vm/VirtualMachineOrchestrator.java
@@ -347,7 +347,7 @@ public class VirtualMachineOrchestrator extends ManagerBase {
         _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Vm-Operations-Cleanup"));
 
 //        ReservationContextImpl.setComponents(_userDao, _domainDao, _accountDao);
-        VirtualMachineProfileImpl.setComponents(_offeringDao, _templateDao, _accountDao);
+        VirtualMachineProfileImpl.setComponents(_entityMgr);
         VirtualMachineEntityImpl2.init(_entityMgr, this, _networkOrchestrator, _storageOrchestrator);
 
         return true;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/engine/schema/src/com/cloud/vm/VirtualMachineProfileImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/VirtualMachineProfileImpl.java b/engine/schema/src/com/cloud/vm/VirtualMachineProfileImpl.java
index 4f1bd5f..5805c03 100644
--- a/engine/schema/src/com/cloud/vm/VirtualMachineProfileImpl.java
+++ b/engine/schema/src/com/cloud/vm/VirtualMachineProfileImpl.java
@@ -22,16 +22,15 @@ import java.util.List;
 import java.util.Map;
 
 import com.cloud.agent.api.to.VolumeTO;
+import com.cloud.dao.EntityManager;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.offering.ServiceOffering;
 import com.cloud.service.ServiceOfferingVO;
-import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.template.VirtualMachineTemplate.BootloaderType;
 import com.cloud.user.Account;
-import com.cloud.user.dao.AccountDao;
+import com.cloud.user.AccountVO;
 
 /**
  * Implementation of VirtualMachineProfile.
@@ -59,6 +58,9 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
         _offering = offering;
         _params = params;
         _owner = owner;
+        if (_owner == null) {
+            _owner = s_entityMgr.findById(AccountVO.class, vm.getAccountId());
+        }
         if (_params == null) {
             _params = new HashMap<Param, Object>();
         }
@@ -70,10 +72,6 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
         this(vm, null, null, null, null);
     }
     
-    public VirtualMachineProfileImpl(VirtualMachine.Type type) {
-        _type = type;
-    }
-    
     @Override
     public String toString() {
         return _vm.toString();
@@ -87,7 +85,7 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
     @Override
     public ServiceOffering getServiceOffering() {
         if (_offering == null) {
-            _offering = s_offeringDao.findByIdIncludingRemoved(_vm.getServiceOfferingId());
+            _offering = s_entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, _vm.getServiceOfferingId());
         }
         return _offering;
     }
@@ -105,7 +103,7 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
     @Override
     public VirtualMachineTemplate getTemplate() {
         if (_template == null && _vm != null) {
-            _template = s_templateDao.findByIdIncludingRemoved(_vm.getTemplateId());
+            _template = s_entityMgr.findByIdIncludingRemoved(VMTemplateVO.class, _vm.getTemplateId());
         }
         return _template;
     }
@@ -182,9 +180,6 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
     
     @Override
     public Account getOwner() {
-        if (_owner == null) {
-            _owner = s_accountDao.findByIdIncludingRemoved(_vm.getAccountId());
-        }
         return _owner;
     }
     
@@ -193,14 +188,10 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
         return _bootArgs.toString();
     }
     
-    static ServiceOfferingDao s_offeringDao;
-    static VMTemplateDao s_templateDao;
-    static AccountDao s_accountDao;
+    static EntityManager s_entityMgr;
 
-    public static void setComponents(ServiceOfferingDao offeringDao, VMTemplateDao templateDao, AccountDao accountDao) {
-        s_offeringDao = offeringDao;
-        s_templateDao = templateDao;
-        s_accountDao = accountDao;
+    public static void setComponents(EntityManager entityMgr) {
+        s_entityMgr = entityMgr;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/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 b75f461..9d3f4df 100644
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@ -2154,15 +2154,14 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
     }
 
     @Override
-    public <T extends VMInstanceVO> void migrateVolumes(T vm, VirtualMachineTO vmTo, Host srcHost, Host destHost,
-            Map<VolumeVO, StoragePoolVO> volumeToPool) {
+    public void migrateVolumes(VirtualMachine vm, VirtualMachineTO vmTo, Host srcHost, Host destHost, Map<Volume, StoragePool> volumeToPool) {
         // Check if all the vms being migrated belong to the vm.
         // Check if the storage pool is of the right type.
         // Create a VolumeInfo to DataStore map too.
         Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>();
-        for (Map.Entry<VolumeVO, StoragePoolVO> entry : volumeToPool.entrySet()) {
-            VolumeVO volume = entry.getKey();
-            StoragePoolVO storagePool = entry.getValue();
+        for (Map.Entry<Volume, StoragePool> entry : volumeToPool.entrySet()) {
+            Volume volume = entry.getKey();
+            StoragePool storagePool = entry.getValue();
             StoragePool destPool = (StoragePool)dataStoreMgr.getDataStore(storagePool.getId(),
                     DataStoreRole.Primary);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java b/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
index 42ff5d4..8f84055 100644
--- a/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/ClusteredVirtualMachineManagerImpl.java
@@ -20,16 +20,17 @@ import java.util.List;
 import java.util.Map;
 
 import javax.ejb.Local;
+import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-
+import com.cloud.cluster.ClusterManager;
 import com.cloud.cluster.ClusterManagerListener;
 import com.cloud.cluster.ManagementServerHostVO;
 
 @Local(value=VirtualMachineManager.class)
 public class ClusteredVirtualMachineManagerImpl extends VirtualMachineManagerImpl implements ClusterManagerListener {
+    @Inject
+    ClusterManager _clusterMgr;
 
     protected ClusteredVirtualMachineManagerImpl() {
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/src/com/cloud/vm/ReservationContextImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/ReservationContextImpl.java b/server/src/com/cloud/vm/ReservationContextImpl.java
index f187f2b..cab93b4 100644
--- a/server/src/com/cloud/vm/ReservationContextImpl.java
+++ b/server/src/com/cloud/vm/ReservationContextImpl.java
@@ -16,12 +16,11 @@
 // under the License.
 package com.cloud.vm;
 
+import com.cloud.dao.EntityManager;
 import com.cloud.domain.Domain;
-import com.cloud.domain.dao.DomainDao;
+import com.cloud.domain.DomainVO;
 import com.cloud.user.Account;
 import com.cloud.user.User;
-import com.cloud.user.dao.AccountDao;
-import com.cloud.user.dao.UserDao;
 import com.cloud.utils.Journal;
 
 public class ReservationContextImpl implements ReservationContext {
@@ -65,17 +64,14 @@ public class ReservationContextImpl implements ReservationContext {
 
     @Override
     public Account getAccount() {
-        if (_account == null) {
-            _account = s_accountDao.findByIdIncludingRemoved(_caller.getId());
-        }
-        return _account; 
+        return _account;
     }
 
     @Override
     public Domain getDomain() {
         if (_domain == null) {
             getAccount();
-            _domain = s_domainDao.findByIdIncludingRemoved(_account.getDomainId());
+            _domain = s_entityMgr.findById(DomainVO.class, _account.getDomainId());
         }
         return _domain;
     }
@@ -90,13 +86,9 @@ public class ReservationContextImpl implements ReservationContext {
         return _reservationId;
     }
     
-    static UserDao s_userDao;
-    static DomainDao s_domainDao;
-    static AccountDao s_accountDao;
+    static EntityManager s_entityMgr;
     
-    static public void setComponents(UserDao userDao, DomainDao domainDao, AccountDao accountDao) {
-        s_userDao = userDao;
-        s_domainDao = domainDao;
-        s_accountDao = accountDao;
+    static public void setComponents(EntityManager entityMgr) {
+        s_entityMgr = entityMgr;
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/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 6b840a9..8378fdd 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -3992,7 +3992,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
         }
 
         List<VolumeVO> vmVolumes = _volsDao.findUsableVolumesForInstance(vm.getId());
-        Map<VolumeVO, StoragePoolVO> volToPoolObjectMap = new HashMap<VolumeVO, StoragePoolVO>();
+        Map<Volume, StoragePool> volToPoolObjectMap = new HashMap<Volume, StoragePool>();
         if (!isVMUsingLocalStorage(vm) && destinationHost.getClusterId().equals(srcHost.getClusterId())) {
             if (volumeToPool.isEmpty()) {
                 // If the destination host is in the same cluster and volumes do not have to be migrated across pools

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 409fd62..e42427b 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -38,12 +38,10 @@ import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
 import org.apache.cloudstack.framework.jobs.AsyncJobConstants;
 import org.apache.cloudstack.framework.jobs.AsyncJobManager;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.messagebus.TopicConstants;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
 import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
@@ -79,27 +77,23 @@ import com.cloud.agent.manager.allocator.HostAllocator;
 import com.cloud.alert.AlertManager;
 import com.cloud.api.ApiSerializerHelper;
 import com.cloud.async.AsyncJobExecutionContext;
-import com.cloud.capacity.CapacityManager;
-import com.cloud.cluster.ClusterManager;
+import com.cloud.cluster.ManagementServerNode;
 import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dao.EntityManager;
 import com.cloud.dc.ClusterDetailsDao;
 import com.cloud.dc.ClusterDetailsVO;
+import com.cloud.dc.ClusterVO;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
-import com.cloud.dc.dao.ClusterDao;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.dc.dao.HostPodDao;
 import com.cloud.deploy.DataCenterDeployment;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.deploy.DeploymentPlan;
 import com.cloud.deploy.DeploymentPlanner;
 import com.cloud.deploy.DeploymentPlanner.ExcludeList;
 import com.cloud.deploy.DeploymentPlanningManager;
-import com.cloud.domain.dao.DomainDao;
 import com.cloud.event.EventTypes;
 import com.cloud.event.UsageEventUtils;
 import com.cloud.exception.AffinityConflictException;
@@ -127,14 +121,12 @@ import com.cloud.hypervisor.HypervisorGuruManager;
 import com.cloud.network.Network;
 import com.cloud.network.NetworkManager;
 import com.cloud.network.NetworkModel;
-import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.NetworkVO;
 import com.cloud.network.rules.RulesManager;
 import com.cloud.offering.ServiceOffering;
 import com.cloud.org.Cluster;
 import com.cloud.resource.ResourceManager;
 import com.cloud.service.ServiceOfferingVO;
-import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.StorageManager;
@@ -144,19 +136,11 @@ import com.cloud.storage.Volume;
 import com.cloud.storage.Volume.Type;
 import com.cloud.storage.VolumeManager;
 import com.cloud.storage.VolumeVO;
-import com.cloud.storage.dao.DiskOfferingDao;
-import com.cloud.storage.dao.GuestOSCategoryDao;
-import com.cloud.storage.dao.GuestOSDao;
 import com.cloud.storage.dao.StoragePoolHostDao;
-import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.snapshot.SnapshotManager;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
-import com.cloud.user.ResourceLimitService;
 import com.cloud.user.User;
-import com.cloud.user.dao.AccountDao;
-import com.cloud.user.dao.UserDao;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.Journal;
 import com.cloud.utils.NumbersUtil;
@@ -178,11 +162,9 @@ import com.cloud.vm.VirtualMachine.Event;
 import com.cloud.vm.VirtualMachine.PowerState;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.dao.NicDao;
-import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.VMSnapshotManager;
-import com.cloud.vm.snapshot.dao.VMSnapshotDao;
 
 @Local(value = VirtualMachineManager.class)
 public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMachineManager, Listener {
@@ -194,7 +176,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     @Inject
     protected StorageManager _storageMgr;
     @Inject
-    DataStoreManager dataStoreMgr;
+    DataStoreManager _dataStoreMgr;
     @Inject
     protected NetworkManager _networkMgr;
     @Inject
@@ -203,31 +185,12 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     protected AgentManager _agentMgr;
     @Inject
     protected VMInstanceDao _vmDao;
-    @Inject
-    protected ServiceOfferingDao _offeringDao;
-    @Inject
-    protected DiskOfferingDao _diskOfferingDao;
-    @Inject
-    protected VMTemplateDao _templateDao;
-    @Inject
-    protected UserDao _userDao;
-    @Inject
-    protected AccountDao _accountDao;
-    @Inject
-    protected DomainDao _domainDao;
-    @Inject
-    protected ClusterManager _clusterMgr;
-   
 /*
     @Inject
     protected ItWorkDao _workDao;
 */
     
     @Inject
-    protected UserVmDao _userVmDao;
-    @Inject
-    protected CapacityManager _capacityMgr;
-    @Inject
     protected NicDao _nicsDao;
     @Inject
     protected AccountManager _accountMgr;
@@ -236,36 +199,16 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     @Inject
     protected AlertManager _alertMgr;
     @Inject
-    protected GuestOSCategoryDao _guestOsCategoryDao;
-    @Inject
-    protected GuestOSDao _guestOsDao;
-    @Inject
     protected VolumeDao _volsDao;
     @Inject
     protected ConfigurationManager _configMgr;
     @Inject
     protected HighAvailabilityManager _haMgr;
     @Inject
-    protected HostPodDao _podDao;
-    @Inject
-    protected DataCenterDao _dcDao;
-    @Inject
-    protected ClusterDao _clusterDao;
-    @Inject
-    protected PrimaryDataStoreDao _storagePoolDao;
-    @Inject
     protected HypervisorGuruManager _hvGuruMgr;
     @Inject
-    protected NetworkDao _networkDao;
-    @Inject
     protected StoragePoolHostDao _poolHostDao;
     @Inject
-    protected VMSnapshotDao _vmSnapshotDao;
-    @Inject
-    protected VolumeDataFactory volFactory;
-    @Inject
-    protected ResourceLimitService _resourceLimitMgr;
-    @Inject
     protected RulesManager rulesMgr;
     @Inject
     protected AffinityGroupVMMapDao _affinityGroupVMMapDao;
@@ -276,8 +219,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         return _planners;
     }
 
-    public void setPlanners(List<DeploymentPlanner> _planners) {
-        this._planners = _planners;
+    public void setPlanners(List<DeploymentPlanner> planners) {
+        _planners = planners;
     }
 
     protected List<HostAllocator> _hostAllocators;
@@ -286,8 +229,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         return _hostAllocators;
     }
 
-    public void setHostAllocators(List<HostAllocator> _hostAllocators) {
-        this._hostAllocators = _hostAllocators;
+    public void setHostAllocators(List<HostAllocator> hostAllocators) {
+        _hostAllocators = hostAllocators;
     }
 
 	@Inject
@@ -297,9 +240,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     protected ResourceManager _resourceMgr;
     
     @Inject
-    protected SnapshotManager _snapshotMgr;
-
-    @Inject
     protected VMSnapshotManager _vmSnapshotMgr = null;
     @Inject
     protected ClusterDetailsDao  _clusterDetailsDao;
@@ -309,7 +249,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     @Inject
     protected ConfigurationDao _configDao;
     @Inject
-    VolumeManager volumeMgr;
+    VolumeManager _volumeMgr;
     
     @Inject protected MessageBus _messageBus;
     @Inject protected VirtualMachinePowerStateSync _syncMgr;
@@ -398,15 +338,15 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         }
 
         if (template.getFormat() == ImageFormat.ISO) {
-            volumeMgr.allocateRawVolume(Type.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), rootDiskOffering.second(), vm, owner);
+            _volumeMgr.allocateRawVolume(Type.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), rootDiskOffering.second(), vm, owner);
         } else if (template.getFormat() == ImageFormat.BAREMETAL) {
             // Do nothing
         } else {
-            volumeMgr.allocateTemplatedVolume(Type.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), template, vm, owner);
+            _volumeMgr.allocateTemplatedVolume(Type.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), template, vm, owner);
         }
 
         for (Pair<DiskOfferingVO, Long> offering : dataDiskOfferings) {
-            volumeMgr.allocateRawVolume(Type.DATADISK, "DATA-" + vm.getId(), offering.first(), offering.second(), vm, owner);
+            _volumeMgr.allocateRawVolume(Type.DATADISK, "DATA-" + vm.getId(), offering.first(), offering.second(), vm, owner);
         }
 
         txn.commit();
@@ -466,7 +406,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         s_logger.debug("Cleaning up NICS");
         _networkMgr.cleanupNics(profile);
         // Clean up volumes based on the vm's instance id
-        volumeMgr.cleanupVolumes(vm.getId());
+        _volumeMgr.cleanupVolumes(vm.getId());
 
         VirtualMachineGuru guru = getVmGuru(vm);
         guru.finalizeExpunge(vm);
@@ -521,8 +461,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
         _retry = NumbersUtil.parseInt(params.get(Config.StartRetry.key()), 10);
 
-        ReservationContextImpl.setComponents(_userDao, _domainDao, _accountDao);
-        VirtualMachineProfileImpl.setComponents(_offeringDao, _templateDao, _accountDao);
+        ReservationContextImpl.setComponents(_entityMgr);
+        VirtualMachineProfileImpl.setComponents(_entityMgr);
 
         _cancelWait = NumbersUtil.parseLong(params.get(Config.VmOpCancelInterval.key()), 3600);
         _cleanupWait = NumbersUtil.parseLong(params.get(Config.VmOpCleanupWait.key()), 3600);
@@ -533,7 +473,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         _forceStop = Boolean.parseBoolean(params.get(Config.VmDestroyForcestop.key()));
 
         _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Vm-Operations-Cleanup"));
-        _nodeId = _clusterMgr.getManagementNodeId();
+        _nodeId = ManagementServerNode.getManagementServerId();
 
         _agentMgr.registerForHostEvents(this, true, true, true);
         
@@ -849,7 +789,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 job.log(s_logger, "Recreating" + vol + " of " + vm + " because its template has changed.");
                 plan.setPoolId(null);
             } else {
-                StoragePool pool = (StoragePool)dataStoreMgr.getPrimaryDataStore(vol.getPoolId());
+                StoragePool pool = (StoragePool)_dataStoreMgr.getPrimaryDataStore(vol.getPoolId());
                 Long rootVolPodId = pool.getPodId();
                 Long rootVolClusterId = pool.getClusterId();
                 Long clusterIdSpecified = plan.getClusterId();
@@ -921,8 +861,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         VmWorkJobVO work = start.third();
 
         VMInstanceVO startedVm = null;
-        ServiceOfferingVO offering = _offeringDao.findById(vm.getServiceOfferingId());
-        VMTemplateVO template = _templateDao.findById(vm.getTemplateId());
+        ServiceOfferingVO offering = _entityMgr.findById(ServiceOfferingVO.class, vm.getServiceOfferingId());
+        VMTemplateVO template = _entityMgr.findById(VMTemplateVO.class, vm.getTemplateId());
 
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(vm.getHypervisorType());
 
@@ -954,7 +894,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
                 try {
                     _networkMgr.prepare(vmProfile, dest, reservation);
-                    volumeMgr.prepare(vmProfile, dest);
+                    _volumeMgr.prepare(vmProfile, dest);
 
                     reuseVolume = true;
 
@@ -1168,7 +1108,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             s_logger.warn("Unable to release some network resources.", e);
         }
 
-        volumeMgr.release(profile);
+        _volumeMgr.release(profile);
         s_logger.debug("Successfully cleanued up resources for the vm " + vm + " in " + state + " state");
         return true;
     }
@@ -1366,7 +1306,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
         try {
             if (vm.getHypervisorType() != HypervisorType.BareMetal) {
-                volumeMgr.release(profile);
+                _volumeMgr.release(profile);
                 s_logger.debug("Successfully released storage resources for the vm " + vm);
             }
         } catch (Exception e) {
@@ -1652,7 +1592,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
         boolean migrationResult = false;
         try {
-            migrationResult = volumeMgr.storageMigration(profile, destPool);
+            migrationResult = _volumeMgr.storageMigration(profile, destPool);
 
             if (migrationResult) {
                 //if the vm is migrated to different pod in basic mode, need to reallocate ip
@@ -1861,24 +1801,23 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         */
     }
 
-    private Map<VolumeVO, StoragePoolVO> getPoolListForVolumesForMigration(VirtualMachineProfile profile,
-            Host host, Map<VolumeVO, StoragePoolVO> volumeToPool) {
+    private void filterPoolListForVolumesForMigration(VirtualMachineProfile profile, Host host, Map<Volume, StoragePool> volumeToPool) {
         List<VolumeVO> allVolumes = _volsDao.findUsableVolumesForInstance(profile.getId());
         for (VolumeVO volume : allVolumes) {
-            StoragePoolVO pool = volumeToPool.get(volume);
-            DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId());
-            StoragePoolVO currentPool = _storagePoolDao.findById(volume.getPoolId());
-            if (pool != null) {
+            StoragePool dstPool = volumeToPool.get(volume);
+            DiskOfferingVO diskOffering = _entityMgr.findById(DiskOfferingVO.class, volume.getDiskOfferingId());
+            StoragePoolVO srcPool = _entityMgr.findById(StoragePoolVO.class, volume.getPoolId());
+            if (dstPool != null) {
                 // Check if pool is accessible from the destination host and disk offering with which the volume was
                 // created is compliant with the pool type.
-                if (_poolHostDao.findByPoolHost(pool.getId(), host.getId()) == null ||
-                        pool.isLocal() != diskOffering.getUseLocalStorage()) {
+                if (_poolHostDao.findByPoolHost(dstPool.getId(), host.getId()) == null ||
+                        dstPool.isLocal() != diskOffering.getUseLocalStorage()) {
                     // Cannot find a pool for the volume. Throw an exception.
-                    throw new CloudRuntimeException("Cannot migrate volume " + volume + " to storage pool " + pool +
+                    throw new CloudRuntimeException("Cannot migrate volume " + volume + " to storage pool " + dstPool +
                             " while migrating vm to host " + host + ". Either the pool is not accessible from the " +
                             "host or because of the offering with which the volume is created it cannot be placed on " +
                             "the given pool.");
-                } else if (pool.getId() == currentPool.getId()){
+                } else if (dstPool.getId() == srcPool.getId()){
                     // If the pool to migrate too is the same as current pool, remove the volume from the list of
                     // volumes to be migrated.
                     volumeToPool.remove(volume);
@@ -1898,10 +1837,10 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                         // Volume needs to be migrated. Pick the first pool from the list. Add a mapping to migrate the
                         // volume to a pool only if it is required; that is the current pool on which the volume resides
                         // is not available on the destination host.
-                        if (poolList.contains(currentPool)) {
+                        if (poolList.contains(srcPool)) {
                             currentPoolAvailable = true;
                         } else {
-                            volumeToPool.put(volume, _storagePoolDao.findByUuid(poolList.get(0).getUuid()));
+                            volumeToPool.put(volume, poolList.get(0));
                         }
 
                         break;
@@ -1916,8 +1855,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 }
             }
         }
-
-        return volumeToPool;
     }
 
     private void moveVmToMigratingState(VMInstanceVO vm, Long hostId, VmWorkJobVO work)
@@ -1950,23 +1887,23 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public VirtualMachine migrateWithStorage(String vmUuid, long srcHostId, long destHostId,
-            Map<VolumeVO, StoragePoolVO> volumeToPool) throws ResourceUnavailableException, ConcurrentOperationException,
+            Map<Volume, StoragePool> volumeToPool) throws ResourceUnavailableException, ConcurrentOperationException,
             ManagementServerException, VirtualMachineMigrationException {
         CallContext context = CallContext.current();
 
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
-        HostVO srcHost = _hostDao.findById(srcHostId);
-        HostVO destHost = _hostDao.findById(destHostId);
+        HostVO srcHost = _entityMgr.findById(HostVO.class, srcHostId);
+        HostVO destHost = _entityMgr.findById(HostVO.class, destHostId);
         VirtualMachineGuru vmGuru = getVmGuru(vm);
 
-        DataCenterVO dc = _dcDao.findById(destHost.getDataCenterId());
-        HostPodVO pod = _podDao.findById(destHost.getPodId());
-        Cluster cluster = _clusterDao.findById(destHost.getClusterId());
+        DataCenterVO dc = _entityMgr.findById(DataCenterVO.class, destHost.getDataCenterId());
+        HostPodVO pod = _entityMgr.findById(HostPodVO.class, destHost.getPodId());
+        Cluster cluster = _entityMgr.findById(ClusterVO.class, destHost.getClusterId());
         DeployDestination destination = new DeployDestination(dc, pod, cluster, destHost);
 
         // Create a map of which volume should go in which storage pool.
         VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
-        volumeToPool = getPoolListForVolumesForMigration(profile, destHost, volumeToPool);
+        filterPoolListForVolumesForMigration(profile, destHost, volumeToPool);
 
         // If none of the volumes have to be migrated, fail the call. Administrator needs to make a call for migrating
         // a vm and not migrating a vm with storage.
@@ -1983,7 +1920,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         }
 
         _networkMgr.prepareNicForMigration(profile, destination);
-        volumeMgr.prepareForMigration(profile, destination);
+        _volumeMgr.prepareForMigration(profile, destination);
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(vm.getHypervisorType());
         VirtualMachineTO to = hvGuru.implement(profile);
 
@@ -2001,7 +1938,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         boolean migrated = false;
         try {
             // Migrate the vm and its volume.
-            volumeMgr.migrateVolumes(vm, to, srcHost, destHost, volumeToPool);
+            _volumeMgr.migrateVolumes(vm, to, srcHost, destHost, volumeToPool);
 
             // Put the vm back to running state.
             moveVmOutofMigratingStateOnSuccess(vm, destHost.getId(), work);
@@ -2050,7 +1987,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(profile.getVirtualMachine().getHypervisorType());
         VirtualMachineTO to = hvGuru.implement(profile);
         return to;
-    	}
+    }
 
     protected void cancelWorkItems(long nodeId) {
         /*
@@ -2095,6 +2032,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public boolean migrateAway(VirtualMachine.Type vmType, long vmId, long srcHostId) throws InsufficientServerCapacityException, VirtualMachineMigrationException {
+        CallContext cc = CallContext.current();
         VMInstanceVO vm = _vmDao.findById(vmId);
         if (vm == null) {
             s_logger.debug("Unable to find a VM for " + vmId);
@@ -2160,7 +2098,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 return true;
             }
             try {
-                advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                advanceStop(vm.getUuid(), true, cc.getCallingUser(), cc.getCallingAccount());
                 return true;
             } catch (ResourceUnavailableException e) {
                 s_logger.debug("Unable to stop VM due to " + e.getMessage());
@@ -3038,7 +2976,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public void checkIfCanUpgrade(VirtualMachine vmInstance, long newServiceOfferingId) {
-        ServiceOfferingVO newServiceOffering = _offeringDao.findById(newServiceOfferingId);
+        ServiceOfferingVO newServiceOffering = _entityMgr.findById(ServiceOfferingVO.class, newServiceOfferingId);
         if (newServiceOffering == null) {
             throw new InvalidParameterValueException("Unable to find a service offering with id " + newServiceOfferingId);
         }
@@ -3061,7 +2999,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                     "has the requested service offering (" + newServiceOffering.getName() + ")");
         }
 
-        ServiceOfferingVO currentServiceOffering = _offeringDao.findByIdIncludingRemoved(vmInstance.getServiceOfferingId());
+        ServiceOfferingVO currentServiceOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, vmInstance.getServiceOfferingId());
 
         // Check that the service offering being upgraded to has the same Guest IP type as the VM's current service offering
         // NOTE: With the new network refactoring in 2.2, we shouldn't need the check for same guest IP type anymore.
@@ -3183,19 +3121,13 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     @Override
     public NicProfile addVmToNetwork(VirtualMachine vm, Network network, NicProfile requested) throws ConcurrentOperationException,
     ResourceUnavailableException, InsufficientCapacityException {
+        CallContext cc = CallContext.current();
 
         s_logger.debug("Adding vm " + vm + " to network " + network + "; requested nic profile " + requested);
-        VMInstanceVO vmVO;
-        if (vm.getType() == VirtualMachine.Type.User) {
-            vmVO = _userVmDao.findById(vm.getId());
-        } else {
-            vmVO = _vmDao.findById(vm.getId());
-        }
-        ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(User.UID_SYSTEM),
-                _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM));
+        VMInstanceVO vmVO = _vmDao.findById(vm.getId());
+        ReservationContext context = new ReservationContextImpl(null, null, cc.getCallingUser(), cc.getCallingAccount());
 
-        VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmVO, null,
-                null, null, null);
+        VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmVO, null, null, null, null);
 
         DataCenter dc = _configMgr.getZone(network.getDataCenterId());
         Host host = _hostDao.findById(vm.getHostId());
@@ -3255,10 +3187,11 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public boolean removeNicFromVm(VirtualMachine vm, NicVO nic) throws ConcurrentOperationException, ResourceUnavailableException {
+        CallContext cc = CallContext.current();
+
         VMInstanceVO vmVO = _vmDao.findById(vm.getId());
-        NetworkVO network = _networkDao.findById(nic.getNetworkId());
-        ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(User.UID_SYSTEM),
-                _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM));
+        NetworkVO network = _entityMgr.findById(NetworkVO.class, nic.getNetworkId());
+        ReservationContext context = new ReservationContextImpl(null, null, cc.getCallingUser(), cc.getCallingAccount());
 
         VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmVO, null,
                 null, null, null);
@@ -3319,9 +3252,10 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
     @Override
     public boolean removeVmFromNetwork(VirtualMachine vm, Network network, URI broadcastUri) throws ConcurrentOperationException, ResourceUnavailableException {
+        CallContext cc = CallContext.current();
+
         VMInstanceVO vmVO = _vmDao.findById(vm.getId());
-        ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(User.UID_SYSTEM),
-                _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM));
+        ReservationContext context = new ReservationContextImpl(null, null, cc.getCallingUser(), cc.getCallingAccount());
 
         VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmVO, null,
                 null, null, null);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/test/com/cloud/async/MockVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/async/MockVirtualMachineManagerImpl.java b/server/test/com/cloud/async/MockVirtualMachineManagerImpl.java
deleted file mode 100644
index e164d05..0000000
--- a/server/test/com/cloud/async/MockVirtualMachineManagerImpl.java
+++ /dev/null
@@ -1,361 +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.async;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-
-import com.cloud.agent.api.to.NicTO;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.deploy.DeployDestination;
-import com.cloud.deploy.DeploymentPlan;
-import com.cloud.exception.AgentUnavailableException;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InsufficientServerCapacityException;
-import com.cloud.exception.ManagementServerException;
-import com.cloud.exception.OperationTimedoutException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.exception.VirtualMachineMigrationException;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.network.Network;
-import com.cloud.network.dao.NetworkVO;
-import com.cloud.offering.ServiceOffering;
-import com.cloud.service.ServiceOfferingVO;
-import com.cloud.storage.DiskOfferingVO;
-import com.cloud.storage.StoragePool;
-import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.VolumeVO;
-import com.cloud.user.Account;
-import com.cloud.user.User;
-import com.cloud.utils.Pair;
-import com.cloud.utils.fsm.NoTransitionException;
-import com.cloud.vm.NicProfile;
-import com.cloud.vm.NicVO;
-import com.cloud.vm.VMInstanceVO;
-import com.cloud.vm.VirtualMachine;
-import com.cloud.vm.VmWork;
-import com.cloud.vm.VirtualMachine.Event;
-import com.cloud.vm.VirtualMachine.Type;
-import com.cloud.vm.VirtualMachineGuru;
-import com.cloud.vm.VirtualMachineManager;
-import com.cloud.vm.VirtualMachineProfile;
-import com.cloud.vm.VirtualMachineProfile.Param;
-
-public class MockVirtualMachineManagerImpl implements VirtualMachineManager {
-
-	@Override
-	public String getName() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void setName(String name) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void setConfigParams(Map<String, Object> params) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public Map<String, Object> getConfigParams() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public int getRunLevel() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	@Override
-	public void setRunLevel(int level) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public boolean configure(String name, Map<String, Object> params)
-			throws ConfigurationException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean start() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean stop() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean allocate(String vmInstanceName, VMTemplateVO template,
-			ServiceOfferingVO serviceOffering,
-			Pair<? extends DiskOfferingVO, Long> rootDiskOffering,
-			List<Pair<DiskOfferingVO, Long>> dataDiskOfferings,
-			List<Pair<NetworkVO, NicProfile>> networks,
-			Map<Param, Object> params, DeploymentPlan plan,
-			HypervisorType hyperType, Account owner) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean allocate(String vmInstanceName, VMTemplateVO template,
-			ServiceOfferingVO serviceOffering,
-			List<Pair<NetworkVO, NicProfile>> networkProfiles,
-			DeploymentPlan plan, HypervisorType hyperType, Account owner) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public void start(String vmUuid, Map<Param, Object> params,
-			@Deprecated User caller, @Deprecated Account account) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void start(String vmUuid, Map<Param, Object> params,
-			@Deprecated User caller, @Deprecated Account account,
-			DeploymentPlan planToDeploy) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void stop(String vmUuid, @Deprecated User caller,
-			@Deprecated Account account) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void expunge(String vmUuid, @Deprecated User caller,
-			@Deprecated Account account) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void registerGuru(Type type, VirtualMachineGuru guru) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public Collection<VirtualMachineGuru> getRegisteredGurus() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public VirtualMachineGuru getVmGuru(VirtualMachine vm) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public boolean stateTransitTo(VMInstanceVO vm, Event e, Long hostId)
-			throws NoTransitionException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public void advanceStart(String vmUuid, Map<Param, Object> params,
-			@Deprecated User caller, @Deprecated Account account)
-			throws InsufficientCapacityException, ResourceUnavailableException,
-			ConcurrentOperationException, OperationTimedoutException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void advanceStart(String vmUuid, Map<Param, Object> params,
-			@Deprecated User caller, @Deprecated Account account,
-			DeploymentPlan planToDeploy) throws InsufficientCapacityException,
-			ResourceUnavailableException, ConcurrentOperationException,
-			OperationTimedoutException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void advanceStop(String vmUuid, boolean cleanup,
-			@Deprecated User caller, @Deprecated Account account)
-			throws ResourceUnavailableException, OperationTimedoutException,
-			ConcurrentOperationException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void advanceExpunge(String vmUuid, @Deprecated User caller,
-			@Deprecated Account account) throws ResourceUnavailableException,
-			OperationTimedoutException, ConcurrentOperationException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public boolean destroy(String vmUuid, @Deprecated User caller,
-			@Deprecated Account account) throws ResourceUnavailableException,
-			OperationTimedoutException, ConcurrentOperationException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean migrateAway(Type type, long vmid, long hostId)
-			throws InsufficientServerCapacityException,
-			VirtualMachineMigrationException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public VirtualMachine migrate(String vmUuid, long srcHostId,
-			DeployDestination dest) throws ResourceUnavailableException,
-			ConcurrentOperationException, ManagementServerException,
-			VirtualMachineMigrationException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public VirtualMachine migrateWithStorage(String vmUuid, long srcId,
-			long destId, Map<VolumeVO, StoragePoolVO> volumeToPool)
-			throws ResourceUnavailableException, ConcurrentOperationException,
-			ManagementServerException, VirtualMachineMigrationException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void reboot(String vmUuid, User caller, Account account) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void advanceReboot(String vmUuid, User caller, Account account)
-			throws InsufficientCapacityException, ResourceUnavailableException,
-			ConcurrentOperationException, OperationTimedoutException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public VirtualMachine storageMigration(String vmUuid,
-			StoragePool storagePoolId) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void checkIfCanUpgrade(VirtualMachine vmInstance,
-			long newServiceOfferingId) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public boolean upgradeVmDb(long vmId, long serviceOfferingId) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public NicProfile addVmToNetwork(VirtualMachine vm, Network network,
-			NicProfile requested) throws ConcurrentOperationException,
-			ResourceUnavailableException, InsufficientCapacityException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public boolean removeNicFromVm(VirtualMachine vm, NicVO nic)
-			throws ConcurrentOperationException, ResourceUnavailableException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean removeVmFromNetwork(VirtualMachine vm, Network network,
-			URI broadcastUri) throws ConcurrentOperationException,
-			ResourceUnavailableException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public VirtualMachineTO toVmTO(VirtualMachineProfile profile) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public boolean reConfigureVm(VirtualMachine vm,
-			ServiceOffering newServiceOffering, boolean sameHost)
-			throws ResourceUnavailableException, ConcurrentOperationException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean findHostAndMigrate(String vmUuid, Long newSvcOfferingId)
-			throws InsufficientCapacityException, ConcurrentOperationException,
-			ResourceUnavailableException, VirtualMachineMigrationException,
-			ManagementServerException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean migrateForScale(String vmUuid, long srcHostId,
-			DeployDestination dest, Long newSvcOfferingId)
-			throws ResourceUnavailableException, ConcurrentOperationException,
-			ManagementServerException, VirtualMachineMigrationException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public NicTO toNicTO(NicProfile nic, HypervisorType hypervisorType) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/test/com/cloud/vm/VirtualMachineManagerImplTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/VirtualMachineManagerImplTest.java b/server/test/com/cloud/vm/VirtualMachineManagerImplTest.java
index e7dd38d..659adb7 100644
--- a/server/test/com/cloud/vm/VirtualMachineManagerImplTest.java
+++ b/server/test/com/cloud/vm/VirtualMachineManagerImplTest.java
@@ -58,6 +58,7 @@ import com.cloud.agent.api.ScaleVmCommand;
 import com.cloud.capacity.CapacityManager;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.dao.EntityManager;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.HostPodDao;
@@ -75,8 +76,10 @@ import com.cloud.hypervisor.HypervisorGuruManager;
 import com.cloud.network.NetworkManager;
 import com.cloud.service.ServiceOfferingVO;
 import com.cloud.storage.DiskOfferingVO;
+import com.cloud.storage.StoragePool;
 import com.cloud.storage.StoragePoolHostVO;
 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.DiskOfferingDao;
@@ -152,6 +155,9 @@ public class VirtualMachineManagerImplTest {
         @Mock
         ItWorkVO _work;
 
+    @Mock
+    EntityManager _entityMgr;
+
         @Mock ClusterDao _clusterDao;
         @Mock HostPodDao _podDao;
         @Mock DataCenterDao _dcDao;
@@ -168,31 +174,24 @@ public class VirtualMachineManagerImplTest {
         @Mock StoragePoolVO _destStoragePoolMock;
         @Mock HostVO _srcHostMock;
         @Mock HostVO _destHostMock;
-        @Mock Map<VolumeVO, StoragePoolVO> _volumeToPoolMock;
+    @Mock
+    Map<Volume, StoragePool> _volumeToPoolMock;
 
         @Before
         public void setup(){
             MockitoAnnotations.initMocks(this);
 
-            _vmMgr._templateDao = _templateDao;
+        _vmMgr._entityMgr = _entityMgr;
             _vmMgr._volsDao = _volsDao;
-            _vmMgr.volumeMgr = _storageMgr;
-            _vmMgr._accountDao = _accountDao;
-            _vmMgr._userDao = _userDao;
+            _vmMgr._volumeMgr = _storageMgr;
             _vmMgr._accountMgr = _accountMgr;
             _vmMgr._configMgr = _configMgr;
-            _vmMgr._capacityMgr = _capacityMgr;
             _vmMgr._hostDao = _hostDao;
             _vmMgr._nodeId = 1L;
 /*
             _vmMgr._workDao = _workDao;
 */
             _vmMgr._agentMgr = _agentMgr;
-            _vmMgr._podDao = _podDao;
-            _vmMgr._clusterDao = _clusterDao;
-            _vmMgr._dcDao = _dcDao;
-            _vmMgr._diskOfferingDao = _diskOfferingDao;
-            _vmMgr._storagePoolDao = _storagePoolDao;
             _vmMgr._poolHostDao= _poolHostDao;
             _vmMgr._networkMgr = _networkMgr;
             _vmMgr._hvGuruMgr = _hvGuruMgr;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ad1c82fd/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
index 98b5af8..1d49071 100644
--- a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
+++ b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
@@ -28,7 +28,6 @@ import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.framework.jobs.AsyncJobConstants;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 
 import com.cloud.agent.api.to.NicTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
@@ -51,7 +50,7 @@ import com.cloud.service.ServiceOfferingVO;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.StoragePool;
 import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.VolumeVO;
+import com.cloud.storage.Volume;
 import com.cloud.user.Account;
 import com.cloud.user.User;
 import com.cloud.utils.Pair;
@@ -353,7 +352,7 @@ public class VmWorkMockVirtualMachineManagerImpl implements VirtualMachineManage
 	}
 	
     @Override
-    public VirtualMachine migrateWithStorage(String vmUuid, long srcId, long destId, Map<VolumeVO, StoragePoolVO> volumeToPool) throws ResourceUnavailableException,
+    public VirtualMachine migrateWithStorage(String vmUuid, long srcId, long destId, Map<Volume, StoragePool> volumeToPool) throws ResourceUnavailableException,
             ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException {
         // TODO Auto-generated method stub
         return null;


[3/5] git commit: updated refs/heads/vmsync to d71e358

Posted by ah...@apache.org.
Removed all the apis that need the user and account to be passed in.  Get them from the call context instead


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/33dfe4f7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/33dfe4f7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/33dfe4f7

Branch: refs/heads/vmsync
Commit: 33dfe4f75236c4f87e5ce7d60242692b5373127f
Parents: ad1c82f
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 11 14:11:40 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 11 14:11:40 2013 -0700

----------------------------------------------------------------------
 .../apache/cloudstack/context/CallContext.java  | 19 +++++---
 .../src/com/cloud/vm/VirtualMachineManager.java | 19 ++++----
 .../engine/vm/VMEntityManagerImpl.java          | 11 +++--
 .../lb/ElasticLoadBalancerManagerImpl.java      | 36 ++++++++++-----
 .../lb/InternalLoadBalancerVMManagerImpl.java   |  6 +--
 .../cloud/agent/manager/AgentManagerImpl.java   |  2 +-
 .../consoleproxy/ConsoleProxyManagerImpl.java   |  6 +--
 .../cloud/ha/HighAvailabilityManagerImpl.java   | 21 +++++----
 .../VirtualNetworkApplianceManagerImpl.java     | 12 ++---
 .../com/cloud/resource/ResourceManagerImpl.java |  5 +--
 .../com/cloud/server/ManagementServerImpl.java  |  4 +-
 .../storage/StoragePoolAutomationImpl.java      | 22 ++++-----
 .../secondary/SecondaryStorageManagerImpl.java  |  6 +--
 .../storage/snapshot/SnapshotSchedulerImpl.java |  2 +-
 .../src/com/cloud/user/AccountManagerImpl.java  |  4 +-
 .../src/com/cloud/vm/SystemVmLoadScanner.java   |  7 ++-
 server/src/com/cloud/vm/UserVmManagerImpl.java  |  6 +--
 .../com/cloud/vm/VirtualMachineManagerImpl.java | 47 +++++++++-----------
 .../vm/snapshot/VMSnapshotManagerImpl.java      |  4 +-
 .../vm/VmWorkMockVirtualMachineManagerImpl.java | 32 ++++---------
 20 files changed, 135 insertions(+), 136 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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
index 6610896..c4271f5 100644
--- a/api/src/org/apache/cloudstack/context/CallContext.java
+++ b/api/src/org/apache/cloudstack/context/CallContext.java
@@ -104,14 +104,19 @@ public class CallContext {
         return callingContext;
     }
 
-    public static CallContext registerOnceOnly() {
-        CallContext context = s_currentContext.get();
-        if (context == null) {
-            return register(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, null);
+    public static CallContext registerSystemCallContextOnceOnly() {
+        try {
+            CallContext context = s_currentContext.get();
+            if (context == null) {
+                return register(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, null);
+            }
+            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");
         }
-
-        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;
     }
 
     public static CallContext register(String callingUserUuid, String callingAccountUuid, String contextId) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
index 70142d5..1a647e1 100644
--- a/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
+++ b/engine/components-api/src/com/cloud/vm/VirtualMachineManager.java
@@ -87,13 +87,13 @@ public interface VirtualMachineManager extends Manager {
             HypervisorType hyperType,
             Account owner);
 
-    void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, @Deprecated User caller, @Deprecated Account account);
+    void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params);
 
-    void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, @Deprecated User caller, @Deprecated Account account, DeploymentPlan planToDeploy);
+    void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, DeploymentPlan planToDeploy);
 
-    void stop(String vmUuid, @Deprecated User caller, @Deprecated Account account);
+    void stop(String vmUuid);
 
-    void expunge(String vmUuid, @Deprecated User caller, @Deprecated Account account);
+    void expunge(String vmUuid);
 
     void registerGuru(VirtualMachine.Type type, VirtualMachineGuru guru);
     
@@ -105,19 +105,16 @@ public interface VirtualMachineManager extends Manager {
     
     boolean stateTransitTo(VMInstanceVO vm, VirtualMachine.Event e, Long hostId) throws NoTransitionException;
 
-    void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, @Deprecated User caller, @Deprecated Account account) throws InsufficientCapacityException,
-            ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException;
-
-    void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, @Deprecated User caller, @Deprecated Account account, DeploymentPlan planToDeploy)
+    void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, DeploymentPlan planToDeploy)
             throws InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException;
 
-    void advanceStop(String vmUuid, boolean cleanup, @Deprecated User caller, @Deprecated Account account) throws ResourceUnavailableException, OperationTimedoutException,
+    void advanceStop(String vmUuid, boolean cleanup) throws ResourceUnavailableException, OperationTimedoutException,
             ConcurrentOperationException;
 
-    void advanceExpunge(String vmUuid, @Deprecated User caller, @Deprecated Account account) throws ResourceUnavailableException, OperationTimedoutException,
+    void advanceExpunge(String vmUuid) throws ResourceUnavailableException, OperationTimedoutException,
             ConcurrentOperationException;
 
-    boolean destroy(String vmUuid, @Deprecated User caller, @Deprecated Account account) throws ResourceUnavailableException, OperationTimedoutException,
+    boolean destroy(String vmUuid) throws ResourceUnavailableException, OperationTimedoutException,
             ConcurrentOperationException;
 
     boolean migrateAway(VirtualMachine.Type type, long vmid, long hostId) throws InsufficientServerCapacityException, VirtualMachineMigrationException;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/engine/orchestration/src/org/apache/cloudstack/engine/vm/VMEntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/vm/VMEntityManagerImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/vm/VMEntityManagerImpl.java
index 82706a2..c4e2b4c 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/vm/VMEntityManagerImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/vm/VMEntityManagerImpl.java
@@ -242,15 +242,14 @@ public class VMEntityManagerImpl implements VMEntityManager {
             DataCenterDeployment reservedPlan = new DataCenterDeployment(vm.getDataCenterId(),
                     vmReservation.getPodId(), vmReservation.getClusterId(), vmReservation.getHostId(), null, null);
             try {
-                _itMgr.start(vm.getUuid(), params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), reservedPlan);
+                _itMgr.start(vm.getUuid(), params, reservedPlan);
             } catch (CloudRuntimeException ex) {
                 // Retry the deployment without using the reservation plan
-                _itMgr.start(vm.getUuid(), params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()),
-                        null);
+                _itMgr.start(vm.getUuid(), params, null);
             }
         } else {
             // no reservation found. Let VirtualMachineManager retry
-            _itMgr.start(vm.getUuid(), params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), null);
+            _itMgr.start(vm.getUuid(), params, null);
         }
 
     }
@@ -258,7 +257,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
     @Override
     public boolean stop(VMEntityVO vm, String caller) throws ResourceUnavailableException {
         try {
-            _itMgr.stop(vm.getUuid(), _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()));
+            _itMgr.stop(vm.getUuid());
             return true;
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to stop " + vm, e);
@@ -271,7 +270,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
     public boolean destroy(VMEntityVO vm, String caller) throws ResourceUnavailableException, OperationTimedoutException, ConcurrentOperationException {
 
         try {
-            _itMgr.destroy(vm.getUuid(), _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()));
+            _itMgr.destroy(vm.getUuid());
             return true;
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to destroy " + vm, e);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 7d5e023..d8daeae 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
@@ -204,6 +204,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
     static final private String _systemVmType = "elbvm";
     
     boolean _enabled;
+    long _gcIntervalMinutes;
     TrafficType _frontendTrafficType = TrafficType.Guest;
 
     Account _systemAcct;
@@ -386,6 +387,15 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
     }
 
     @Override
+    public boolean start() {
+        if (_enabled) {
+            _gcThreadPool.scheduleAtFixedRate(new CleanupTask(), _gcIntervalMinutes, _gcIntervalMinutes, TimeUnit.MINUTES);
+        }
+        return true;
+
+    }
+
+    @Override
     public boolean configure(String name, Map<String, Object> params)
             throws ConfigurationException {
         final Map<String, String> configs = _configDao.getConfiguration("AgentManager", params);
@@ -420,12 +430,11 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
             } else
                 throw new ConfigurationException("ELB: Traffic type for front end of load balancer has to be guest or public; found : " + traffType);
             s_logger.info("ELB: Elastic Load Balancer: will balance on " + traffType );
-            int gcIntervalMinutes =  NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmGcInterval.key()), 5);
-            if (gcIntervalMinutes < 5)
-                gcIntervalMinutes = 5;
-            s_logger.info("ELB: Elastic Load Balancer: scheduling GC to run every " + gcIntervalMinutes + " minutes" );
+            _gcIntervalMinutes = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmGcInterval.key()), 5);
+            if (_gcIntervalMinutes < 5)
+                _gcIntervalMinutes = 5;
+            s_logger.info("ELB: Elastic Load Balancer: scheduling GC to run every " + _gcIntervalMinutes + " minutes");
             _gcThreadPool = Executors.newScheduledThreadPool(1, new NamedThreadFactory("ELBVM-GC"));
-            _gcThreadPool.scheduleAtFixedRate(new CleanupThread(), gcIntervalMinutes, gcIntervalMinutes, TimeUnit.MINUTES);
             _itMgr.registerGuru(VirtualMachine.Type.ElasticLoadBalancerVm, this);
         }
         
@@ -537,7 +546,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
     ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Starting ELB VM " + elbVm);
         try {
-            _itMgr.start(elbVm.getUuid(), params, user, caller);
+            _itMgr.start(elbVm.getUuid(), params);
             return _routerDao.findById(elbVm.getId());
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to start " + elbVm, e);
@@ -548,7 +557,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
     private DomainRouterVO stop(DomainRouterVO elbVm, boolean forced, User user, Account caller) throws ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Stopping ELB vm " + elbVm);
         try {
-            _itMgr.advanceStop(elbVm.getUuid(), forced, user, caller);
+            _itMgr.advanceStop(elbVm.getUuid(), forced);
             return _routerDao.findById(elbVm.getId());
         } catch (OperationTimedoutException e) {
             throw new CloudRuntimeException("Unable to stop " + elbVm, e);
@@ -739,7 +748,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
             if (gceed) {
                 try {
                     s_logger.info("Attempting to destroy ELB VM: " + elbVm);
-                    _itMgr.expunge(elbVm.getUuid(), user, _systemAcct);
+                    _itMgr.expunge(elbVm.getUuid());
                 } catch (CloudRuntimeException e) {
                     s_logger.warn("Unable to destroy unused ELB vm " + elbVm + " due to ", e);
                     gceed = false;
@@ -753,14 +762,21 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements
         _gcCandidateElbVmIds = currentGcCandidates;
     }
     
-    public class CleanupThread implements Runnable {
+    public class CleanupTask implements Runnable {
         @Override
         public void run() {
+            try {
+                CallContext.registerSystemCallContextOnceOnly();
+            } catch (Exception e) {
+                s_logger.fatal("Unable to establish system context");
+                System.exit(1);
+            }
+            
             garbageCollectUnusedElbVms();
             
         }
 
-        CleanupThread() {
+        CleanupTask() {
 
         }
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
index 5413c16..6754103 100644
--- a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
+++ b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
@@ -526,7 +526,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
         _accountMgr.checkAccess(caller, null, true, internalLbVm);
 
         try {
-            _itMgr.expunge(internalLbVm.getUuid(), _accountMgr.getActiveUser(callerUserId), caller);
+            _itMgr.expunge(internalLbVm.getUuid());
             return true;
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to expunge internal load balancer", e);
@@ -552,7 +552,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
     protected VirtualRouter stopInternalLbVm(DomainRouterVO internalLbVm, boolean forced, Account caller, long callerUserId) throws ResourceUnavailableException, ConcurrentOperationException {
         s_logger.debug("Stopping internal lb vm " + internalLbVm);
         try {
-            _itMgr.advanceStop(internalLbVm.getUuid(), forced, _accountMgr.getActiveUser(callerUserId), caller);
+            _itMgr.advanceStop(internalLbVm.getUuid(), forced);
             return _internalLbVmDao.findById(internalLbVm.getId());
         } catch (OperationTimedoutException e) {
             throw new CloudRuntimeException("Unable to stop " + internalLbVm, e);
@@ -830,7 +830,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
             ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Starting Internal LB VM " + internalLbVm);
         try {
-            _itMgr.start(internalLbVm.getUuid(), params, _accountMgr.getUserIncludingRemoved(callerUserId), caller, null);
+            _itMgr.start(internalLbVm.getUuid(), params, null);
             internalLbVm = _internalLbVmDao.findById(internalLbVm.getId());
             if (internalLbVm.isStopPending()) {
                 s_logger.info("Clear the stop pending flag of Internal LB VM " + internalLbVm.getHostName() + " after start router successfully!");

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 17ffb7e..6513117 100755
--- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java
+++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java
@@ -1177,7 +1177,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl
         @Override
         public void run() {
             try {
-                CallContext.registerOnceOnly();
+                CallContext.registerSystemCallContextOnceOnly();
             } catch (Exception e) {
                 s_logger.error("Unable to register context", e);
                 return;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 67ffa18..f6bddf0 100755
--- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -558,7 +558,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
             }
 
             if (proxy.getState() == VirtualMachine.State.Stopped) {
-                _itMgr.start(proxy.getUuid(), null, systemUser, systemAcct);
+                _itMgr.start(proxy.getUuid(), null);
                 proxy = _consoleProxyDao.findById(proxyVmId);
                 if (proxy.getState() == State.Running) {
                     return null;
@@ -1036,7 +1036,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
         }
 
         try {
-            _itMgr.stop(proxy.getUuid(), _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+            _itMgr.stop(proxy.getUuid());
             return true;
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to stop " + proxy, e);
@@ -1160,7 +1160,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
         ConsoleProxyVO proxy = _consoleProxyDao.findById(vmId);
         try {
             //expunge the vm
-            _itMgr.expunge(proxy.getUuid(), _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+            _itMgr.expunge(proxy.getUuid());
             HostVO host = _hostDao.findByTypeNameAndZoneId(proxy.getDataCenterId(), proxy.getHostName(),
                     Host.Type.ConsoleProxy);
             if (host != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
index 1dad57d..9e8b905 100755
--- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
+++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
@@ -32,6 +32,8 @@ import javax.naming.ConfigurationException;
 import org.apache.log4j.Logger;
 import org.apache.log4j.NDC;
 
+import org.apache.cloudstack.context.CallContext;
+
 import com.cloud.agent.AgentManager;
 import com.cloud.alert.AlertManager;
 import com.cloud.cluster.ClusterManagerListener;
@@ -283,7 +285,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
         if (hostId == null) {
             try {
                 s_logger.debug("Found a vm that is scheduled to be restarted but has no host id: " + vm);
-                _itMgr.advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.advanceStop(vm.getUuid(), true);
             } catch (ResourceUnavailableException e) {
                 assert false : "How do we hit this when force is true?";
             throw new CloudRuntimeException("Caught exception even though it should be handled.", e);
@@ -327,7 +329,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
             }
 
             try {
-                _itMgr.advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.advanceStop(vm.getUuid(), true);
             } catch (ResourceUnavailableException e) {
                 assert false : "How do we hit this when force is true?";
             throw new CloudRuntimeException("Caught exception even though it should be handled.", e);
@@ -472,7 +474,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
                 }
 
                 try {
-                    _itMgr.advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                    _itMgr.advanceStop(vm.getUuid(), true);
                 } catch (ResourceUnavailableException e) {
                     assert false : "How do we hit this when force is true?";
                 throw new CloudRuntimeException("Caught exception even though it should be handled.", e);
@@ -489,7 +491,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
             } else {
                 s_logger.debug("How come that HA step is Investigating and the host is removed? Calling forced Stop on Vm anyways");
                 try {
-                    _itMgr.advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                    _itMgr.advanceStop(vm.getUuid(), true);
                 } catch (ResourceUnavailableException e) {
                     assert false : "How do we hit this when force is true?";
                 throw new CloudRuntimeException("Caught exception even though it should be handled.", e);
@@ -529,7 +531,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
             if (_haTag != null) {
                 params.put(VirtualMachineProfile.Param.HaTag, _haTag);
             }
-            _itMgr.advanceStart(vm.getUuid(), params, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+            _itMgr.advanceStart(vm.getUuid(), params, null);
             
             VMInstanceVO started = _instanceDao.findById(vm.getId());
 
@@ -618,7 +620,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
             }
 
             if (vm.getHostId() != null) {
-                _itMgr.destroy(vm.getUuid(), _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.destroy(vm.getUuid());
                 s_logger.info("Successfully destroy " + vm);
                 return null;
             }
@@ -644,7 +646,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
         s_logger.info("Stopping " + vm);
         try {
             if (work.getWorkType() == WorkType.Stop) {
-                _itMgr.advanceStop(vm.getUuid(), false, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.advanceStop(vm.getUuid(), false);
                 s_logger.info("Successfully stopped " + vm);
                 return null;
             } else if (work.getWorkType() == WorkType.CheckStop) {
@@ -652,7 +654,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
                     s_logger.info(vm + " is different now.  Scheduled Host: " + work.getHostId() + " Current Host: " + (vm.getHostId() != null ? vm.getHostId() : "none") + " State: " + vm.getState());
                     return null;
                 }
-                _itMgr.advanceStop(vm.getUuid(), false, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.advanceStop(vm.getUuid(), false);
                 s_logger.info("Stop for " + vm + " was successful");
                 return null;
             } else if (work.getWorkType() == WorkType.ForceStop) {
@@ -660,7 +662,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
                     s_logger.info(vm + " is different now.  Scheduled Host: " + work.getHostId() + " Current Host: " + (vm.getHostId() != null ? vm.getHostId() : "none") + " State: " + vm.getState());
                     return null;
                 }
-                _itMgr.advanceStop(vm.getUuid(), true, _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                _itMgr.advanceStop(vm.getUuid(), true);
                 s_logger.info("Stop for " + vm + " was successful");
                 return null;
             } else {
@@ -797,6 +799,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
 
         @Override
         public void run() {
+            CallContext.registerSystemCallContextOnceOnly();
             s_logger.info("Starting work");
             while (!_stopped) {
                 HaWorkVO work = null;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 742a3c1..e8090c8 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -418,7 +418,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
         _accountMgr.checkAccess(caller, null, true, router);
 
         try {
-            _itMgr.expunge(router.getUuid(), _accountMgr.getActiveUser(callerUserId), _accountMgr.getAccount(router.getAccountId()));
+            _itMgr.expunge(router.getUuid());
             return router;
         } catch (CloudRuntimeException e) {
             s_logger.warn("Unable to destroy " + router, e);
@@ -1281,7 +1281,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
         @Override
         public void run() {
             try {
-                CallContext.registerOnceOnly();
+                CallContext.registerSystemCallContextOnceOnly();
                 while (true) {
                     try {
                         Long networkId = _vrUpdateQueue.take();
@@ -1756,7 +1756,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");
                         }
                     }
@@ -1765,7 +1765,7 @@ 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) {
@@ -2717,7 +2717,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
             ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Starting router " + router);
         try {
-            _itMgr.start(router.getUuid(), params, user, caller, planToDeploy);
+            _itMgr.start(router.getUuid(), params, planToDeploy);
             router = _routerDao.findById(router.getId());
             if (router.isStopPending()) {
                 s_logger.info("Clear the stop pending flag of router " + router.getHostName() + " after start router successfully!");
@@ -2741,7 +2741,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
     public DomainRouterVO stop(VirtualRouter router, boolean forced, User user, Account caller) throws ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Stopping router " + router);
         try {
-            _itMgr.advanceStop(router.getUuid(), forced, user, caller);
+            _itMgr.advanceStop(router.getUuid(), forced);
             return _routerDao.findById(router.getId());
         } catch (OperationTimedoutException e) {
             throw new CloudRuntimeException("Unable to stop " + router, e);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 4da572e..b429e01 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -2343,8 +2343,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 						.listByStoragePool(storagePool.getId());
                 for (VMInstanceVO vm : vmsOnLocalStorage) {
                     try {
-                        if (!_vmMgr.destroy(vm.getUuid(), caller,
-								_accountMgr.getAccount(vm.getAccountId()))) {
+                        if (!_vmMgr.destroy(vm.getUuid())) {
 							String errorMsg = "There was an error Destory the vm: "
 									+ vm
 									+ " as a part of hostDelete id="
@@ -2376,7 +2375,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 									+ " as a part of deleteHost id="
 									+ host.getId());
                             try {
-                                _vmMgr.stop(vm.getUuid(), caller, _accountMgr.getAccount(vm.getAccountId()));
+                                _vmMgr.stop(vm.getUuid());
                             } catch (Exception e) {
 								String errorMsg = "There was an error stopping the vm: "
 										+ vm

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 a365f7a..4ad60ea 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -2167,7 +2167,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
 
         User caller = _userDao.findById(CallContext.current().getCallingUserId());
 
-        _itMgr.advanceStop(systemVm.getUuid(), isForced, caller, CallContext.current().getCallingAccount());
+        _itMgr.advanceStop(systemVm.getUuid(), isForced);
         return _consoleProxyDao.findById(systemVm.getId());
     }
 
@@ -3049,7 +3049,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
 
         User caller = _userDao.findById(CallContext.current().getCallingUserId());
 
-        _itMgr.advanceStop(systemVm.getUuid(), isForced, caller, CallContext.current().getCallingAccount());
+        _itMgr.advanceStop(systemVm.getUuid(), isForced);
         return _secStorageVmDao.findById(systemVm.getId());
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 6154a3b..0e6d53b 100644
--- a/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
+++ b/server/src/com/cloud/storage/StoragePoolAutomationImpl.java
@@ -203,42 +203,42 @@ public class StoragePoolAutomationImpl implements StoragePoolAutomation {
                     // call the consoleproxymanager
                     ConsoleProxyVO consoleProxy = _consoleProxyDao
                             .findById(vmInstance.getId());
-                    vmMgr.stop(consoleProxy.getUuid(), user, account);
+                    vmMgr.stop(consoleProxy.getUuid());
                         // update work status
                     work.setStoppedForMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
 
                     if (restart) {
 
-                        vmMgr.start(consoleProxy.getUuid(), null, user, account);
+                        vmMgr.start(consoleProxy.getUuid(), null);
                         work.setStartedAfterMaintenance(true);
                         _storagePoolWorkDao.update(work.getId(), work);
                     }
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.User)) {
                     UserVmVO userVm = userVmDao.findById(vmInstance.getId());
-                    vmMgr.stop(userVm.getUuid(), user, account);
+                    vmMgr.stop(userVm.getUuid());
                     // update work status
                     work.setStoppedForMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.SecondaryStorageVm)) {
                     SecondaryStorageVmVO secStrgVm = _secStrgDao
                             .findById(vmInstance.getId());
-                    vmMgr.stop(secStrgVm.getUuid(), user, account);
+                    vmMgr.stop(secStrgVm.getUuid());
                     work.setStoppedForMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
 
                     if (restart) {
-                        vmMgr.start(secStrgVm.getUuid(), null, user, account);
+                        vmMgr.start(secStrgVm.getUuid(), null);
                         work.setStartedAfterMaintenance(true);
                         _storagePoolWorkDao.update(work.getId(), work);
                     }
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.DomainRouter)) {
                     DomainRouterVO domR = _domrDao.findById(vmInstance.getId());
-                    vmMgr.advanceStop(domR.getUuid(), false, user, account);
+                    vmMgr.advanceStop(domR.getUuid(), false);
                     work.setStoppedForMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                     if (restart) {
-                        vmMgr.start(domR.getUuid(), null, user, account);
+                        vmMgr.start(domR.getUuid(), null);
                         work.setStartedAfterMaintenance(true);
                         _storagePoolWorkDao.update(work.getId(), work);
                     }
@@ -302,23 +302,23 @@ public class StoragePoolAutomationImpl implements StoragePoolAutomation {
 
                 if (vmInstance.getType().equals(VirtualMachine.Type.ConsoleProxy)) {
                     ConsoleProxyVO consoleProxy = _consoleProxyDao.findById(vmInstance.getId());
-                    vmMgr.start(consoleProxy.getUuid(), null, user, account);
+                    vmMgr.start(consoleProxy.getUuid(), null);
                     work.setStartedAfterMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.SecondaryStorageVm)) {
                     SecondaryStorageVmVO ssVm = _secStrgDao.findById(vmInstance.getId());
-                    vmMgr.advanceStart(ssVm.getUuid(), null, user, account);
+                    vmMgr.advanceStart(ssVm.getUuid(), null, null);
                     work.setStartedAfterMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.DomainRouter)) {
                     DomainRouterVO domR = _domrDao.findById(vmInstance.getId());
-                    vmMgr.start(domR.getUuid(), null, user, account);
+                    vmMgr.start(domR.getUuid(), null);
                     work.setStartedAfterMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                 } else if (vmInstance.getType().equals(VirtualMachine.Type.User)) {
                     UserVmVO userVm = userVmDao.findById(vmInstance.getId());
 
-                    vmMgr.start(userVm.getUuid(), null, user, account);
+                    vmMgr.start(userVm.getUuid(), null);
                     work.setStartedAfterMaintenance(true);
                     _storagePoolWorkDao.update(work.getId(), work);
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 1d85652..562db28 100755
--- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
@@ -258,7 +258,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
             SecondaryStorageVmVO secStorageVm = _secStorageVmDao.findById(secStorageVmId);
             Account systemAcct = _accountMgr.getSystemAccount();
             User systemUser = _accountMgr.getSystemUser();
-            _itMgr.start(secStorageVm.getUuid(), null, systemUser, systemAcct);
+            _itMgr.start(secStorageVm.getUuid(), null);
             return _secStorageVmDao.findById(secStorageVmId);
         } catch (Exception e) {
             s_logger.warn("Exception while trying to start secondary storage vm", e);
@@ -921,7 +921,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
             try {
                 if (secStorageVmLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_SYNC)) {
                     try {
-                        _itMgr.stop(secStorageVm.getUuid(), _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+                        _itMgr.stop(secStorageVm.getUuid());
                         return true;
                     } catch (Exception e) {
                         s_logger.warn("Unable to stop " + secStorageVm, e);
@@ -982,7 +982,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
         SecondaryStorageVmVO ssvm = _secStorageVmDao.findById(vmId);
 
         try {
-            _itMgr.expunge(ssvm.getUuid(), _accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
+            _itMgr.expunge(ssvm.getUuid());
             HostVO host = _hostDao.findByTypeNameAndZoneId(ssvm.getDataCenterId(), ssvm.getHostName(),
                     Host.Type.SecondaryStorageVM);
             if (host != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
index a8ef32b..c6dd772 100644
--- a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
@@ -374,7 +374,7 @@ public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotSchedu
                 @Override
                 public void run() {
                     try {
-                        CallContext.registerOnceOnly();
+                        CallContext.registerSystemCallContextOnceOnly();
                     } catch (Exception e) {
                         s_logger.error("Unable to register context", e);
                         return;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 b623dd2..3e4520c 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -815,7 +815,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         boolean success = true;
         for (VMInstanceVO vm : vms) {
             try {
-                _itMgr.stop(vm.getUuid(), getSystemUser(), getSystemAccount());
+                _itMgr.stop(vm.getUuid());
             } catch (CloudRuntimeException ote) {
                 s_logger.warn("Operation for stopping vm timed out, unable to stop vm " + vm.getHostName(), ote);
                 success = false;
@@ -1452,7 +1452,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         @Override
         public void run() {
             try {
-                CallContext.registerOnceOnly();
+                CallContext.registerSystemCallContextOnceOnly();
             } catch (Exception e) {
                 s_logger.error("Unable to register the system user context", e);
                 return;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/server/src/com/cloud/vm/SystemVmLoadScanner.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/SystemVmLoadScanner.java b/server/src/com/cloud/vm/SystemVmLoadScanner.java
index 9eafe0f..3d7953f 100644
--- a/server/src/com/cloud/vm/SystemVmLoadScanner.java
+++ b/server/src/com/cloud/vm/SystemVmLoadScanner.java
@@ -25,7 +25,6 @@ import org.apache.log4j.Logger;
 import org.apache.cloudstack.context.CallContext;
 
 import com.cloud.async.AsyncJobExecutionContext;
-import com.cloud.exception.CloudAuthenticationException;
 import com.cloud.utils.Pair;
 import com.cloud.utils.concurrency.NamedThreadFactory;
 import com.cloud.utils.db.GlobalLock;
@@ -72,10 +71,10 @@ public class SystemVmLoadScanner<T> {
             @Override
             public void run() {
                 try {
-                    CallContext.registerOnceOnly();
+                    CallContext.registerSystemCallContextOnceOnly();
                     AsyncJobExecutionContext.registerPseudoExecutionContext();
-                } catch (CloudAuthenticationException e) {
-                    s_logger.error("Unable to start the capacity scan task", e);
+                } catch (Exception e) {
+                    s_logger.fatal("Unable to start the capacity scan task", e);
                     System.exit(1);
                 }
                 Transaction txn = Transaction.open(Transaction.CLOUD_DB);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 8378fdd..e248c43 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -1512,7 +1512,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
         try {
             List<VolumeVO> rootVol = _volsDao.findByInstanceAndType(vm.getId(), Volume.Type.ROOT);
             // expunge the vm
-            _itMgr.advanceExpunge(vm.getUuid(), _accountMgr.getSystemUser(), caller);
+            _itMgr.advanceExpunge(vm.getUuid());
 
             // Update Resource count
             if (vm.getAccountId() != Account.ACCOUNT_ID_SYSTEM && !rootVol.isEmpty()) {
@@ -4554,7 +4554,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
 
         if (needRestart) {
             try {
-                _itMgr.stop(vm.getUuid(), user, caller);
+                _itMgr.stop(vm.getUuid());
             } catch (CloudRuntimeException e) {
                 s_logger.debug("Stop vm " + vm.getUuid() + " failed");
                 CloudRuntimeException ex = new CloudRuntimeException("Stop vm failed for specified vmId");
@@ -4614,7 +4614,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
 
         if (needRestart) {
             try {
-                _itMgr.start(vm.getUuid(), null, user, caller);
+                _itMgr.start(vm.getUuid(), null);
             } catch (Exception e) {
                 s_logger.debug("Unable to start VM " + vm.getUuid(), e);
                 CloudRuntimeException ex = new CloudRuntimeException(

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index e42427b..d1a557d 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -364,9 +364,9 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void expunge(String vmUuid, User caller, Account account) {
+    public void expunge(String vmUuid) {
         try {
-            advanceExpunge(vmUuid, caller, account);
+            advanceExpunge(vmUuid);
         } catch (OperationTimedoutException e) {
             throw new CloudRuntimeException("Operation timed out", e);
         } catch (ConcurrentOperationException e) {
@@ -377,7 +377,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void advanceExpunge(String vmUuid, User caller, Account account) throws ResourceUnavailableException, OperationTimedoutException,
+    public void advanceExpunge(String vmUuid) throws ResourceUnavailableException, OperationTimedoutException,
             ConcurrentOperationException {
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
         if (vm == null || vm.getRemoved() != null) {
@@ -387,7 +387,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             return;
         }
 
-        advanceStop(vmUuid, false, caller, account);
+        advanceStop(vmUuid, false);
 
         vm = _vmDao.findByUuid(vmUuid);
         try {
@@ -493,14 +493,14 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, User caller, Account account) {
-        start(vmUuid, params, caller, account, null);
+    public void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params) {
+        start(vmUuid, params, null);
     }
 
     @Override
-    public void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, User caller, Account account, DeploymentPlan planToDeploy) {
+    public void start(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, DeploymentPlan planToDeploy) {
         try {
-            advanceStart(vmUuid, params, caller, account, planToDeploy);
+            advanceStart(vmUuid, params, planToDeploy);
         } catch (ConcurrentOperationException e) {
             throw new CloudRuntimeException(e).add(VirtualMachine.class, vmUuid);
         } catch (InsufficientCapacityException e) {
@@ -671,18 +671,12 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, User caller, Account account) throws InsufficientCapacityException,
-    	ConcurrentOperationException, ResourceUnavailableException {
-        advanceStart(vmUuid, params, caller, account, null);
-    }
-    
-    @Override
     @DB
-    public void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, User callingUser, Account callingAccount, DeploymentPlan planToDeploy)
+    public void advanceStart(String vmUuid, Map<VirtualMachineProfile.Param, Object> params, DeploymentPlan planToDeploy)
         throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException {
         CallContext context = CallContext.current();
-        callingUser = context.getCallingUser();
-        callingAccount = context.getCallingAccount();
+        User callingUser = context.getCallingUser();
+        Account callingAccount = context.getCallingAccount();
 
         final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
     	
@@ -1013,9 +1007,9 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
     
     @Override
-    public void stop(String vmUuid, User user, Account account) {
+    public void stop(String vmUuid) {
         try {
-            advanceStop(vmUuid, false, user, account);
+            advanceStop(vmUuid, false);
         } catch (OperationTimedoutException e) {
             throw new CloudRuntimeException(e).add(VirtualMachine.class, vmUuid);
         } catch (ConcurrentOperationException e) {
@@ -1114,9 +1108,12 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
     
     @Override
-    public void advanceStop(final String vmUuid, boolean forced, User user, Account account) throws ResourceUnavailableException,
+    public void advanceStop(final String vmUuid, boolean forced) throws ResourceUnavailableException,
             OperationTimedoutException, ConcurrentOperationException {
-        CallContext context = CallContext.current();
+        CallContext cc = CallContext.current();
+        Account account = cc.getCallingAccount();
+        User user = cc.getCallingUser();
+
         final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
     	VmWorkJobVO workJob = null;
     	Transaction txn = Transaction.currentTxn();
@@ -1132,7 +1129,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         		assert(pendingWorkJobs.size() == 1);
         		workJob = pendingWorkJobs.get(0);
         	} else {
-                workJob = new VmWorkJobVO(context.getContextId());
+                workJob = new VmWorkJobVO(cc.getContextId());
         	
                 workJob.setDispatcher(VmWorkJobDispatcher.VM_WORK_JOB_DISPATCHER);
                 workJob.setCmd(VmWorkJobDispatcher.Stop);
@@ -1534,7 +1531,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     }
 
     @Override
-    public boolean destroy(String vmUuid, User user, Account caller) throws ResourceUnavailableException, OperationTimedoutException,
+    public boolean destroy(String vmUuid) throws ResourceUnavailableException, OperationTimedoutException,
             ConcurrentOperationException {
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
         if (s_logger.isDebugEnabled()) {
@@ -1547,7 +1544,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             return true;
         }
 
-        advanceStop(vmUuid, _forceStop, user, caller);
+        advanceStop(vmUuid, _forceStop);
         
         vm = _vmDao.findById(vm.getId());
 
@@ -2098,7 +2095,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 return true;
             }
             try {
-                advanceStop(vm.getUuid(), true, cc.getCallingUser(), cc.getCallingAccount());
+                advanceStop(vm.getUuid(), true);
                 return true;
             } catch (ResourceUnavailableException e) {
                 s_logger.debug("Unable to stop VM due to " + e.getMessage());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/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 41d53d3..8d1c628 100644
--- a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@ -673,7 +673,7 @@ public class VMSnapshotManagerImpl extends ManagerBase implements VMSnapshotMana
         // start or stop VM first, if revert from stopped state to running state, or from running to stopped
         if(userVm.getState() == VirtualMachine.State.Stopped && vmSnapshotVo.getType() == VMSnapshot.Type.DiskAndMemory){
             try {
-                _itMgr.start(userVm.getUuid(), new HashMap<VirtualMachineProfile.Param, Object>(), callerUser, owner);
+                _itMgr.start(userVm.getUuid(), new HashMap<VirtualMachineProfile.Param, Object>());
                 userVm = _userVMDao.findById(userVm.getId());
                 hostId = userVm.getHostId();
             } catch (CloudRuntimeException e) {
@@ -683,7 +683,7 @@ public class VMSnapshotManagerImpl extends ManagerBase implements VMSnapshotMana
         }else {
             if(userVm.getState() == VirtualMachine.State.Running && vmSnapshotVo.getType() == VMSnapshot.Type.Disk){
                 try {
-                    _itMgr.advanceStop(userVm.getUuid(), false, callerUser, owner);
+                    _itMgr.advanceStop(userVm.getUuid(), false);
                 } catch (Exception e) {
                     s_logger.error("Stop VM " + userVm.getInstanceName() + " before reverting failed due to " + e.getMessage());
     			    throw new CloudRuntimeException(e.getMessage());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33dfe4f7/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
index 1d49071..80fe930 100644
--- a/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
+++ b/server/test/com/cloud/vm/VmWorkMockVirtualMachineManagerImpl.java
@@ -141,26 +141,22 @@ public class VmWorkMockVirtualMachineManagerImpl implements VirtualMachineManage
 	}
 
 	@Override
-    public void start(String vmUuid, Map<Param, Object> params,
-            User caller, Account account) {
+    public void start(String vmUuid, Map<Param, Object> params) {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public void start(String vmUuid, Map<Param, Object> params,
-            User caller, Account account, DeploymentPlan planToDeploy) {
+    public void start(String vmUuid, Map<Param, Object> params, DeploymentPlan planToDeploy) {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public void stop(String vmUuid, User caller,
-            Account account) {
+    public void stop(String vmUuid) {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public void expunge(String vmUuid, User caller,
-            Account account) {
+    public void expunge(String vmUuid) {
 		// TODO Auto-generated method stub
 	}
 
@@ -190,16 +186,7 @@ public class VmWorkMockVirtualMachineManagerImpl implements VirtualMachineManage
 	}
 
 	@Override
-    public void advanceStart(String vmUuid,
-			Map<Param, Object> params, User caller, Account account)
-			throws InsufficientCapacityException, ResourceUnavailableException,
-			ConcurrentOperationException, OperationTimedoutException {
-		// TODO Auto-generated method stub
-	}
-
-	@Override
-    public void advanceStart(String vmUuid,
-			Map<Param, Object> params, User caller, Account account,
+    public void advanceStart(String vmUuid, Map<Param, Object> params,
 			DeploymentPlan planToDeploy) throws InsufficientCapacityException,
 			ResourceUnavailableException, ConcurrentOperationException,
 			OperationTimedoutException {
@@ -207,22 +194,19 @@ public class VmWorkMockVirtualMachineManagerImpl implements VirtualMachineManage
 	}
 
 	@Override
-    public void advanceStop(String vmUuid, boolean forced,
-			User caller, Account account) throws ResourceUnavailableException,
+    public void advanceStop(String vmUuid, boolean forced) throws ResourceUnavailableException,
 			OperationTimedoutException, ConcurrentOperationException {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public void advanceExpunge(String vmUuid, User caller,
-			Account account) throws ResourceUnavailableException,
+    public void advanceExpunge(String vmUuid) throws ResourceUnavailableException,
 			OperationTimedoutException, ConcurrentOperationException {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
-    public boolean destroy(String vmUuid, User caller,
-			Account account) throws AgentUnavailableException,
+    public boolean destroy(String vmUuid) throws AgentUnavailableException,
 			OperationTimedoutException, ConcurrentOperationException {
 		// TODO Auto-generated method stub
 		return false;