<!--
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.
-->
<vmapi>

<!--
		KEEP IN MIND: EXPUNGE INTERVAL, PASSWORD ENABLED TEMPLATE

		STEPS/TEST CASES COVERED:
		1. Deploy a Virtual Machine in admin account
		2. Destroy the Virtual Machine
		3. List the Destroyed Virtual Machine
		4. Check that the Destroyed VM cannot be started
		5. Check that a non-existing VM cannot be listed (Id doesn't exist)
		6. Create the Account and a User for the account (List VM for a Removed User exercise BEGIN)
		7. List the Created User
		8. Creating default network
		9. Deploy Virtual Machine in the New Account
		10. Delete User
		11. Delete Account
		12. Check that no VMs present under the Account(List VM for a Removed User exercise END)
		13. updateVirtualMachine api: should deny to update Destroyed vms
		14. Verify that one can't enable HA for non-existing vm
		15. Recover the Destroyed VM
		16. Verify that one can reset password for VM in stopped state
		17. Verify that one can enable HA for VM in stopped state
		18. Start Virtual Machine (reset password for VM in running state exercise BEGIN)
		19. Verify that one can reset password for VM in running state
		20. Verify that one can disable HA for VM in running state
		21. Destroy Virtual Machine (reset password on a destroyed VM exercise BEGIN)
		22. Verify that one can't reset password for VM in destroyed state
		23. Verify that one can't reboot destroyed VM
		24. Deploy Virtual Machine to test reset password negative case
		25. Check whether password can be reset on virtual machine made from password disabled VM
		26. Try to change service offering for VM in running state
		27. Stop the Virtual machine to change its Service Offering
		28. Try to change service offering to the one that VM already has -ve case
		29. Try to reboot stopped virtual machine - Negative case
		30. Try to recover stopped virtual machine
		31. Start the Virtual Machine
		32. Try to recover running virtual machine
		33. Try to deploy vm and assign it to non-existing account -ve case
		34. Try to deploy vm and assign it to removed account -ve case
		35. Try to send destroy command for non-existing vm -ve case
		36. Try to send reboot command for non-existing vm -ve case
		37. Try to send start command for non-existing vm -ve case
		38. Destroy Virtual Machine as part of Clean up

	 -->


<!-- Test case #72 - verify that listVm command doesn't display VM in expunging state but displays a VM in destroyed state -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>	[Deploy Virtual Machine in Admin Account]</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</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>VMapis-VM</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
			<item getparam="true">
				<name>networkids</name>
				<param>globalnetworkid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>vmname</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmipaddress</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>destroyVirtualMachine</name>
		<testcase>	[Destroy Virtual Machine]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>listVirtualMachines</name>
		<testcase>72  [List the Destroyed Virutal Machine]</testcase>
		<parameters>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item getparam="true">
				<name>name</name>
				<param>vmname</param>
			</item>
		</parameters>
	</command>

<!-- Test case #92 - verify that you can't start destroyed virtual machine -->
	<command>
		<name>startVirtualMachine</name>
		<testcase>92  [Check that the Destroyed VM cannot be started]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #73 - verify that listVm returns nothing when id of non-existing VM is specified -->
	<command>
		<name>listVirtualMachines</name>
		<testcase>73  [Check that a non-existing VM cannot be listed (Id doesn't exist)]</testcase>
		<parameters>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>id</name>
				<value>100000000</value>
			</item>
		</parameters>
	</command>

<!-- Test case #74 - verify that listVm returns empty response when account=removedAccount is specified -->

	<command>
		<name>createAccount</name>
		<testcase>    [Create the Account and a User for the account (List VM for a Removed User exercise BEGIN)]</testcase>
		<parameters>
			<item setparam="true" random="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>accounttype</name>
				<value>0</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>email</name>
				<value>testcase74@gmail.com</value>
			</item>
			<item>
				<name>firstname</name>
				<value>testcase74</value>
			</item>
			<item>
				<name>lastname</name>
				<value>testcase74lastname</value>
			</item>
			<item random="true">
				<name>username</name>
			</item>
			<item>
				<name>password</name>
				<value>password</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>accountid</param>
			</item>
			<item getparam="true">
				<name>name</name>
				<param>accountname</param>
			</item>
		</returnvalue>
	</command>

	<!-- Test case #5 - listUsers command -->
	<command>
		<name>listUsers</name>
		<testcase>    [List the Created User]</testcase>
		<parameters>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
		</parameters>

		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>userid</param>
			</item>
			<item setparam="true">
				<name>username</name>
				<param>usernameparam</param>
			</item>
		</returnvalue>
	</command>


<!--
	<command>
		<name>createUser</name>
		<parameters>
			<item random="true">
			    <name>username</name>
			</item>
			<item>
			    <name>password</name>
				<value>testcase74</value>
			</item>
			<item>
				<name>firstname</name>
				<value>testcase74</value>
			</item>
			<item>
				<name>lastname</name>
				<value>testcase74</value>
			</item>
			<item>
				<name>email</name>
				<value>testcase74@gmail.com</value>
			</item>
			<item>
				<name>accounttype</name>
				<value>0</value>
			</item>
		</parameters>
		<returnvalue>
			<item verify="false" setparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item verify="false" setparam="true">
				<name>id</name>
				<param>userid</param>
			</item>
		</returnvalue>
	</command>
-->

	<command>
		<name>createNetwork</name>
		<testcase>	[Creating default network for the account]</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>networkOfferingId</name>
				<param>globalnetworkofferingid</param>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>name</name>
				<value>vmapi_network</value>
			</item>
			<item>
				<name>displaytext</name>
				<value>vmapi_network</value>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>networkid</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>deployVirtualMachine</name>
		<testcase>	[Deploy Virtual Machine in the new Account]</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>displayname</name>
				<value>VMapis-VM-2</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
			<item getparam="true">
				<name>networkids</name>
				<param>networkid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid2</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>vmname</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmipaddress</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>deleteUser</name>
		<testcase>    [Delete User]</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>userid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>deleteAccount</name>
		<testcase>    [Delete Account]</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>accountid</param>
			</item>
		</parameters>
	</command>

		<command>
		<name>listVirtualMachines</name>
		<testcase>74  [Check that no VMs present under the Account(List VM for a Removed User exercise END)]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>

<!-- Test case #77 - verify that you can't enable HA for VM in destroyed state -->
	<command>
		<name>updateVirtualMachine</name>
		<testcase>77 - Bug 3237 [updateVirtualMachine api: should deny to update Destroyed vms]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item>
				<name>haenable</name>
				<value>true</value>
			</item>
		</parameters>
	</command>

	<!-- Test case #592 - verify that you can't enable HA for non-existing vm -->
	<command>
		<name>updateVirtualMachine</name>
		<testcase>592 [Verify that you can't enable HA for non-existing vm]</testcase>
		<error>true</error>
		<parameters>
			<item>
				<name>id</name>
				<value>1000000</value>
			</item>
			<item>
				<name>haenable</name>
				<value>true</value>
			</item>
		</parameters>
	</command>


<!-- Test case #79 - verify that you can reset password for VM in stopped state -->
	<command>
		<name>recoverVirtualMachine</name>
		<testcase>    [Recover the Destroyed VM]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>resetPasswordForVirtualMachine</name>
		<testcase>79-1 [Verify that one can reset password for VM in stopped state]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #76 - verify that you can enable HA for VM in stopped state -->

	<command>
		<name>updateVirtualMachine</name>
		<testcase>76  [Verify that one can enable HA for VM in stopped state]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item>
				<name>haenable</name>
				<value>true</value>
			</item>
		</parameters>
	</command>


<!-- Test case #79 - verify that you can reset password for VM in running state -->
	<command>
		<name>startVirtualMachine</name>
		<testcase>    [Start Virtual Machine (reset password for VM in running state exercise BEGIN)]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>resetPasswordForVirtualMachine</name>
		<testcase>79-2 [Verify that one can reset password for VM in running state]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>


<!-- Test case #76 - verify that you can disable HA for VM in running state -->
	<command>
		<name>updateVirtualMachine</name>
		<testcase>76  [Verify that one can disable HA for VM in running state]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item>
				<name>haenable</name>
				<value>false</value>
			</item>
		</parameters>
	</command>


<!-- Test case #80 - verify that you can't reset password for VM in destroyed state -->
		<command>
		<name>destroyVirtualMachine</name>
		<testcase>    [Destroy Virtual Machine (reset password on a destroyed VM exercise BEGIN)]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>resetPasswordForVirtualMachine</name>
		<testcase>80  [Verify that one can't reset password for VM in destroyed state]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #89 - verify that you can't reboot destroyed VM -->
	<command>
		<name>rebootVirtualMachine</name>
		<testcase>89  [Verify that one can't reboot destroyed VM]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>


<!-- Test case #81 - resetpassword for virtual machine which was made of template with password disabled - Negative case -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>    [Deploy Virtual Machine to test reset password negative case]</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</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>VMapis-VM-3</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
			<item getparam="true">
				<name>networkids</name>
				<param>networkid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>windowsvmname</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>windowsvmipaddress</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>resetPasswordForVirtualMachine</name>
		<testcase>81  [Check whether password can be reset on virtual machine made from password disabled VM]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #82 - try to change service offering for VM in running state - should fail - Negative case -->
	<command>
		<name>changeServiceForVirtualMachine</name>
		<testcase>82 [Try to change service offering for VM in running state]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
			<item getparam="true">
				<name>serviceofferingid</name>
				<param>mediumglobalserviceofferingid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #83 - try to change service offering to the one that VM already has - should fail - Negative case -->
	<command>
		<name>stopVirtualMachine</name>
		<testcase>    [Stop the Virtual machine to change its Service Offering]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>changeServiceForVirtualMachine</name>
		<testcase>83  [Try to change service offering to the one that VM already has -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
			<item getparam="true">
				<name>serviceofferingid</name>
				<value>globalserviceofferingid</value>
			</item>
		</parameters>
	</command>


<!-- Test case #90 - try to reboot stopped virtual machine - should fail - Negative case -->
	<command>
		<name>rebootVirtualMachine</name>
		<testcase>90  [Try to reboot stopped virtual machine - Negative case]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>


<!-- Test case #95 - try to recover stopped/running virtual machine - should fail -->
	<command>
		<name>recoverVirtualMachine</name>
		<testcase>813 [Try to recover stopped virtual machine]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>startVirtualMachine</name>
		<testcase>    [Start virtual machine]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>recoverVirtualMachine</name>
		<testcase>813 [Try to recover running virtual machine]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>


<!-- Test case #84 - try to deploy vm and assign it to non-existing account - should fail - Negative case -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>84  [Try to deploy vm and assign it to non-existing account -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item>
				<name>account</name>
				<value>blahblah-invaliduser</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>displayname</name>
				<value>VMapis-VM-4</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
			<item getparam="true">
				<name>networkids</name>
				<param>globalnetworkid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #85 - try to deploy vm and assign it to removed account - should fail - Negative case -->
	<command>
		<name>deployVirtualMachine</name>
		<testcase>85  [Try to deploy vm and assign it to removed account -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
			<item>
				<name>displayname</name>
				<value>VMapis-VM-5</value>
			</item>
			<item>
				<name>group</name>
				<value>group1</value>
			</item>
			<item getparam="true">
				<name>networkids</name>
				<param>networkid</param>
			</item>
		</parameters>
	</command>

<!-- Test case #87 - try to send destroy command for non-existing vm - should fail - Negative case -->
	<command>
		<name>destroyVirtualMachine</name>
		<testcase>87  [Try to send destroy command for non-existing vm -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item>
				<name>id</name>
				<value>100000</value>
			</item>
		</parameters>
	</command>

<!-- Test case #88 - try to send reboot command for non-existing vm - should fail - Negative case -->
	<command>
		<name>rebootVirtualMachine</name>
		<testcase>88  [Try to send reboot command for non-existing vm -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item>
				<name>id</name>
				<value>100000</value>
			</item>
		</parameters>
	</command>

<!-- Test case #91 - try to send start command for non-existing vm - should fail - Negative case -->
	<command>
		<name>startVirtualMachine</name>
		<testcase>88  [Try to send start command for non-existing vm -ve case]</testcase>
		<error>true</error>
		<parameters>
			<item>
				<name>id</name>
				<value>100000</value>
			</item>
		</parameters>
	</command>

<!-- Execute cleanup - destroy the VM-->
	<command>
		<name>destroyVirtualMachine</name>
		<testcase>    [Destroy Virtual Machine as part of Clean up]</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>windowsvmid</param>
			</item>
		</parameters>
	</command>


</vmapi>
