This is an automated email from the ASF dual-hosted git repository.
nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new ee947e1 [marvin, VMware] Fix repeated test failures observed on
'main' branch (#5992)
ee947e1 is described below
commit ee947e13100b4878233f45d68b84cb2c8226c4d4
Author: Pearl Dsilva <[email protected]>
AuthorDate: Wed Feb 16 22:16:03 2022 +0530
[marvin, VMware] Fix repeated test failures observed on 'main' branch
(#5992)
* [marvin, VMware] Fix test_06_disk_offering_strictness_false observed on
'main' branch
* Fix test
* update config only if false
* reset full clone setting to original values
---
.../com/cloud/server/ManagementServerImpl.java | 3 +-
.../com/cloud/storage/VolumeApiServiceImpl.java | 8 ++---
test/integration/smoke/test_service_offerings.py | 41 ++++++++++++++++++++++
3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java
b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
index 7c900a7..4082b52 100644
--- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
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;
@@ -1685,7 +1686,7 @@ public class ManagementServerImpl extends ManagerBase
implements ManagementServe
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);
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 3bee5df..bad3806 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -1697,10 +1697,10 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
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];
diff --git a/test/integration/smoke/test_service_offerings.py
b/test/integration/smoke/test_service_offerings.py
index 1f17191..f266616 100644
--- a/test/integration/smoke/test_service_offerings.py
+++ b/test/integration/smoke/test_service_offerings.py
@@ -25,8 +25,10 @@ from marvin.lib.utils import (isAlmostEqual,
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,
@@ -715,6 +717,16 @@ class TestServiceOfferings(cloudstackTestCase):
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',
@@ -811,8 +823,37 @@ class TestServiceOfferings(cloudstackTestCase):
"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):