[ https://issues.apache.org/jira/browse/CLOUDSTACK-8308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15072664#comment-15072664 ]
ASF GitHub Bot commented on CLOUDSTACK-8308: -------------------------------------------- Github user sanju1010 commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/384#discussion_r48475810 --- Diff: test/integration/testpaths/testpath_delta_snapshots.py --- @@ -0,0 +1,539 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +""" Test cases for Delta Snapshots Test Path +""" + +from nose.plugins.attrib import attr +from marvin.cloudstackTestCase import cloudstackTestCase +from marvin.lib.utils import (cleanup_resources, + validateList, + is_snapshot_on_nfs) +from marvin.lib.base import (Account, + ServiceOffering, + Template, + VirtualMachine, + Volume, + Configurations, + Snapshot + ) +from marvin.lib.common import (get_domain, + get_zone, + get_template, + list_volumes, + createChecksum, + compareChecksum + ) +from marvin.sshClient import SshClient +from marvin.codes import (PASS, FAIL, BACKED_UP, ROOT, DATA) +import time + + +def checkIntegrityOfSnapshot( + self, snapshotsToRestore, checksumToCompare, disk_type=ROOT): + """ + Check integrity of snapshot created of ROOT or DATA Disk: + + If ROOT Disk: Deploy a Vm from a template created from the snapshot + and checking the contents of the ROOT disk. + If DATA Disk: Users can create a volume from the snapshot. + The volume can then be mounted to a VM and files + recovered as needed. + + Inputs: + 1. snapshotsToRestore: Snapshots whose integrity is + to be checked. + + 2. checksumToCompare: The contents of ROOT Disk to be compared. + + 3. disk_type: The type of disk - ROOT or DATA Disk + of which snapshot was created. + + """ + if disk_type == ROOT: + # Create template from snapshot + template_from_snapshot = Template.create_from_snapshot( + self.apiclient, + snapshotsToRestore, + self.testdata["template_2"]) + + self.assertNotEqual( + template_from_snapshot, + None, + "Check if result exists in list item call" + ) + + # Deploy VM + vm_from_temp = VirtualMachine.create( + self.apiclient, + self.testdata["small"], + templateid=template_from_snapshot.id, + accountid=self.account.name, + domainid=self.account.domainid, + serviceofferingid=self.service_offering.id, + zoneid=self.zone.id, + mode=self.zone.networktype + ) + + self.assertNotEqual( + vm_from_temp, + None, + "Check if result exists in list item call" + ) + + # Verify contents of ROOT disk match with snapshot + + compareChecksum( + self.apiclient, + service=self.testdata, + original_checksum=checksumToCompare, + disk_type="rootdiskdevice", + virt_machine=vm_from_temp + ) + + vm_from_temp.delete(self.apiclient) + template_from_snapshot.delete(self.apiclient) + else: + volumeFormSnap = Volume.create_from_snapshot( + self.apiclient, + snapshotsToRestore.id, + self.testdata["volume"], + account=self.account.name, + domainid=self.account.domainid, + zoneid=self.zone.id + ) + + temp_vm = VirtualMachine.create( + self.apiclient, + self.testdata["small"], + templateid=self.template.id, + accountid=self.account.name, + domainid=self.account.domainid, + serviceofferingid=self.service_offering.id, + zoneid=self.zone.id, + mode=self.zone.networktype + ) + temp_vm.attach_volume( + self.apiclient, + volumeFormSnap + ) + + temp_vm.reboot(self.apiclient) --- End diff -- what is the need of vm reboot after attaching volume ? > Add test cases for volume/VM snapshot test path > ----------------------------------------------- > > Key: CLOUDSTACK-8308 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8308 > Project: CloudStack > Issue Type: Test > Security Level: Public(Anyone can view this level - this is the > default.) > Affects Versions: Future > Reporter: Priti Sarap > Labels: automation > Fix For: Future > > > Add test cases for volume/VM snapshot test path -- This message was sent by Atlassian JIRA (v6.3.4#6332)