Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.TimeZone;
Expand Down Expand Up @@ -1685,7 +1686,7 @@ private List<StoragePool> findAllSuitableStoragePoolsForVm(final VolumeVO volume

DiskOfferingVO diskOffering = _diskOfferingDao.findById(diskOfferingId);
DiskProfile diskProfile = new DiskProfile(volume, diskOffering, hypervisorType);
if (volume.getDiskOfferingId() != diskOfferingId) {
if (!Objects.equals(volume.getDiskOfferingId(), diskOfferingId)) {
diskProfile.setSize(newSize);
diskProfile.setMinIops(newMinIops);
diskProfile.setMaxIops(newMaxIops);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1697,10 +1697,10 @@ private Volume changeDiskOfferingForVolumeInternal(VolumeVO volume, Long newDisk
boolean volumeResizeRequired = false;

// VALIDATIONS
Long updateNewSize[] = {newSize};
Long updateNewMinIops[] = {newMinIops};
Long updateNewMaxIops[] = {newMaxIops};
Integer updateNewHypervisorSnapshotReserve[] = {newHypervisorSnapshotReserve};
Long[] updateNewSize = {newSize};
Long[] updateNewMinIops = {newMinIops};
Long[] updateNewMaxIops = {newMaxIops};
Integer[] updateNewHypervisorSnapshotReserve = {newHypervisorSnapshotReserve};
validateVolumeResizeWithNewDiskOfferingAndLoad(volume, existingDiskOffering, newDiskOffering, updateNewSize, updateNewMinIops, updateNewMaxIops, updateNewHypervisorSnapshotReserve);
newSize = updateNewSize[0];
newMinIops = updateNewMinIops[0];
Expand Down
41 changes: 41 additions & 0 deletions test/integration/smoke/test_service_offerings.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@
cleanup_resources,
random_gen)
from marvin.lib.base import (ServiceOffering,
Configurations,
DiskOffering,
Account,
StoragePool,
VirtualMachine)
from marvin.lib.common import (list_service_offering,
list_virtual_machines,
Expand Down Expand Up @@ -715,6 +717,16 @@ def test_06_disk_offering_strictness_false(self):

if self.hypervisor.lower() == "lxc":
self.skipTest("Skipping this test for {} due to bug CS-38153".format(self.hypervisor))
self.storeCloneValues = {}
if self.hypervisor.lower() == "vmware":
self.fullClone = Configurations.list(self.apiclient, name="vmware.create.full.clone")
assert isinstance(self.fullClone, list), "Config list not retrieved for vmware.create.full.clone"
allStoragePools = StoragePool.list(
self.apiclient
)
for pool in allStoragePools:
self.storeCloneValues[pool.id] = Configurations.list(self.apiclient, name="vmware.create.full.clone", storageid=pool.id)[0].value.lower()
self.updateVmwareCreateFullCloneSetting(False)

offering_data = {
'displaytext': 'TestDiskOfferingStrictnessFalse',
Expand Down Expand Up @@ -811,8 +823,37 @@ def test_06_disk_offering_strictness_false(self):
"Check service offering of the VM"
)

if self.hypervisor.lower() == "vmware":
self.updateVmwareCreateFullCloneSetting(True)

return

def updateVmwareCreateFullCloneSetting(self, tearDown):
if not tearDown:
Configurations.update(self.apiclient,
"vmware.create.full.clone",
"true")
allStoragePools = StoragePool.list(
self.apiclient
)
for pool in allStoragePools:
Configurations.update(self.apiclient,
storageid=pool.id,
name="vmware.create.full.clone",
value="true")
else:
Configurations.update(self.apiclient,
"vmware.create.full.clone",
self.fullClone[0].value.lower())
allStoragePools = StoragePool.list(
self.apiclient
)
for pool in allStoragePools:
Configurations.update(self.apiclient,
storageid=pool.id,
name="vmware.create.full.clone",
value=self.storeCloneValues[pool.id])

class TestCpuCapServiceOfferings(cloudstackTestCase):

def setUp(self):
Expand Down