Skip to content

Commit c23cbdf

Browse files
DK101010DK101010mib1185
authored
Remove condition that are prevent resizing for root volumes (vmware) (#5186)
* remove condition that are prevent resizing for root volumes * adjust tests acordingly * enable disk resize tests for VMware Co-authored-by: DK101010 <dirk.klahre@itelligence.de> Co-authored-by: mib1185 <mail@mib85.de>
1 parent eff2da2 commit c23cbdf

3 files changed

Lines changed: 14 additions & 27 deletions

File tree

server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,10 +1159,6 @@ public VolumeVO resizeVolume(ResizeVolumeCmd cmd) throws ResourceAllocationExcep
11591159
UserVmVO userVm = _userVmDao.findById(volume.getInstanceId());
11601160

11611161
if (userVm != null) {
1162-
if (volume.getVolumeType().equals(Volume.Type.ROOT) && userVm.getPowerState() != VirtualMachine.PowerState.PowerOff && hypervisorType == HypervisorType.VMware) {
1163-
s_logger.error(" For ROOT volume resize VM should be in Power Off state.");
1164-
throw new InvalidParameterValueException("VM current state is : " + userVm.getPowerState() + ". But VM should be in " + VirtualMachine.PowerState.PowerOff + " state.");
1165-
}
11661162
// serialize VM operation
11671163
AsyncJobExecutionContext jobContext = AsyncJobExecutionContext.getCurrentExecutionContext();
11681164

test/integration/component/test_rootvolume_resize.py

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -228,25 +228,22 @@ def chk_volume_resize(self, apiclient, vm):
228228
listall='True'
229229
)
230230
rootvolume = list_volume_response[0]
231-
if vm.state == "Running" and \
232-
(vm.hypervisor.lower() == "xenserver" or \
233-
vm.hypervisor.lower() == "vmware"):
231+
if vm.state == "Running" and vm.hypervisor.lower() == "xenserver":
234232
self.virtual_machine.stop(apiclient)
235233
time.sleep(self.services["sleep"])
236-
if vm.hypervisor.lower() == "vmware":
237-
rootdiskcontroller = self.getDiskController(vm)
238-
if rootdiskcontroller!="scsi":
239-
raise Exception("root volume resize only supported on scsi disk ,"
240-
"please check rootdiskcontroller type")
234+
if vm.hypervisor.lower() == "vmware":
235+
rootdiskcontroller = self.getDiskController(vm)
236+
if rootdiskcontroller!="scsi":
237+
raise Exception("root volume resize only supported on scsi disk ,"
238+
"please check rootdiskcontroller type")
241239

242240
rootvolobj = Volume(rootvolume.__dict__)
243241
newsize = (rootvolume.size >> 30) + 2
244242
success = False
245243
if rootvolume is not None:
246244
try:
247245
rootvolobj.resize(apiclient, size=newsize)
248-
if vm.hypervisor.lower() == "xenserver" or \
249-
vm.hypervisor.lower() == "vmware":
246+
if vm.hypervisor.lower() == "xenserver":
250247
self.virtual_machine.start(apiclient)
251248
time.sleep(self.services["sleep"])
252249
ssh = SshClient(self.virtual_machine.ssh_ip, 22,
@@ -916,9 +913,7 @@ def test_6_resized_rootvolume_with_lessvalue(self):
916913
)
917914
res = validateList(list_volume_response)
918915
self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
919-
if vm.state == "Running" and (
920-
vm.hypervisor.lower() == "xenserver" or
921-
vm.hypervisor.lower() == "vmware"):
916+
if vm.state == "Running" and vm.hypervisor.lower() == "xenserver":
922917
self.virtual_machine.stop(self.apiclient)
923918
time.sleep(self.services["sleep"])
924919

@@ -998,9 +993,7 @@ def test_7_usage_events_after_rootvolume_resized_(self):
998993
)
999994
res = validateList(list_volume_response)
1000995
self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
1001-
if vm.state == "Running" and (
1002-
vm.hypervisor.lower() == "xenserver" or
1003-
vm.hypervisor.lower() == "vmware"):
996+
if vm.state == "Running" and vm.hypervisor.lower() == "xenserver":
1004997
self.virtual_machine.stop(self.apiclient)
1005998
time.sleep(self.services["sleep"])
1006999
rootvolume = list_volume_response[0]
@@ -1115,9 +1108,7 @@ def test_08_increase_volume_size_within_account_limit(self):
11151108
)
11161109
res = validateList(list_volume_response)
11171110
self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
1118-
if vm.state == "Running" and \
1119-
(vm.hypervisor.lower() == "xenserver" or
1120-
vm.hypervisor.lower() == "vmware"):
1111+
if vm.state == "Running" and vm.hypervisor.lower() == "xenserver":
11211112
self.virtual_machine.stop(self.apiclient)
11221113
time.sleep(self.services["sleep"])
11231114
rootvolume = list_volume_response[0]

test/integration/smoke/test_volumes.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -627,8 +627,8 @@ def test_07_resize_fail(self):
627627

628628
if hosts[0].hypervisor == "XenServer":
629629
self.virtual_machine.stop(self.apiClient)
630-
elif hosts[0].hypervisor.lower() in ("vmware", "hyperv"):
631-
self.skipTest("Resize Volume is unsupported on VmWare and Hyper-V")
630+
elif hosts[0].hypervisor.lower() == "hyperv":
631+
self.skipTest("Resize Volume is unsupported on Hyper-V")
632632

633633
# Attempting to resize it should throw an exception, as we're using a non
634634
# customisable disk offering, therefore our size parameter should be ignored
@@ -659,8 +659,8 @@ def test_08_resize_volume(self):
659659

660660
if hosts[0].hypervisor == "XenServer":
661661
self.virtual_machine.stop(self.apiClient)
662-
elif hosts[0].hypervisor.lower() in ("vmware", "hyperv"):
663-
self.skipTest("Resize Volume is unsupported on VmWare and Hyper-V")
662+
elif hosts[0].hypervisor.lower() == "hyperv":
663+
self.skipTest("Resize Volume is unsupported on Hyper-V")
664664

665665
# resize the data disk
666666
self.debug("Resize Volume ID: %s" % self.volume.id)

0 commit comments

Comments
 (0)