Copilot commented on code in PR #11748:
URL: https://github.com/apache/cloudstack/pull/11748#discussion_r2735189363
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
Review Comment:
`test_07_take_snapshot_multi_zone_deply_vm_additional_zone` has a typo in
the test name ("deply" -> "deploy"). This makes the test name harder to
search/understand and is inconsistent with the other test names in this file.
```suggestion
def test_07_take_snapshot_multi_zone_deploy_vm_additional_zone(self):
```
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones and deploy a VM from snapshot in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm = self.deploy_vm_from_snapshot(snapshot, self.additional_zone.id)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
+ return
+
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def
test_08_take_snapshot_multi_zone_create_volume_additional_zone_deploy_vm(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones
+ create a volume from the snapshot in the additional zone
+ and deploy a VM from the volume in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self.cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm =
self.create_volume_from_snapshot_deploy_vm(snapshotid=self.snapshot_id,
zoneid=self.additional_zone.id)
time.sleep(420)
- Snapshot.delete(snapshot, self.userapiclient)
- self.cleanup.append(self.template)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
return
+
+ def create_volume_from_snapshot_deploy_vm(self, snapshotid, zoneid=None):
+ volume = Volume.create_from_snapshot(
+ self.apiclient,
+ snapshot_id=snapshotid,
+ services=self.services,
+ disk_offering=self.disk_offerings.id,
+ size=8,
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+ )
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ volumeid=volume.id,
+ mode="basic",
+ )
Review Comment:
In `create_volume_from_snapshot_deploy_vm`, the volume created from the
snapshot is never added to any cleanup list. If VM creation or the SSH check
fails, the test will exit early and the standalone volume will be left behind.
Add the created volume to `self.cleanup`/`self._cleanup` immediately after
creation (and consider cleaning it up on VM-create failures) so resources are
reliably released.
```suggestion
# Ensure the created volume is tracked for cleanup so it is not left
behind
self._cleanup.append(volume)
try:
virtual_machine = VirtualMachine.create(
self.apiclient,
{"name": "Test-%s" % uuid.uuid4()},
accountid=self.account.name,
domainid=self.account.domainid,
zoneid=zoneid,
serviceofferingid=self.service_offering.id,
volumeid=volume.id,
mode="basic",
)
except Exception as e:
# If VM creation fails, attempt to delete the standalone volume
try:
volume.delete(self.apiclient)
except Exception as delete_exc:
logging.warning(
"Failed to delete volume %s after VM creation failure:
%s",
getattr(volume, "id", None),
delete_exc,
)
if volume in self._cleanup:
self._cleanup.remove(volume)
self.fail("VM creation from volume %s failed: %s" %
(getattr(volume, "id", None), e))
```
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones and deploy a VM from snapshot in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm = self.deploy_vm_from_snapshot(snapshot, self.additional_zone.id)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
+ return
+
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def
test_08_take_snapshot_multi_zone_create_volume_additional_zone_deploy_vm(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones
+ create a volume from the snapshot in the additional zone
+ and deploy a VM from the volume in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self.cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm =
self.create_volume_from_snapshot_deploy_vm(snapshotid=self.snapshot_id,
zoneid=self.additional_zone.id)
time.sleep(420)
- Snapshot.delete(snapshot, self.userapiclient)
- self.cleanup.append(self.template)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
return
+
+ def create_volume_from_snapshot_deploy_vm(self, snapshotid, zoneid=None):
+ volume = Volume.create_from_snapshot(
+ self.apiclient,
+ snapshot_id=snapshotid,
+ services=self.services,
+ disk_offering=self.disk_offerings.id,
+ size=8,
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+ )
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ volumeid=volume.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
+ except Exception as e:
+ self.fail("SSH failed for virtual machine: %s - %s" %
+ (virtual_machine.ipaddress, e))
+ return virtual_machine
+
+ def deploy_vm_from_snapshot(self, snapshot, zoneid=None):
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ snapshotid=snapshot.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
Review Comment:
This helper adds the created VM to `self._cleanup` (class-level), which
defers deletion until `tearDownClass`. Given this class already uses
`self.cleanup` in `tearDown()` for test-scoped resources, consider using
`self.cleanup` here too so each test cleans up its own VM and doesn't leave
extra VMs around for subsequent tests in the same class.
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones and deploy a VM from snapshot in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm = self.deploy_vm_from_snapshot(snapshot, self.additional_zone.id)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
+ return
+
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def
test_08_take_snapshot_multi_zone_create_volume_additional_zone_deploy_vm(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones
+ create a volume from the snapshot in the additional zone
+ and deploy a VM from the volume in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self.cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm =
self.create_volume_from_snapshot_deploy_vm(snapshotid=self.snapshot_id,
zoneid=self.additional_zone.id)
time.sleep(420)
- Snapshot.delete(snapshot, self.userapiclient)
- self.cleanup.append(self.template)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
return
+
+ def create_volume_from_snapshot_deploy_vm(self, snapshotid, zoneid=None):
+ volume = Volume.create_from_snapshot(
+ self.apiclient,
+ snapshot_id=snapshotid,
+ services=self.services,
+ disk_offering=self.disk_offerings.id,
+ size=8,
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+ )
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ volumeid=volume.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
Review Comment:
Variable ssh_client is not used.
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones and deploy a VM from snapshot in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm = self.deploy_vm_from_snapshot(snapshot, self.additional_zone.id)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
+ return
+
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def
test_08_take_snapshot_multi_zone_create_volume_additional_zone_deploy_vm(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones
+ create a volume from the snapshot in the additional zone
+ and deploy a VM from the volume in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self.cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm =
self.create_volume_from_snapshot_deploy_vm(snapshotid=self.snapshot_id,
zoneid=self.additional_zone.id)
time.sleep(420)
- Snapshot.delete(snapshot, self.userapiclient)
- self.cleanup.append(self.template)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
return
+
+ def create_volume_from_snapshot_deploy_vm(self, snapshotid, zoneid=None):
+ volume = Volume.create_from_snapshot(
+ self.apiclient,
+ snapshot_id=snapshotid,
+ services=self.services,
+ disk_offering=self.disk_offerings.id,
+ size=8,
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+ )
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ volumeid=volume.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
+ except Exception as e:
+ self.fail("SSH failed for virtual machine: %s - %s" %
+ (virtual_machine.ipaddress, e))
+ return virtual_machine
+
+ def deploy_vm_from_snapshot(self, snapshot, zoneid=None):
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ snapshotid=snapshot.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
Review Comment:
Variable ssh_client is not used.
##########
test/integration/smoke/test_vm_lifecycle_with_snapshot_or_volume.py:
##########
@@ -311,8 +309,9 @@ def create_volume_from_snapshot_deploy_vm(self, snapshotid):
volumeid=volume.id,
mode="basic",
)
+ self.cleanup.append(self.virtual_machine)
try:
- ssh_client = virtual_machine.get_ssh_client()
+ ssh_client = self.virtual_machine.get_ssh_client()
Review Comment:
Variable ssh_client is not used.
##########
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py:
##########
@@ -244,12 +246,101 @@ def
test_06_take_snapshot_multi_zone_create_template_additional_zone(self):
"""Test to take volume snapshot in multiple StorPool primary storages
in diff zones and create a volume in one of the additional zones
"""
snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
self.snapshot_id = snapshot.id
self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
self.template =
self.helper.create_snapshot_template(self.userapiclient, self.services,
self.snapshot_id, self.additional_zone.id)
+ self.cleanup.append(self.template)
if self.additional_zone.id != self.template.zoneid:
self.fail("Template from snapshot not created in the additional
zone")
+ return
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def test_07_take_snapshot_multi_zone_deply_vm_additional_zone(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones and deploy a VM from snapshot in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self._cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm = self.deploy_vm_from_snapshot(snapshot, self.additional_zone.id)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
+ return
+
+
+ @skipTestIf("testsNotSupported")
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"],
required_hardware="false")
+ def
test_08_take_snapshot_multi_zone_create_volume_additional_zone_deploy_vm(self):
+ """Test to take volume snapshot in multiple StorPool primary storages
in diff zones
+ create a volume from the snapshot in the additional zone
+ and deploy a VM from the volume in one of the additional zones
+ """
+ snapshot = Snapshot.create(self.userapiclient,
volume_id=self.volume.id, zoneids=[str(self.additional_zone.id)],
usestoragereplication=True)
+ self.cleanup.append(snapshot)
+ self.snapshot_id = snapshot.id
+ self.helper.verify_snapshot_copies(self.userapiclient,
self.snapshot_id, [self.zone.id, self.additional_zone.id])
+ vm =
self.create_volume_from_snapshot_deploy_vm(snapshotid=self.snapshot_id,
zoneid=self.additional_zone.id)
time.sleep(420)
- Snapshot.delete(snapshot, self.userapiclient)
- self.cleanup.append(self.template)
+ if self.additional_zone.id != vm.zoneid:
+ self.fail("VM from snapshot not created in the additional zone")
return
+
+ def create_volume_from_snapshot_deploy_vm(self, snapshotid, zoneid=None):
+ volume = Volume.create_from_snapshot(
+ self.apiclient,
+ snapshot_id=snapshotid,
+ services=self.services,
+ disk_offering=self.disk_offerings.id,
+ size=8,
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+ )
+ virtual_machine = VirtualMachine.create(self.apiclient,
+ {"name": "Test-%s" %
uuid.uuid4()},
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=zoneid,
+
serviceofferingid=self.service_offering.id,
+ volumeid=volume.id,
+ mode="basic",
+ )
+ self._cleanup.append(virtual_machine)
+ try:
+ ssh_client = virtual_machine.get_ssh_client()
Review Comment:
This helper appends the created VM to `self._cleanup` (class-level), so it
won't be deleted until `tearDownClass`. Since this test class already uses
`self.cleanup` + `tearDown()` for per-test cleanup, consider adding the VM to
`self.cleanup` instead to avoid accumulating running VMs across tests (unless
you intentionally need the VM to persist across multiple test cases).
##########
test/integration/smoke/test_vm_lifecycle_with_snapshot_or_volume.py:
##########
@@ -286,11 +283,12 @@ def deploy_vm_from_snapshot(self, snapshot):
snapshotid=snapshot.id,
mode="basic",
)
+ self.cleanup.append(self.virtual_machine)
try:
- ssh_client = virtual_machine.get_ssh_client()
+ ssh_client = self.virtual_machine.get_ssh_client()
Review Comment:
Variable ssh_client is not used.
##########
test/integration/plugins/storpool/sp_util.py:
##########
@@ -970,14 +981,16 @@ def verify_snapshot_copies(cls, userapiclient,
snapshot_id, zone_ids):
if obj.zoneid not in snapshots:
new_list.append(obj)
snapshots.add(obj.zoneid)
-
+ logging.debug("new list %s" % new_list)
+ logging.debug("zone IDs %s" % zone_ids)
+ logging.debug("snapshot entries %s" % snapshot_entries)
if len(new_list) != len(zone_ids):
- cls.fail("Undesired list snapshot size for multiple zones")
+ raise Exception("Undesired list snapshot size for multiple zones")
Review Comment:
`StorPoolHelper.verify_snapshot_copies` now raises exceptions for some
failure cases, but it still calls `cls.fail(...)` earlier in the method when
`Snapshot.list` doesn't return a list. Since `StorPoolHelper` is not a
`unittest.TestCase`, `cls.fail` is not defined and that path will raise
`AttributeError` instead of a clear test failure. Replace that remaining
`cls.fail` usage with an exception/AssertionError for consistency and correct
error reporting.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]