<!--
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.
-->
<securitygroups>
<!-- 
		STEPS/TEST CASES COVERED:
		2. Create a User and its Account
		2. Register User Keys
		3. Deploy a VM in the account
		4. Acquire an IP Address
		5. Release the IP Address
		6. Reboot the VM
		7. Stop the VM
		8. Start the VM 
		9. List Routers
		10. Stop Router
		11.	List Router
		12. Start Router
		13. Destroy VM
		14. Verify that vm is destroyed
		15.	Recover virtual machine
		16. Verify that vm is destroyed
		17. Delete Account
		
-->

	<command>
		<name>createUser</name>
		<testcase>Create User and Account</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>accountname</param>
			</item>
		</returnvalue>
	</command>
	
	<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>
	
	<command>
		<name>createNetworkGroup</name>
		<usercommand>true</usercommand>
		<testcase>Create a Network Group</testcase>
		<parameters>
			<item setparam="true" random="true">
				<name>name</name>
				<param>networkgrp-1</param>
			</item>
		</parameters>
	</command>

	<!-- FIRST INGRESS RULE -->
	
	<command>
		<name>authorizeNetworkGroupIngress</name>
		<testcase>Add the First Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.171/32</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>22</value>
			</item>
			<item>
				<name>startport</name>
				<value>22</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploy a VM with the Network Group Assigned</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>flatnetworkserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>networkgrouplist</name>
				<param>networkgrp-1</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmip</param>
			</item>
		</returnvalue>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 2 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>120</value>
			</item>
		</parameters>
	</command>	
	
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<testcase>Ssh access test for the VM</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>vmip</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 1 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>60</value>
			</item>
		</parameters>
	</command>	
	
	<command>
		<name>stopVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Stopping VM</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>startVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Starting VM</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>rebootVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Rebooting VM</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>revokeNetworkGroupIngress</name>
		<testcase>Revoke The First Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.171/32</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>22</value>
			</item>
			<item>
				<name>startport</name>
				<value>22</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
			
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh access test for the vm - should fail as ingress rule is revoked</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>vmip</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
	
	<!-- SECOND INGRESS RULE -->
	
	<command>
		<name>authorizeNetworkGroupIngress</name>
		<testcase>Add the Second Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.172/32</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>22</value>
			</item>
			<item>
				<name>startport</name>
				<value>22</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploy a VM with the Network Group Assigned</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>flatnetworkserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>networkgrouplist</name>
				<param>networkgrp-1</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmip</param>
			</item>
		</returnvalue>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 2 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>120</value>
			</item>
		</parameters>
	</command>	
	
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh test for the vm - should fail as no access provided by ingress rule</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>vmip</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>revokeNetworkGroupIngress</name>
		<testcase>Revoke The Second Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.172/32</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>22</value>
			</item>
			<item>
				<name>startport</name>
				<value>22</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>

	<!-- THIRD INGRESS RULE -->
	
	<command>
		<name>authorizeNetworkGroupIngress</name>
		<testcase>Add the Third Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.0/24</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>80</value>
			</item>
			<item>
				<name>startport</name>
				<value>80</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploy a VM with the Network Group Assigned</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>flatnetworkserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>networkgrouplist</name>
				<param>networkgrp-1</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmip</param>
			</item>
		</returnvalue>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 2 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>120</value>
			</item>
		</parameters>
	</command>	
	
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh test for the vm - should fail as no access provided by ingress rule</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>vmip</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>revokeNetworkGroupIngress</name>
		<testcase>Revoke The Third Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.131.0/24</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>80</value>
			</item>
			<item>
				<name>startport</name>
				<value>80</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	<!-- FOURTH INGRESS RULE -->
	
	<command>
		<name>authorizeNetworkGroupIngress</name>
		<testcase>Add the Fourth Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.130.0/24</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>80</value>
			</item>
			<item>
				<name>startport</name>
				<value>80</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploy a VM with the Network Group Assigned</testcase>
		<parameters>
			<item getparam="true">
			    <name>zoneid</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
			    <name>serviceofferingid</name>
				<param>flatnetworkserviceofferingid</param>
			</item>
			<item getparam="true">
			    <name>networkgrouplist</name>
				<param>networkgrp-1</param>
			</item>
			<item getparam="true">
				<name>templateid</name>
				<param>globaltemplateid</param>
			</item>
		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
			<item setparam="true">
				<name>ipaddress</name>
				<param>vmip</param>
			</item>
		</returnvalue>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 2 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>120</value>
			</item>
		</parameters>
	</command>	
	
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh test for the vm - should fail as no access provided by ingress rule</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>vmip</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>revokeNetworkGroupIngress</name>
		<testcase>Revoke The Fourth Ingress Rule</testcase>
		<parameters>
			<item getparam="true">
				<name>networkgroupname</name>
				<param>networkgrp-1</param>
			</item>
			<item>
				<name>cidrlist</name>
				<value>192.168.130.0/24</value>		<!-- CHANGE IF REQUIRED -->
			</item>
			<item>
				<name>endport</name>
				<value>80</value>
			</item>
			<item>
				<name>startport</name>
				<value>80</value>
			</item>
			<item>
				<name>protocol</name>
				<value>tcp</value>
			</item>
			<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item>
				<name>domainid</name>
				<value>1</value>
			</item>
		</parameters>
	</command>
	
	
	<!-- Clean Up -->
	<command>
		<name>deleteNetworkGroup</name>
		<usercommand>true</usercommand>
		<testcase>Delete First network group</testcase>
		<parameters>
			<item getparam="true">
				<name>name</name>
				<param>networkgrp-1</param>
			</item>
		</parameters>
	</command>
		
	<command>
		<name>destroyVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Destroying virtual machine</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>vmid</param>
			</item>
		</parameters>
	</command>
	
	<command>
		<name>sleep.sh</name>
		<script>true</script>
		<testcase>Sleep for 2 min</testcase>
		<parameters>
			<item>
			    <name>s</name>
				<value>120</value>
			</item>
		</parameters>
	</command>	
	
	
<!--  Delete user as a part of cleanup -->	
	<command>
		<name>deleteUser</name>
		<testcase>Deleting the user</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>userid</param>
			</item>
		</parameters>
	</command>			

</securitygroups>
