blob: 144ad9d5ae01893a76487f432864fdc3cd34ef8f [file] [log] [blame]
<!--
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.
-->
<staticnat>
<command>
<name>createUser</name>
<testcase>Create a regular 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>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>deployVirtualMachine</name>
<testcase>Deploying virtual machine</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>vmid</param>
</item>
<item setparam="true">
<name>ipaddress</name>
<param>vmipaddress</param>
</item>
</returnvalue>
</command>
<command>
<name>deployVirtualMachine</name>
<testcase>Deploying virtual machine</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>vmid1</param>
</item>
<item setparam="true">
<name>ipaddress</name>
<param>vmipaddress1</param>
</item>
</returnvalue>
</command>
<command>
<name>sleep.sh</name>
<script>true</script>
<testcase>Sleeping for 60 seconds to ensure that vms boot up</testcase>
<parameters>
<item>
<name>s</name>
<value>60</value>
</item>
</parameters>
</command>
<command>
<name>listRouters</name>
<testcase>35</testcase>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
<item getparam="true">
<name>account</name>
<param>accountname</param>
</item>
<item>
<name>domainid</name>
<value>1</value>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>id</name>
<param>routerid</param>
</item>
<item setparam="true">
<name>publicip</name>
<param>sourcenatpublicip</param>
</item>
</returnvalue>
</command>
<command>
<name>associateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
</returnvalue>
</command>
<!-- TRY TO CREATE STATIC NAT RULE FOR SOURCE NAT IP ADDRESS - NEGATIVE CASE-->
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<error>true</error>
<testcase>Test case 1134 - try to create static NAT for source nat ip - should fail</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>sourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid</param>
</item>
</parameters>
</command>
<!-- CREATE STATIC NAT RULE FOR SOURCE NAT IP ADDRESS -->
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>Test case 1135 - try to create static NAT for non source nat ip</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</returnvalue>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>Ssh test for the vm</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<!-- CREATE STATIC NAT RULE FOR SOURCE NAT IP ADDRESS -->
<command>
<name>deleteIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>Test case 1136 - delete ip forwarding rule</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</parameters>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<testcase>list ip forwarding rules</testcase>
<empty>true</empty>
<parameters>
<item getparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<error>true</error>
<testcase>Ssh test for the vm - should fail</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<!-- LIST STATIC NAT RULES -->
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>try to create static NAT for non source nat ip</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</returnvalue>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<testcase>Test case 1137-1: list ip forwarding by ip address</testcase>
<empty>false</empty>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
</parameters>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<testcase>Test case 1137-2: list ip forwarding by id</testcase>
<empty>true</empty>
<parameters>
<item>
<name>id</name>
<value>1000000</value>
</item>
</parameters>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<testcase>Test case 1137-3: list ip forwarding by virtualmachineid</testcase>
<empty>true</empty>
<parameters>
<item>
<name>virtualmachineid</name>
<value>1000000</value>
</item>
</parameters>
</command>
<!-- RELEASE IP ADDRESS WHEN IT HAS STATIC NAT RULES ASSIGNED AND VERIFY THAT THE RULES ARE REMOVED -->
<command>
<name>disassociateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
</parameters>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<testcase>Test case 1138: static NAT rules should be removed once corresponding ip address is dissassociated</testcase>
<empty>false</empty>
</command>
<!-- TRY TO ENABLE STATIC NAT FOR THE SAME IP AND DIFFERENT VMS - SHOULD FAIL FOR THE SECOND ONE -->
<command>
<name>associateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
</returnvalue>
</command>
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>try to create static NAT for non source nat ip and vm1</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</returnvalue>
</command>
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>1139 - try to assign static NAT for the same ip and different vms</testcase>
<error>true</error>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid1</param>
</item>
</parameters>
</command>
<!-- Destroy vm and verify that all corresponding rules got removed -->
<command>
<name>destroyVirtualMachine</name>
<testcase>Destroying virtual machine...</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>vmid</param>
</item>
</parameters>
</command>
<command>
<name>listConfigurations</name>
<testcase>Getting expunge interval value</testcase>
<parameters>
<item>
<name>name</name>
<value>expunge.interval</value>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>value</name>
<param>expunge.interval</param>
</item>
</returnvalue>
</command>
<command>
<name>sleep.sh</name>
<script>true</script>
<testcase>Sleep for expunge interval</testcase>
<parameters>
<item getparam="true">
<name>s</name>
<param>expunge.interval</param>
</item>
</parameters>
</command>
<command>
<name>listIpForwardingRules</name>
<usercommand>true</usercommand>
<empty>true</empty>
<testcase>Test case 1140: static nat rules should be removed once corresponding vm is expunged</testcase>
</command>
<!-- ENABLE STATIC NAT FOR THE SAME VM AND 2 DIFFERENT IPS-->
<command>
<name>associateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip1</param>
</item>
</returnvalue>
</command>
<command>
<name>associateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip2</param>
</item>
</returnvalue>
</command>
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>try to create static NAT for non source nat1</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid1</param>
</item>
</parameters>
</command>
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>try to create static NAT for non source nat ip2</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid1</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>TestCase 1141-2: ssh to ip1</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip1</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>TestCase 1141-2: ssh to ip2</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip2</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<!-- REBOOT DOMR AND VERIFY THAT STATIC NAT RULE STILL WORKS -->
<command>
<name>rebootRouter</name>
<testcase>Rebooting router...</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>routerid</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>TestCase 1142: ssh to the public ip after domR was rebooted</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip1</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<!-- STOP AND START DOMR AND VERIFY THAT STATIC NAT RULE STILL WORKS -->
<command>
<name>stopRouter</name>
<testcase>Stopping router...</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>routerid</param>
</item>
</parameters>
</command>
<command>
<name>startRouter</name>
<testcase>Starting router...</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>routerid</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>TestCase 1143: ssh to the public ip after domR was stopped and started</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip1</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<!-- CREATE PORT FORWARDING RULE AND STATIC NAT RULE FOR THE SAME IP/VM; THEN DELETE STATIC NAT -->
<command>
<name>deployVirtualMachine</name>
<testcase>Deploying virtual machine</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>vmid</param>
</item>
<item setparam="true">
<name>ipaddress</name>
<param>vmipaddress1</param>
</item>
</returnvalue>
</command>
<command>
<name>sleep.sh</name>
<script>true</script>
<testcase>Sleeping for 60 seconds to ensure that vm boots up</testcase>
<parameters>
<item>
<name>s</name>
<value>60</value>
</item>
</parameters>
</command>
<command>
<name>associateIpAddress</name>
<usercommand>true</usercommand>
<parameters>
<item getparam="true">
<name>zoneid</name>
<param>globalzoneid</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
</returnvalue>
</command>
<command>
<name>createPortForwardingRule</name>
<usercommand>true</usercommand>
<testcase>Create port forwarding rule for ports 22/22</testcase>
<parameters>
<item getparam="true">
<name>privateip</name>
<param>vmipaddress</param>
</item>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>privateport</name>
<value>22</value>
</item>
<item>
<name>publicport</name>
<value>22</value>
</item>
<item>
<name>protocol</name>
<value>tcp</value>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>Ssh to the vm after Port forwarding rule was created</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<command>
<name>createIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>try to create static NAT for non source nat ip2</testcase>
<parameters>
<item getparam="true">
<name>ipaddress</name>
<param>nonsourcenatpublicip</param>
</item>
<item getparam="true">
<name>virtualmachineid</name>
<param>vmid1</param>
</item>
</parameters>
<returnvalue>
<item setparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</returnvalue>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>Ssh to the vm after static NAT rule was created</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>p</name>
<value>password</value>
</item>
</parameters>
</command>
<command>
<name>deleteIpForwardingRule</name>
<usercommand>true</usercommand>
<testcase>delete ip forwarding rule</testcase>
<parameters>
<item getparam="true">
<name>id</name>
<param>ruleid</param>
</item>
</parameters>
</command>
<command>
<name>ssh.sh</name>
<script>true</script>
<testcase>Ssh to the vm after static NAT rule was deleted</testcase>
<parameters>
<item getparam="true">
<name>h</name>
<param>nonsourcenatpublicip</param>
</item>
<item>
<name>p</name>
<value>password</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>
</staticnat>