| <!-- |
| 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> |