Updated Branches:
  refs/heads/4.2 78517ee5c -> 86c93637f

CLOUDSTACK-4637: Add 30sec sleep before router is ssh'd

Egress rules testcases access vm via router. Sleep before
accessing router else the expect fails since router is not
accessible. Also use router.hostid instead of vm.hostid
to identify the host.

Signed-off-by: venkataswamybabu budumuru <venkataswamybabu.budum...@citrix.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7d06e77e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7d06e77e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7d06e77e

Branch: refs/heads/4.2
Commit: 7d06e77ed9bfacf6d3b74f396c705567d4bf8ba2
Parents: a9218f3
Author: Girish Shilamkar <gir...@clogeny.com>
Authored: Fri Sep 13 20:43:45 2013 -0400
Committer: venkataswamybabu budumuru <venkataswamybabu.budum...@citrix.com>
Committed: Wed Sep 18 21:40:39 2013 +0530

----------------------------------------------------------------------
 .../component/test_egress_fw_rules.py           | 38 +++++++++++---------
 1 file changed, 21 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7d06e77e/test/integration/component/test_egress_fw_rules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_egress_fw_rules.py 
b/test/integration/component/test_egress_fw_rules.py
index ef0fc5a..5c18f9c 100644
--- a/test/integration/component/test_egress_fw_rules.py
+++ b/test/integration/component/test_egress_fw_rules.py
@@ -18,7 +18,7 @@
 """
 """
 #Import Local Modules
-#import unittest
+import unittest
 from nose.plugins.attrib           import attr
 from marvin.cloudstackTestCase     import cloudstackTestCase
 from marvin.integration.lib.base   import (Account,
@@ -198,7 +198,6 @@ class TestEgressFWRules(cloudstackTestCase):
         # Enable Network offering
         self.network_offering.update(self.apiclient, state='Enabled')
 
-
     def create_vm(self, pfrule=False, egress_policy=True, RR=False):
         self.create_network_offering(egress_policy, RR)
          # Creating network using the network offering created
@@ -229,30 +228,37 @@ class TestEgressFWRules(cloudstackTestCase):
 
     def exec_script_on_user_vm(self, script, exec_cmd_params, expected_result, 
negative_test=False):
         try:
+
+            vm_network_id = self.virtual_machine.nic[0].networkid
+            vm_ipaddress  = self.virtual_machine.nic[0].ipaddress
+            list_routers_response = list_routers(self.apiclient,
+                                                 account=self.account.name,
+                                                 
domainid=self.account.domainid,
+                                                 networkid=vm_network_id)
+            self.assertEqual(isinstance(list_routers_response, list),
+                             True,
+                             "Check for list routers response return valid 
data")
+            router = list_routers_response[0]
+
+            #Once host or mgt server is reached, SSH to the router connected 
to VM
+            # look for Router for Cloudstack VM network.
             if self.apiclient.hypervisor.lower() == 'vmware':
                 #SSH is done via management server for Vmware
                 sourceip = self.apiclient.connection.mgtSvr
             else:
                 #For others, we will have to get the ipaddress of host 
connected to vm
                 hosts = list_hosts(self.apiclient,
-                                   id=self.virtual_machine.hostid)
+                                   id=router.hostid)
                 self.assertEqual(isinstance(hosts, list),
                                  True,
                                  "Check list response returns a valid list")
                 host = hosts[0]
                 sourceip = host.ipaddress
-            #Once host or mgt server is reached, SSH to the router connected 
to VM
-            # look for Router for Cloudstack VM network.
-            vm_network_id = self.virtual_machine.nic[0].networkid
-            vm_ipaddress  = self.virtual_machine.nic[0].ipaddress
-            list_routers_response = list_routers(self.apiclient,
-                                                 account=self.account.name,
-                                                 
domainid=self.account.domainid,
-                                                 networkid=vm_network_id)
-            self.assertEqual(isinstance(list_routers_response, list),
-                             True,
-                             "Check for list routers response return valid 
data")
-            router = list_routers_response[0]
+
+            self.debug("Sleep %s seconds for network on router to be up"
+                        % self.services['sleep'])
+            time.sleep(self.services['sleep'])
+
             if self.apiclient.hypervisor.lower() == 'vmware':
                 key_file = " -i /var/cloudstack/management/.ssh/id_rsa "
             else:
@@ -266,7 +272,6 @@ class TestEgressFWRules(cloudstackTestCase):
                           "expect \"root@%s's password: \"\n"  % 
(vm_ipaddress) + \
                           "send \"password\r\"\n" + \
                           "interact\n"
-
             self.debug("expect_script>>\n%s<<expect_script" % expect_script)
 
             script_file = '/tmp/expect_script.exp'
@@ -392,7 +397,6 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-
     @attr(tags = ["advanced"])
     @log_test_exceptions
     def test_01_1_egress_fr1(self):

Reply via email to