cloudstack/test/metadata/func/static_nat.xml
2011-08-24 10:37:30 -07:00

898 lines
19 KiB
XML

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