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/26 02:19:54 UTC
[1/3] git commit: updated refs/heads/vmsync to 1f0186a
Updated Branches:
refs/heads/vmsync c1272055c -> 1f0186aaf
fixed a class cast exception
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fe4cc37e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fe4cc37e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fe4cc37e
Branch: refs/heads/vmsync
Commit: fe4cc37e150d7ae0d7c08085f7022bda86de8236
Parents: c127205
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 25 16:19:46 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 25 16:19:46 2013 -0700
----------------------------------------------------------------------
.../apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fe4cc37e/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
index 4ef0668..1704677 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
@@ -150,9 +150,10 @@ public class MigrateVMCmd extends BaseAsyncCmd {
migratedVm = _userVmService.vmStorageMigration(getVirtualMachineId(), destStoragePool);
}
if (migratedVm != null) {
- UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", (UserVm)migratedVm).get(0);
+ UserVm vm = _entityMgr.findById(UserVm.class, migratedVm.getId());
+ UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", vm).get(0);
response.setResponseName(getCommandName());
- this.setResponseObject(response);
+ setResponseObject(response);
} else {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to migrate vm");
}
[2/3] git commit: updated refs/heads/vmsync to 1f0186a
Posted by ah...@apache.org.
Migrate bugs fixed
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/241d5469
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/241d5469
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/241d5469
Branch: refs/heads/vmsync
Commit: 241d54696e4bce374381ba00c358bff1554d3e97
Parents: fe4cc37
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 25 16:49:56 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 25 16:49:56 2013 -0700
----------------------------------------------------------------------
.../src/com/cloud/vm/VirtualMachineManagerImpl.java | 7 +++----
.../orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java | 7 ++++++-
engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java | 8 +++++++-
.../src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java | 4 +++-
4 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/241d5469/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index f378f4f..3ca651f 100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -216,7 +216,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
protected static final StateMachine<Step, VirtualMachine.Event> MigrationStateMachine = new StateMachine<Step, VirtualMachine.Event>();
static {
- MigrationStateMachine.addTransition(null, VirtualMachine.Event.MigrationRequested, Step.Prepare);
+ MigrationStateMachine.addTransition(Step.Filed, VirtualMachine.Event.MigrationRequested, Step.Prepare);
MigrationStateMachine.addTransition(Step.Prepare, VirtualMachine.Event.OperationSucceeded, Step.Migrating);
MigrationStateMachine.addTransition(Step.Prepare, VirtualMachine.Event.OperationFailed, Step.Error);
MigrationStateMachine.addTransition(Step.Migrating, VirtualMachine.Event.OperationSucceeded, Step.Started);
@@ -1462,16 +1462,15 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
workJob = new VmWorkJobVO(context.getContextId());
workJob.setDispatcher(VmWorkJobDispatcher.VM_WORK_JOB_DISPATCHER);
- workJob.setCmd(VmWorkJobDispatcher.Start);
+ workJob.setCmd(VmWorkJobDispatcher.Migrate);
workJob.setAccountId(account.getId());
workJob.setUserId(user.getId());
- workJob.setStep(VmWorkJobVO.Step.Migrating);
workJob.setVmType(vm.getType());
workJob.setVmInstanceId(vm.getId());
// save work context info (there are some duplications)
- VmWorkMigrate workInfo = new VmWorkMigrate(user.getId(), account.getId(), vm.getId(), dest);
+ VmWorkMigrate workInfo = new VmWorkMigrate(user.getId(), account.getId(), vm.getId(), srcHostId, dest);
workJob.setCmdInfo(VmWorkJobDispatcher.serialize(workInfo));
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/241d5469/engine/orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java b/engine/orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java
index f869bf6..272a18b 100644
--- a/engine/orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java
+++ b/engine/orchestration/src/com/cloud/vm/VmWorkJobDispatcher.java
@@ -78,8 +78,10 @@ public class VmWorkJobDispatcher extends AdapterBase implements AsyncJobDispatch
if (cmd.equals(Start)) {
work = deserialize(VmWorkStart.class, job.getCmdInfo());
- } else {
+ } else if (cmd.equals(Stop)){
work = deserialize(VmWorkStop.class, job.getCmdInfo());
+ } else if (cmd.equals(Migrate)) {
+ work = deserialize(VmWorkMigrate.class, job.getCmdInfo());
}
assert(work != null);
@@ -97,6 +99,9 @@ public class VmWorkJobDispatcher extends AdapterBase implements AsyncJobDispatch
} else if (cmd.equals(Stop)) {
VmWorkStop stop = (VmWorkStop)work;
_vmMgr.orchestrateStop(vm.getUuid(), stop.isCleanup());
+ } else if (cmd.equals(Migrate)) {
+ VmWorkMigrate migrate = (VmWorkMigrate)work;
+ _vmMgr.orchestrateMigrate(vm.getUuid(), migrate.getSrcHostId(), migrate.getDeployDestination());
}
_asyncJobMgr.completeAsyncJob(job.getId(), JobInfo.Status.SUCCEEDED, 0, null);
} catch(Throwable e) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/241d5469/engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java b/engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java
index 85892fd..f4543b8 100644
--- a/engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java
+++ b/engine/orchestration/src/com/cloud/vm/VmWorkMigrate.java
@@ -34,9 +34,11 @@ public class VmWorkMigrate extends VmWork {
Long clusterId;
Long hostId;
private Map<String, String> storage;
+ long srcHostId;
- public VmWorkMigrate(long userId, long accountId, long vmId, DeployDestination dst) {
+ public VmWorkMigrate(long userId, long accountId, long vmId, long srcHostId, DeployDestination dst) {
super(userId, accountId, vmId);
+ this.srcHostId = srcHostId;
zoneId = dst.getDataCenter() != null ? dst.getDataCenter().getId() : null;
podId = dst.getPod() != null ? dst.getPod().getId() : null;
clusterId = dst.getCluster() != null ? dst.getCluster().getId() : null;
@@ -70,6 +72,10 @@ public class VmWorkMigrate extends VmWork {
return dest;
}
+ public long getSrcHostId() {
+ return srcHostId;
+ }
+
static private EntityManager s_entityMgr;
static public void init(EntityManager entityMgr) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/241d5469/engine/schema/src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java b/engine/schema/src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java
index e8c0304..824f8e7 100644
--- a/engine/schema/src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java
+++ b/engine/schema/src/org/apache/cloudstack/vm/jobs/VmWorkJobVO.java
@@ -35,9 +35,10 @@ import com.cloud.vm.VirtualMachine;
@PrimaryKeyJoinColumn(name="id")
public class VmWorkJobVO extends AsyncJobVO {
- // These steps are rather arbiturary. What's recorded depends on the
+ // These steps are rather arbitrary. What's recorded depends on the
// the operation being performed.
public enum Step {
+ Filed(false),
Prepare(false),
Starting(true),
Started(false),
@@ -71,6 +72,7 @@ public class VmWorkJobVO extends AsyncJobVO {
}
public VmWorkJobVO(String related) {
+ step = Step.Filed;
setRelated(related);
}
[3/3] git commit: updated refs/heads/vmsync to 1f0186a
Posted by ah...@apache.org.
Removed all traces of casting
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1f0186aa
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1f0186aa
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1f0186aa
Branch: refs/heads/vmsync
Commit: 1f0186aafec37462fccc002e56ec2ece15a6c173
Parents: 241d546
Author: Alex Huang <al...@gmail.com>
Authored: Tue Jun 25 17:20:39 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Tue Jun 25 17:20:39 2013 -0700
----------------------------------------------------------------------
.../com/cloud/hypervisor/guru/VMwareGuru.java | 4 ++--
.../network/element/VirtualRouterElement.java | 23 +++++++++-----------
.../VirtualNetworkApplianceManagerImpl.java | 3 ++-
.../com/cloud/storage/VolumeManagerImpl.java | 14 +++++-------
4 files changed, 20 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f0186aa/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
index 60839b1..9d2b842 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
@@ -117,8 +117,8 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru {
details = new HashMap<String, String>();
String nicDeviceType = details.get(VmDetailConstants.NIC_ADAPTER);
- if(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO
- || vm.getVirtualMachine() instanceof SecondaryStorageVmVO) {
+ if (vm.getType() == VirtualMachine.Type.DomainRouter || vm.getType() == VirtualMachine.Type.ConsoleProxy
+ || vm.getType() == VirtualMachine.Type.SecondaryStorageVm) {
if(nicDeviceType == null) {
details.put(VmDetailConstants.NIC_ADAPTER, _vmwareMgr.getSystemVMDefaultNicAdapterType());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f0186aa/server/src/com/cloud/network/element/VirtualRouterElement.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java
index 22eb86a..d2314e0 100755
--- a/server/src/com/cloud/network/element/VirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VirtualRouterElement.java
@@ -79,8 +79,10 @@ import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.user.AccountManager;
+import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase;
+import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
@@ -89,7 +91,6 @@ import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.UserVmManager;
-import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VirtualMachine.Type;
@@ -143,6 +144,8 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
VirtualRouterProviderDao _vrProviderDao;
@Inject
IPAddressDao _ipAddressDao;
+ @Inject
+ EntityManager _entityMgr;
protected boolean canHandle(Network network, Service service) {
Long physicalNetworkId = _networkMgr.getPhysicalNetworkId(network);
@@ -1026,12 +1029,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return true;
}
if (vm.getType() == Type.DomainRouter) {
- assert vm instanceof DomainRouterVO;
- DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
+ DomainRouterVO router = _entityMgr.findById(DomainRouterVO.class, vm.getId());
_routerMgr.setupDhcpForPvlan(false, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){
- assert vm instanceof UserVmVO;
- UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
+ UserVm userVm = _entityMgr.findById(UserVm.class, vm.getId());
_userVmMgr.setupVmForPvlan(false, userVm.getHostId(), nic);
}
return true;
@@ -1045,12 +1046,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return;
}
if (vm.getType() == Type.DomainRouter) {
- assert vm instanceof DomainRouterVO;
- DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
+ DomainRouterVO router = _entityMgr.findById(DomainRouterVO.class, vm.getId());
_routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){
- assert vm instanceof UserVmVO;
- UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
+ UserVm userVm = _entityMgr.findById(UserVm.class, vm.getId());
_userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic);
}
}
@@ -1063,12 +1062,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return;
}
if (vm.getType() == Type.DomainRouter) {
- assert vm instanceof DomainRouterVO;
- DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
+ DomainRouterVO router = _entityMgr.findById(DomainRouterVO.class, vm.getId());
_routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){
- assert vm instanceof UserVmVO;
- UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
+ UserVm userVm = _entityMgr.findById(UserVm.class, vm.getId());
_userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic);
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f0186aa/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 9bceb32..488577e 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -486,7 +486,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
@Override
public boolean savePasswordToRouter(Network network, final NicProfile nic, VirtualMachineProfile profile, List<? extends VirtualRouter> routers)
throws ResourceUnavailableException {
- _userVmDao.loadDetails((UserVmVO)profile.getVirtualMachine());
+ UserVmVO vm = _userVmDao.findById(profile.getId());
+ _userVmDao.loadDetails(vm);
final VirtualMachineProfile updatedProfile = profile;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f0186aa/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 235adf6..da2f9c4 100644
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@ -33,7 +33,6 @@ import javax.naming.ConfigurationException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
@@ -162,6 +161,7 @@ import com.cloud.utils.Pair;
import com.cloud.utils.UriUtils;
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.DB;
+import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException;
@@ -182,10 +182,8 @@ import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
-@Component
public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
- private static final Logger s_logger = Logger
- .getLogger(VolumeManagerImpl.class);
+ private static final Logger s_logger = Logger.getLogger(VolumeManagerImpl.class);
@Inject
protected UserVmManager _userVmMgr;
@Inject
@@ -328,6 +326,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
UploadMonitor _uploadMonitor;
@Inject
UploadDao _uploadDao;
+ @Inject
+ EntityManager _entityMgr;
private int _copyvolumewait;
@Inject
@@ -2209,9 +2209,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
}
@Override
- public void prepareForMigration(
- VirtualMachineProfile vm,
- DeployDestination dest) {
+ public void prepareForMigration(VirtualMachineProfile vm, DeployDestination dest) {
List<VolumeVO> vols = _volsDao.findUsableVolumesForInstance(vm.getId());
if (s_logger.isDebugEnabled()) {
s_logger.debug("Preparing " + vols.size() + " volumes for " + vm);
@@ -2224,7 +2222,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
}
if (vm.getType() == VirtualMachine.Type.User) {
- UserVmVO userVM = (UserVmVO) vm.getVirtualMachine();
+ UserVm userVM = _entityMgr.findById(UserVm.class, vm.getId());
if (userVM.getIsoId() != null) {
DataTO dataTO = tmplFactory.getTemplate(userVM.getIsoId(), DataStoreRole.Image, userVM.getDataCenterId()).getTO();
DiskTO iso = new DiskTO(dataTO, 3L, Volume.Type.ISO);