Merge "Fixes lp#940532"
diff --git a/tempest/tests/test_server_actions.py b/tempest/tests/test_server_actions.py
index ab7c801..f91aa81 100644
--- a/tempest/tests/test_server_actions.py
+++ b/tempest/tests/test_server_actions.py
@@ -1,4 +1,5 @@
 import base64
+import time
 
 from nose.plugins.attrib import attr
 import unittest2 as unittest
@@ -21,6 +22,8 @@
         cls.image_ref_alt = cls.config.env.image_ref_alt
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.flavor_ref_alt = cls.config.env.flavor_ref_alt
+        cls.build_interval = cls.config.nova.build_interval
+        cls.build_timeout = cls.config.nova.build_timeout
 
     def setUp(self):
         self.name = rand_name('server')
@@ -114,8 +117,18 @@
         self.client.revert_resize(self.server_id)
         self.client.wait_for_server_status(self.server_id, 'ACTIVE')
 
+        # Need to poll for the id change until lp#924371 is fixed
         resp, server = self.client.get_server(self.server_id)
-        self.assertEqual(self.flavor_ref, server['flavor']['id'])
+        start = int(time.time())
+
+        while server['flavor']['id'] != self.flavor_ref:
+            time.sleep(self.build_interval)
+            resp, server = self.client.get_server(self.server_id)
+
+            if int(time.time()) - start >= self.build_timeout:
+                message = 'Server %s failed to revert resize within the \
+                required time (%s s).' % (self.server_id, self.build_timeout)
+                raise exceptions.TimeoutException(message)
 
     @attr(type='negative')
     def test_reboot_nonexistant_server_soft(self):