/***************************************************************************
* Copyright (c) 2012-2013 VMware, Inc. All Rights Reserved.
* Licensed 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.vmware.aurora.composition;
import com.vmware.aurora.composition.TestSP.CleanUpSP;
import com.vmware.aurora.composition.TestSP.CloneVmSP;
import com.vmware.aurora.composition.TestSP.RemoveSnapshotSP;
import com.vmware.aurora.composition.TestSP.TakeSnapshotSP;
import com.vmware.aurora.vc.DeviceId;
import com.vmware.aurora.vc.VcDatastore;
import com.vmware.aurora.vc.VcResourcePool;
import com.vmware.aurora.vc.VcVirtualMachine.DiskCreateSpec;
/**
* Test utility functions.
*
*/
public class TestUtil {
TestSP testSP;
public TestUtil() {
this.testSP = new TestSP();
}
/**
* Test method for importing target vm.
*
* @param vmName the name of the import vm
* @param rp the resource pool the import vm is in
* @return the import vm store procedure
*/
public ImportVmSP testImportVM(String vmName, VcResourcePool rp)
throws Exception {
ImportVmSP sp = new ImportVmSP(rp, vmName);
sp.call();
return sp;
}
/**
* Test method for taking snapshot
*
* @param id The id of the VM
* @param description The description of the snapshot
* @return : the take snapshot store procedure
*/
public TakeSnapshotSP testTakeSnapshot(String vmId, String name, String description)
throws Exception {
TakeSnapshotSP sp = testSP.new TakeSnapshotSP(vmId, name, description);
sp.call();
return sp;
}
/**
* Test method for removing snapshot
*
* @param id The id of the TmObject
* @return : the take snapshot store procedure
*/
public RemoveSnapshotSP testRemoveSnapshot(String vmId, String snapName) throws Exception {
RemoveSnapshotSP sp = testSP.new RemoveSnapshotSP(vmId, snapName);
sp.call();
return sp;
}
/**
* Test method for cloning a vm
*
* @param newVmName new name for the cloned vm
* @param srcVmId id of the vm that we are cloning from
* @param snapName name of the snapshot we are cloning from
* @param targetRp the target resource pool
* @param targetDs the target datastore
* @param removeDisks disks that we want to remove during the clone
* procedure
* @param addDisks disks that we want to add during the clone procedure
* @return the clone store procedure
*/
public CloneVmSP testCloneVm(String newVmName, String srcVmId,
String snapName, VcResourcePool targetRp, VcDatastore targetDs,
DeviceId[] removeDisks, DiskCreateSpec[] addDisks)
throws Exception {
CloneVmSP sp =
testSP.new CloneVmSP(newVmName, srcVmId, snapName, targetRp,
targetDs, removeDisks, addDisks);
sp.call();
return sp;
}
/**
* Test method for deleting a vm
*
* @param vmId id of the vm that is going to be deleted
* @return the cleanup store procedure
*/
public CleanUpSP testCleanupVm(String vmId) throws Exception {
CleanUpSP sp = testSP.new CleanUpSP(vmId);
sp.call();
return sp;
}
}