<!--
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.
-->
<flatnetworkstress>

	<command>
	<name>createAccount</name>
	<testcase>    [Create the Account and a User for the account]</testcase>
	<parameters>
		<item setparam="true" random="true">
			<name>account</name>
			<param>accountname</param>
		</item>
		<item getparam="true">
			<name>accounttype</name>
			<param>globalaccttype</param>
		</item>
		<item getparam="true">
			<name>domainid</name>
			<param>globaldomainid</param>
		</item>
		<item>
			<name>email</name>
			<value>firstuser@gmail.com</value>
		</item>
		<item>
			<name>firstname</name>
			<value>firstuser</value>
		</item>
		<item>
			<name>lastname</name>
			<value>firstuserlastname</value>
		</item>
		<item random="true" setparam="true">
			<name>username</name>
			<param>getusernameparam1</param>
		</item>
		<item>
			<name>password</name>
			<value>password</value>
		</item>
	</parameters>
	<returnvalue>
		<item setparam="true">
			<name>id</name>
			<param>getaccountid</param>
		</item>
		<item>
			<name>state</name>
			<value>enabled</value>
		</item>
	</returnvalue>
	</command>

	<command>
	<name>listUsers</name>
	<testcase>    [List the User of the account]</testcase>
	<parameters>
		<item getparam="true">
			<name>account</name>
			<param>accountname</param>
		</item>
		<item getparam="true">
			<name>accounttype</name>
			<param>globalaccttype</param>
		</item>
		<item getparam="true">
			<name>domainid</name>
			<param>globaldomainid</param>
		</item>
		<item getparam="true">
			<name>username</name>
			<param>getusernameparam1</param>
		</item>
	</parameters>
	<returnvalue>
		<item setparam="true">
			<name>id</name>
			<param>getuserid1</param>
		</item>
		<item>
			<name>state</name>
			<value>enabled</value>
		</item>
	</returnvalue>
	</command>

	<command>
		<name>registerUserKeys</name>
		<testcase>Registering the First User</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>getuserid1</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>createSecurityGroup</name>
		<usercommand>true</usercommand>
		<testcase>Creating First Security group for the Account</testcase>
		<parameters>
			<item setparam="true" random="true">
				<name>name</name>
				<param>getsecuritygroupname1</param>
			</item>
			<item random="true">
				<name>description</name>
			</item>
<!-- 		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>getsecuritygroupid1</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>authorizeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Authorizing First network group ingress rule for the First Security Group</testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid1</param>
			</item>
			<item getparam="true">
				<name>cidrlist</name>
				<param>globalcidrlist</param>
			</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 getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
	</command>

	<command>
		<name>listSecurityGroups</name>
		<usercommand>true</usercommand>
		<testcase> List the Security group and get the ingress rule ID </testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid1</param>
			</item>
<!--		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ruleid</name>
				<param>getingressruleid1</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploying VM for the First Account</testcase>
		<parameters>
			<item getparam="true">
				<name>zoneId</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
				<name>hypervisor</name>
				<param>globalhypervisortype</param>
			</item>
			<item getparam="true">
				<name>templateId</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
				<name>serviceOfferingId</name>
				<param>globalserviceofferingid</param>
			</item>
			<item getparam="true">
				<name>securitygroupids</name>
				<param>getsecuritygroupid1</param>
			</item>
<!-- 		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->			</parameters>
			<returnvalue>
				<item setparam="true">
					<name>id</name>
					<param>getvmid1</param>
				</item>
				<item setparam="true">
					<name>ipaddress</name>
					<param>getvmip1</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 test for the vm</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>getvmip1</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>revokeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Revoking network group igress</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>getingressruleid1</param>
			</item>
		</parameters>
	</command>
<!--
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh test for the vm - should fail as network group is revoked</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>getvmip1</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
-->

<!-- SECOND GROUP -->

	<command>
		<name>createSecurityGroup</name>
		<usercommand>true</usercommand>
		<testcase>Creating a Second Security group for the Account</testcase>
		<parameters>
			<item setparam="true" random="true">
				<name>name</name>
				<param>getsecuritygroupname2</param>
			</item>
			<item random="true">
				<name>description</name>
			</item>
<!-- 		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>id</name>
				<param>getsecuritygroupid2</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>authorizeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Authorizing network group ingress for the second Security group</testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid2</param>
			</item>
			<item getparam="true">
				<name>usersecuritygrouplist[0].account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>usersecuritygrouplist[0].group</name>
				<param>getsecuritygroupname1</param>
			</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 getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
	</command>


	<command>
		<name>authorizeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Authorizing one more network group ingress rule for the Second Security Group </testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid2</param>
			</item>
			<item getparam="true">
				<name>cidrlist</name>
				<param>globalcidrlist</param>
			</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 getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
	</command>

	<command>
		<name>listSecurityGroups</name>
		<usercommand>true</usercommand>
		<testcase> List the Security group and get the first ingress rule ID </testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid2</param>
			</item>
<!--		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ruleid</name>
				<param>getingressruleid2</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>deployVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Deploying Second VM for the First Account</testcase>
		<parameters>
			<item getparam="true">
				<name>zoneId</name>
				<param>globalzoneid</param>
			</item>
			<item getparam="true">
				<name>hypervisor</name>
				<param>globalhypervisortype</param>
			</item>
			<item getparam="true">
				<name>templateId</name>
				<param>globaltemplateid</param>
			</item>
			<item getparam="true">
				<name>serviceOfferingId</name>
				<param>flatnetworkserviceofferingid</param>
			</item>
			<item getparam="true">
				<name>securitygroupids</name>
				<param>getsecuritygroupid2</param>
			</item>
<!-- 		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->			</parameters>
			<returnvalue>
				<item setparam="true">
					<name>id</name>
					<param>getvmid2</param>
				</item>
				<item setparam="true">
					<name>ipaddress</name>
					<param>getvmip2</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 test for the vm</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>getvmip2</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>revokeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Revoking Second Network group's First ingress rule</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>getingressruleid2</param>
			</item>
		</parameters>
	</command>

	<command>
		<name>listSecurityGroups</name>
		<usercommand>true</usercommand>
		<testcase> List the Security group and get the second ingress rule ID </testcase>
		<parameters>
			<item getparam="true">
				<name>securitygroupid</name>
				<param>getsecuritygroupid2</param>
			</item>
<!--		<item getparam="true">
				<name>account</name>
				<param>accountname</param>
			</item>
			<item getparam="true">
				<name>domainid</name>
				<param>globaldomainid</param>
			</item>
-->		</parameters>
		<returnvalue>
			<item setparam="true">
				<name>ruleid</name>
				<param>getingressruleid2</param>
			</item>
		</returnvalue>
	</command>

	<command>
		<name>revokeSecurityGroupIngress</name>
		<usercommand>true</usercommand>
		<testcase>Revoking Second network group's second ingress rule</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>getingressruleid2</param>
			</item>
		</parameters>
	</command>

<!--
	<command>
		<name>ssh.sh</name>
		<script>true</script>
		<error>true</error>
		<testcase>Ssh test for the vm - should fail as network group is revoked</testcase>
		<parameters>
		<item getparam="true">
			    <name>h</name>
				<param>getvmip2</param>
			</item>
			<item>
			    <name>p</name>
				<value>password</value>
			</item>
		</parameters>
	</command>
-->
	<command>
		<name>destroyVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Destroying virtual machine</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>getvmid1</param>
			</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>destroyVirtualMachine</name>
		<usercommand>true</usercommand>
		<testcase>Destroying virtual machine</testcase>
		<parameters>
			<item getparam="true">
				<name>id</name>
				<param>getvmid2</param>
			</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>


<!--  Delete user as a part of cleanup -->
	<command>
		<name>deleteUser</name>
		<testcase>Deleting the user</testcase>
		<parameters>
			<item getparam="true">
			    <name>id</name>
				<param>getuserid1</param>
			</item>
		</parameters>
	</command>

	<command>
	<name>deleteAccount</name>
	<testcase> Delete Account </testcase>
	<parameters>
	<item getparam="true">
		<name>id</name>
		<param>getaccountid</param>
	</item>
	</parameters>

</command>
</flatnetworkstress>
