<!--
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.
-->
<snapshots>

<!--
	  STEPS + TEST CASES COVERED:
	1.Creating a Normal User
	2.Register that User
	3.Deploy a Smaller Disk Offering VM(Small VM)
		a.List the Root Disk of the Small VM
		b.List the Data Disk of the Small VM
	4.Wait for some time for the management server to respond
	5.Create a Snapshot from the root disk of the Small VM
	6.Create a Snapshot from the data disk of the Small VM
	7.Create a Template from the snapshot taken of the root disk of the Small VM
	8.Deploy a VM from the template created from the snapshot taken of the root disk of the Small VM
	9.Create a Volume from the snapshot taken of the root disk of the Small VM
	10.Create a Volume from the snapshot taken of the data disk of the Small VM
	11.Create the snapshot of a detached Volume
	12.Attach the volume created from the snapshot taken of the root disk of the Small VM to the VM created from the template created from the snapshot taken of the root disk of the Small VM
	13.Attach the volume created from the snapshot taken of the root disk of the Small VM to a different VM.
	14.Reboot,start,stop VM created from the template created from the snapshot taken of the root disk of the Small VM
	15.Delete a Snapshot taken of an attached Volume
	16.Delete a Snapshot taken of an detached Volume
	17.Destroy VM created from the template created from the snapshot taken of the root disk of the Small VM
	18.Create a Snapshot from the root disk of the VM immediately after destruction
 	19.Create a Snapshot from the destroyed root disk of the VM after expunge delay time duration
 	20.Destroy VM created from the template created from the snapshot taken of the root disk of the Small VM
 	21.Execute the cleanup - Delete a user
-->

<!-- 1. Create a Normal User -->
<command>
		<name>createUser</name>
		<testcase>Create a user</testcase>

		<parameters>
			<item random="true">
			    <name>username</name>
			</item>
			<item>
			    <name>password</name>
				<value>apiuser</value>
			</item>
			<item>
				<name>firstname</name>
				<value>apiuser</value>
			</item>
			<item>
				<name>lastname</name>
				<value>apiuser</value>
			</item>
			<item>
				<name>email</name>
				<value>apiuser@gmail.com</value>
			</item>
			<item>
				<name>accounttype</name>
				<value>0</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>userid</param>
			</item>
			<item setparam="true">
				<name>account</name>
				<param>accountvar</param>
			</item>
		</returnvalue>
	</command>

<!-- 2.Register that User -->
	<command>
		<name>registerUserKeys</name>
		<testcase>Registering the user</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>userid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>apikey</name>
				<param>apikey</param>
			</item>
			<item setparam="true">
				<name>secretkey</name>
				<param>secretkey</param>
			</item>
		</returnvalue>
	</command>

<!-- 3.Deploy a Smaller Disk Offering VM(Small VM) -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>Deploying VM from small diskOffering</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item>
			    <name>diskofferingid</name>
				<value>5</value>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>displayname</name>
				<value>namefordisplay</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallvmid</param>
			</item>
		</returnvalue>
	</command>

<!-- a.List the Root Disk of the Small VM -->
	<command>
		<name>listVolumes</name>
		<parameters>
			<item getparam="true">
				<name>virtualmachineid</name>
				<param>smallvmid</param>
			</item>
			<item>
				<name>type</name>
				<value>ROOT</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallrootvolumeid</param>
			</item>
		</returnvalue>
	</command>
<!-- b.List the Data Disk of the Small VM -->
	<command>
		<name>listVolumes</name>
		<parameters>
			<item getparam="true">
				<name>virtualmachineid</name>
				<param>smallvmid</param>
			</item>
			<item>
				<name>type</name>
				<value>datadisk</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smalldatavolumeid</param>
			</item>
		</returnvalue>
	</command>

<!-- 4.Wait for some time for the management server to respond -->
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for some time</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>200</value>
			</item>
		</parameters>
	</command>

<!-- 5.Create a Snapshot from the root disk of the Small VM -->
	<command>
		<name>createSnapshot</name>
		<testcase>Creating snapshot of ROOT disk of small vm</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>volumeid</name>
				<param>smallrootvolumeid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallrootsnapshot</param>
			</item>
		</returnvalue>
	</command>

<!-- 6.Create a Snapshot from the data disk of the Small VM -->
	<command>
		<name>createSnapshot</name>
		<testcase>Creating snapshot of Data disk of small vm</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>volumeid</name>
				<param>smalldatavolumeid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smalldatasnapshot</param>
			</item>
		</returnvalue>
	</command>

<!-- 7.Create a Template from the snapshot taken of the root disk of the Small VM -->
	<command>
		<name>createTemplate</name>
		<testcase>Creating template of ROOT snapshot of small vm</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>snapshotid</name>
				<param>smallrootsnapshot</param>
			</item>
			<item random="true">
				<name>name</name>
			</item>
			<item>
				<name>displaytext</name>
				<value>newtext</value>
			</item>
			<item>
				<name>osTypeId</name>
				<value>12</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smalltemplateid</param>
			</item>
		</returnvalue>
	</command>

<!-- 8.Deploy a VM from the template created from the snapshot taken of the root disk of the Small VM -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>Deploy a vm from template created from snapshot of ROOT disk of small vm</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item>
			    <name>diskofferingid</name>
				<value>5</value>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>smalltemplateid</param>
			</item>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>displayname</name>
				<value>smallsnpshtVM</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</returnvalue>
	</command>

<!-- 9.Create a Volume from the snapshot taken of the root disk of the Small VM -->
	<command>
		<name>createVolume</name>
		<testcase>Create a volume from smaller disk snapshot</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>snapshotid</name>
				<param>smallrootsnapshot</param>
			</item>
			<item random="true">
				<name>name</name>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallvolumeid</param>
			</item>
		</returnvalue>
	</command>

<!-- 10.Create a Volume from the snapshot taken of the data disk of the Small VM -->
	<command>
		<name>createVolume</name>
		<testcase>Create a volume from smaller disk snapshot</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>snapshotid</name>
				<param>smalldatasnapshot</param>
			</item>
			<item random="true">
				<name>name</name>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallvolumeid</param>
			</item>
		</returnvalue>
	</command>

<!-- 11.Create the snapshot of a detached Volume -->
	<command>
		<name>createSnapshot</name>
		<testcase>Creating snapshot of Detached Volume</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>volumeid</name>
				<param>smallvolumeid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>detachsnapshotid</param>
			</item>
		</returnvalue>
	</command>

<!-- 12.Attach the volume created from the snapshot taken of the root disk of the Small VM to the VM created from the template created from the snapshot taken of the root disk of the Small VM-->
	<command>
		<name>attachVolume</name>
		<testcase>Attach small volume to the vm created from small snapshot</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvolumeid</param>
			</item>
			<item getparam="true">
				<name>virtualmachineid</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>

<!-- 13.Attach the volume created from the snapshot taken of the root disk of the Small VM to a different VM. -->

	<command>
		<name>attachVolume</name>
		<testcase>Attach small volume to a different VM</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvolumeid</param>
			</item>
			<item getparam="true">
				<name>virtualmachineid</name>
				<param>smallvmid</param>
			</item>
		</parameters>
	</command>


<!-- 14.Reboot,start,stop VM created from the template created from the snapshot taken of the root disk of the Small VM -->
<!-- Reboot small vm, start/stop medium vm -->
	<command>
		<name>rebootVirtualMachine</name>
		<testcase>Reboot small vm</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>stopVirtualMachine</name>
		<testcase>stop medium vm</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>startVirtualMachine</name>
		<testcase>stop medium vm</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>

<!-- 15.Delete a Snapshot taken of an attached Volume  -->
	<command>
		<name>deleteSnapshot</name>
		<testcase>Deleting a snapshot taken of an attached Volume</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>smallrootsnapshot</param>
			</item>
		</parameters>
	</command>

<!-- 16.Delete a Snapshot taken of an detached Volume  -->
	<command>
		<name>deleteSnapshot</name>
		<testcase>Deleting a snapshot taken of a detached Volume</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>detachsnapshotid</param>
			</item>
		</parameters>
	</command>


<!-- 17.Destroy VM created from the template created from the snapshot taken of the root disk of the Small VM -->
	<command>
		<name>destroyVirtualMachine</name>
		<testcase>Destroy small vm</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>



<!-- 18.Create a Snapshot from the root disk of the VM immediately after destruction-->

	<command>
		<name>createSnapshot</name>
		<testcase>Creating snapshot of root disk immediately after destroying VM.</testcase>
		<usercommand>true</usercommand>
		<parameters>
			<item getparam="true">
				<name>volumeid</name>
				<param>smallrootvolumeid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallrootsnapshot</param>
			</item>
		</returnvalue>
	</command>


	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for expunge delayed interval</testcase>
		<parameters>
			<item getparam="true">
			    <name>s</name>
				<param>expunge.delay</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for another expunge delayed interval</testcase>
		<parameters>
			<item getparam="true">
			    <name>s</name>
				<param>expunge.delay</param>
			</item>
		</parameters>
	</command>


<!-- 19.Create a Snapshot from the destroyed root disk of the VM after expunge delay time duration -->

	<command>
		<name>createSnapshot</name>
		<testcase>Creating snapshot of Destroyed root disk after expunge delay Failure Test Case</testcase>
		<usercommand>true</usercommand>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>volumeid</name>
				<param>smallrootvolumeid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>smallrootsnapshot</param>
			</item>
		</returnvalue>
	</command>

<!-- 20.Destroy VM created from the template created from the snapshot taken of the root disk of the Small VM -->
	<command>
		<name>destroyVirtualMachine</name>
		<testcase>Destroy small vm</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>smallvmid1</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>listConfiguration</name>
		<testcase>Getting value of the expunge.delay configuration parameter</testcase>
		<parameters>
			<item getparam="true">
			    <name>name</name>
				<value>expunge.delay</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
			    <name>value</name>
				<param>expunge.delay</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>listConfiguration</name>
		<testcase>Getting value of the expunge.delay configuration parameter</testcase>
		<parameters>
			<item getparam="true">
			    <name>name</name>
				<value>expunge.delay</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
			    <name>value</name>
				<param>expunge.delay</param>
			</item>
		</returnvalue>
	</command>

<!-- 21. Execute the cleanup - Delete a user -->
	<command>
		<name>deleteUser</name>
		<testcase>Deleting a user</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>userid</param>
			</item>
		</parameters>
	</command>

</snapshots>
