-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/10196/#review19306
-----------------------------------------------------------

Ship it!


Ship It!

- edison su


On April 15, 2013, 7:24 a.m., Devdeep Singh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/10196/
> -----------------------------------------------------------
> 
> (Updated April 15, 2013, 7:24 a.m.)
> 
> 
> Review request for cloudstack, Abhinandan Prateek, edison su, Alex Huang, and 
> anthony xu.
> 
> 
> Description
> -------
> 
> Storage motion for Xenserver. FS for the feature 
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Enabling+Storage+XenMotion+for+XenServer
>     1. Implemented Api findStoragePoolsForMigration. Added a new response 
> objects to list storage pools available for migration.
>     2. Updated migrateVolume api for allowing migrating volumes of running 
> vms. These changes are integrated into the latest storage refactoring changes.
>     3. Added the implementation for findHostsForMigration api. It lists the 
> hosts to which an instance can be migrated, including hosts from within and 
> across clusters to which an instance may be migrated with storage motion. The 
> work of migrating a volume of a running vm is also done in copyAsync.
>     4. Updated the listHosts api for backward compatibility.
>     5. Added the implementation for migrateVirtualMachineWithVolume api. It 
> migrates an instance with its volumes within a cluster and also across 
> clusters. Also introduced a new XenServerStorageMotionStrategy for migrating 
> volumes of a vm. When a vm is being migrated with its volumes, the vm is put 
> in migrating state and a request is send to the volume manager to migrate the 
> vm and its volumes. Volume manager calls into the volume service which 
> forwards the request to data motion service after moving all the volumes to 
> migrating state. Data motion service enumerates the strategies and the 
> request reaches the XenServerStorageMotionStrategy. It calls in to the 
> resource to complete the operation.
>     6. Resolved an issue where storage xenmotion of 2nd VM created from the 
> same template to a host was failing with duplicate_vm exception. Made changes 
> to remove the mac_seed key value pair from other_config when vms are created. 
> This is was storage motion to fail.
>     7. Updated the db upgrade schema script.
>     8. Added the right permissions in commands.properties
>     9. Marvin tests for testing storage motion. Following scenarios are 
> tested.
>     9.1. A virtual machine is migrated to another host. Its volumes are also 
> migrated to another storage pool.
>     9.2. Just the volumes of a vm are migrated to another storage pool while 
> the vm continues to run on the same host.
>     10. Unit tests for testing migration of a vm with its volumes.
> 
> 
> This addresses bug https://issues.apache.org/jira/browse/CLOUDSTACK-659.
> 
> 
> Diffs
> -----
> 
>   api/src/com/cloud/agent/api/MigrateWithStorageAnswer.java PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageCommand.java PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageCompleteAnswer.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageCompleteCommand.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageReceiveAnswer.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageReceiveCommand.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageSendAnswer.java PRE-CREATION 
>   api/src/com/cloud/agent/api/MigrateWithStorageSendCommand.java PRE-CREATION 
>   api/src/com/cloud/agent/api/storage/MigrateVolumeAnswer.java PRE-CREATION 
>   api/src/com/cloud/agent/api/storage/MigrateVolumeCommand.java PRE-CREATION 
>   api/src/com/cloud/hypervisor/HypervisorCapabilities.java aff81b0 
>   api/src/com/cloud/server/ManagementService.java 6e6dbc3 
>   api/src/com/cloud/vm/UserVmService.java d963b74 
>   api/src/org/apache/cloudstack/api/ApiConstants.java b08e992 
>   api/src/org/apache/cloudstack/api/ResponseGenerator.java c0dd57e 
>   
> api/src/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
>  PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java 
> 29844c3 
>   
> api/src/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
>  PRE-CREATION 
>   
> api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
>  PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/user/volume/MigrateVolumeCmd.java 
> 287241a 
>   api/src/org/apache/cloudstack/api/response/HostForMigrationResponse.java 
> PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/HostResponse.java f5aa8f9 
>   
> api/src/org/apache/cloudstack/api/response/StoragePoolForMigrationResponse.java
>  PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java 0b16226 
>   client/tomcatconf/applicationContext.xml.in 15cd6fe 
>   client/tomcatconf/commands.properties.in 798d226 
>   core/src/com/cloud/hypervisor/HypervisorCapabilitiesVO.java fafc0a3 
>   
> engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/ObjectInDataStoreStateMachine.java
>  f619ef4 
>   
> engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java
>  102c471 
>   
> engine/storage/imagemotion/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionStrategy.java
>  a70fd8a 
>   
> engine/storage/integration-test/test/org/apache/cloudstack/storage/test/MockStorageMotionStrategy.java
>  b619ee9 
>   
> engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
>  3602bb1 
>   
> engine/storage/src/org/apache/cloudstack/storage/motion/DataMotionService.java
>  db36f64 
>   
> engine/storage/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java
>  343140f 
>   
> engine/storage/src/org/apache/cloudstack/storage/motion/DataMotionStrategy.java
>  ba40c6d 
>   
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
>  ceadb25 
>   
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
>  32e7d27 
>   
> plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java
>  a672efd 
>   
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
>  4ef583a 
>   
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java
>  d64e173 
>   
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServer610Resource.java
>  8d267b1 
>   
> plugins/hypervisors/xen/src/org/apache/cloudstack/storage/motion/XenServerStorageMotionStrategy.java
>  PRE-CREATION 
>   server/src/com/cloud/agent/manager/allocator/HostAllocator.java 60027e7 
>   server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java 
> 0091e43 
>   server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java 
> 90bd956 
>   server/src/com/cloud/api/ApiDBUtils.java 303f328 
>   server/src/com/cloud/api/ApiResponseHelper.java 50c137a 
>   server/src/com/cloud/api/query/ViewResponseHelper.java dc2727e 
>   server/src/com/cloud/api/query/dao/HostJoinDao.java 1a21299 
>   server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1adff40 
>   server/src/com/cloud/api/query/dao/StoragePoolJoinDao.java bbb0242 
>   server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java 58968df 
>   server/src/com/cloud/server/ManagementServerImpl.java d9a4317 
>   server/src/com/cloud/storage/VolumeManager.java 2101038 
>   server/src/com/cloud/storage/VolumeManagerImpl.java 1e8edaf 
>   server/src/com/cloud/vm/UserVmManagerImpl.java d281e5b 
>   server/src/com/cloud/vm/VirtualMachineManager.java 4a30d97 
>   server/src/com/cloud/vm/VirtualMachineManagerImpl.java 4072531 
>   server/test/com/cloud/vm/MockUserVmManagerImpl.java fd826d9 
>   server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java 4917e77 
>   server/test/com/cloud/vm/VirtualMachineManagerImplTest.java 322f051 
>   setup/db/db/schema-410to420.sql 92b2d9c 
>   test/integration/component/test_storage_motion.py PRE-CREATION 
>   tools/marvin/marvin/integration/lib/base.py 3df68ab 
> 
> Diff: https://reviews.apache.org/r/10196/diff/
> 
> 
> Testing
> -------
> 
> 1. Unit tests for testing vm migration with volume. They test when a vm is 
> migrated within a cluster or across cluster. Also added negative tests for 
> the scenrios.
> 2. Marvin tests to do functional testing. Including tests to varify vm 
> migration with volume across cluster.
> 3. Marvin test for volume migration to another storage pool in the cluster 
> while the vm continues to run on the same host.
> 4. Also did additional manual testing for the following scenarios:
> 4.1 VM migration with volumes within and across cluster.
> 4.2 Tested both the scenarios when 'migrateto' optional parameter is passed 
> to the migrate vm with volume api. When it isn't passed, cloudstack picks up 
> a storage pool for migration. When it is passed, the volume is migrated to 
> the pool passed in the parameter.
> 4.3 Tested that storage tags are honored when a vm is migrated with its 
> volumes.
> 4.4 Tested volume migration when the vm stays on the same host.
> 4.5 For volume migration verified that storage tags are honored.
> 
> Other tests done to verify patch:
> 1. Verified that there are no rat failures.
> 2. Applied the patch to verify it applies cleanly.
> 
> 
> Thanks,
> 
> Devdeep Singh
> 
>

Reply via email to