<!--
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.
-->
<mgmtvmsync>
<!-- 1. Deploy two VMs -->
<!-- 1.1 Deploy HA enabled VM -->
<command>
		    <name>deployVirtualMachine</name>  <!--deploy vm 1-->
            <testcase>deploy First VM test case</testcase>

         <parameters>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item>
				<name>displayname</name>
				<value>FirstVM</value>
			</item>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</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_1st</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>vmname_1st</param>
			</item>
			<item setparam="true">
				<name>hostid</name>
				<param>hostid_1st</param>
			</item>
		</returnvalue>
</command>

<command>
		    <name>deployVirtualMachine</name>  <!--deploy vm 1-->
            <testcase>deploy Second VM test case</testcase>

         <parameters>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item>
				<name>displayname</name>
				<value>SecondVM</value>
			</item>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</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_2nd</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>vmname_2nd</param>
			</item>
			<item setparam="true">
				<name>hostid</name>
				<param>hostid_2nd</param>
			</item>
		</returnvalue>
</command>

<!-- 2. Disable HA on the two VMs respectively -->
<!-- 2.1 Disable HA for First VM -->
<command>
		<name>updateVirtualMachine</name>
		<testcase>HA disable first virtual machine</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid_1st</param>
			</item>
			<item>
				<name>displayname</name>
				<value>HAdisabledFirstVirtualMachine</value>
			</item>
			<item>
				<name>haenable</name>
				<value>false</value>
			</item>
		</parameters>
</command>

<!-- 2.2 Disable HA for Second VM -->
<command>
		<name>updateVirtualMachine</name>
		<testcase>HA disable second virtual machine</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid_2nd</param>
			</item>
			<item>
				<name>displayname</name>
				<value>HAdisabledSecondVirtualMachine</value>
			</item>
			<item>
				<name>haenable</name>
				<value>false</value>
			</item>
		</parameters>
</command>

<!-- 3. Obtain the Host IP addresses for the Hosts accommodating the VMs -->
<!-- 3.1 Obtains the Host IP address of the HA enabled VM's Host machine -->
<command>
		<name>listHosts</name>
		<testcase>Obtain IP address of ha disabled VM's Host Test Case</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>hostid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ipaddress</name>
				<param>ipaddress_1st</param>
			</item>
		</returnvalue>
	</command>

<!-- 3.2 Obtains the Host IP address of the HA disabled VM's Host machine -->

<command>
		<name>listHosts</name>
		<testcase>Obtain IP address of ha enabled VM's Host Test Case</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>hostid_2nd</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ipaddress</name>
				<param>ipaddress_2nd</param>
			</item>
		</returnvalue>
</command>

<!-- 4. Get VM instance name of the VMs from the db -->
	<command>
		<name>select instance_name from vm_instance</name>
		<mysql>true</mysql>
		<testcase>Obtaining the internal instance name for the ha disabled VM Test Case</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
			    <name>instance_name</name>
				<param>instance_name_1st</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>select instance_name from vm_instance</name>
		<mysql>true</mysql>
		<testcase>Obtaining the internal instance name for the ha enabled VM Test Case</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_2nd</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
			    <name>instance_name</name>
				<param>instance_name_2nd</param>
			</item>
		</returnvalue>
	</command>

<!-- 5. Stop the Management Server -->

<command>
		<name>ms.sh</name>
		<script>true</script>
		<testcase>Stopping management server</testcase>
		<parameters>
			<item getparam="true">
			    <name>h</name>
				<param>ms1</param>
			</item>
			<item>
			    <name>o</name>
				<value>stop</value>
			</item>
		</parameters>
</command>



<!-- 6. Kill the two VMs -->

<command>
	<name>killvm.sh</name>
	<testcase>Kill the First HA disabled VM</testcase>
	<script>true</script>

	<parameters>
		<item getparam="true">
			<name>n</name>
			<param>instance_name_1st</param>
		</item>

		<item getparam="true">
			<name>h</name>
			<param>ipaddress_1st</param>
		</item>
	</parameters>
</command>

<command>
	<name>killvm.sh</name>
	<testcase>Kill the Second HA disabled VM</testcase>
	<script>true</script>

	<parameters>
		<item getparam="true">
			<name>n</name>
			<param>instance_name_2nd</param>
		</item>

		<item getparam="true">
			<name>h</name>
			<param>ipaddress_2nd</param>
		</item>
	</parameters>
</command>

<!-- 7. 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>100</value>
			</item>
		</parameters>
	</command>


<!-- 8. Start the Management Server -->

<command>
		<name>ms.sh</name>
		<script>true</script>
		<testcase>Starting management server</testcase>
		<parameters>
			<item getparam="true">
			    <name>h</name>
				<param>ms1</param>
			</item>
			<item>
			    <name>o</name>
				<value>start</value>
			</item>
		</parameters>
</command>

<!--9. 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>100</value>
			</item>
		</parameters>
	</command>

<!-- 10. Check the Management Server Database for the states of the killed VMs -->

	<command>
		<name>listVirtualMachines</name>
		<testcase>Check the stopped status of First virtual machine with ha disabled</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item>
				<name>state</name>
				<value>Stopped</value>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>listVirtualMachines</name>
		<testcase>Check the stopped status of Second virtual machine with ha disabled</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_2nd</param>
			</item>
		</parameters>
		<returnvalue>
			<item>
				<name>state</name>
				<value>Stopped</value>
			</item>

		</returnvalue>
	</command>

<!-- Clean up -->
<!-- 11. Destroy VMs-->
<command>
		<name>destroyVirtualMachine</name>
		<testcase>Destroy the First vm as a part of cleanup</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid_1st</param>
			</item>
		</parameters>
</command>

<command>
		<name>destroyVirtualMachine</name>
		<testcase>Destroy the Second vm as a part of cleanup</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid_2nd</param>
			</item>
		</parameters>
</command>


<!-- SECOND SCENARIO -->
<!-- 1. Deploy VM -->
<command>
		    <name>deployVirtualMachine</name>  <!--deploy vm 1-->
            <testcase>deploy VM test case</testcase>

         <parameters>
			<item getparam="true">
			    <name>diskofferingid</name>
				<param>globaldiskofferingid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>templateid</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item>
				<name>displayname</name>
				<value>FirstVM</value>
			</item>
			<item>
				<name>account</name>
				<value>admin</value>
			</item>
			<item>
				<name>domainid</name>
				<value>1</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_1st</param>
			</item>
			<item setparam="true">
				<name>name</name>
				<param>vmname_1st</param>
			</item>
			<item setparam="true">
				<name>hostid</name>
				<param>hostid_1st</param>
			</item>
		</returnvalue>
</command>

<!-- 2. Obtains the Host IP address of the HA enabled VM's Host machine -->
<command>
		<name>listHosts</name>
		<testcase>Obtain IP address of the VM's Host Test Case</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>hostid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ipaddress</name>
				<param>ipaddress_1st</param>
			</item>
		</returnvalue>
	</command>


<!-- 3. Get VM instance name of the VMs from the db -->
	<command>
		<name>select instance_name from vm_instance</name>
		<mysql>true</mysql>
		<testcase>Obtaining the internal instance name for the VM Test Case</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
			    <name>instance_name</name>
				<param>instance_name_1st</param>
			</item>
		</returnvalue>
</command>

<!-- 4. Stop the Management Server -->
<command>
		<name>ms.sh</name>
		<script>true</script>
		<testcase>Stopping management server</testcase>
		<parameters>
			<item getparam="true">
			    <name>h</name>
				<param>ms1</param>
			</item>
			<item>
			    <name>o</name>
				<value>stop</value>
			</item>
		</parameters>
</command>

<!-- 5. Kill the VM -->

<command>
	<name>shutdown.sh</name>
	<testcase>Shut down the VM Test Case</testcase>
	<script>true</script>

	<parameters>
		<item getparam="true">
			<name>n</name>
			<param>instance_name_1st</param>
		</item>

		<item getparam="true">
			<name>h</name>
			<param>ipaddress_1st</param>
		</item>
	</parameters>
</command>

<!-- 6. 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>60</value>
			</item>
		</parameters>
	</command>


<!-- 7. Start the Management Server -->
<command>
		<name>ms.sh</name>
		<script>true</script>
		<testcase>Starting management server</testcase>
		<parameters>
			<item getparam="true">
			    <name>h</name>
				<param>ms1</param>
			</item>
			<item>
			    <name>o</name>
				<value>start</value>
			</item>
		</parameters>
</command>

<!-- 8. 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>60</value>
			</item>
		</parameters>
</command>

<!-- 9. Check the Management Server Database for the state of the killed VM -->

	<command>
		<name>listVirtualMachines</name>
		<testcase>Check the stopped status of virtual machine</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>vmid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item>
				<name>state</name>
				<value>Stopped</value>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>listHosts</name>
		<testcase>List host that is presumed to have the VM Test Case</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>hostid_1st</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ipaddress</name>
				<param>ipaddress_1st</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>listvm.sh</name>
		<script>true</script>
		<testcase> VM Not Found on the host Test Case</testcase>
		<error>true</error>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>ipaddress_1st</param>
			</item>
			<item getparam="true">
			    <name>n</name>
				<param>instance_name_1st</param>
			</item>
		</parameters>
	</command>

</mgmtvmsync>
