Wait for all resources to get updated before asserting state

Change-Id: Ieec2c9d540c30c3e4da5b38026daf60de286b2ff
Closes-bug: 1417077
diff --git a/functional/test_instance_group.py b/functional/test_instance_group.py
index c76e67a..84c63cd 100644
--- a/functional/test_instance_group.py
+++ b/functional/test_instance_group.py
@@ -270,6 +270,8 @@
         nested_ident = self.assert_resource_is_a_stack(stack_identifier,
                                                        'JobServerGroup')
         self._assert_instance_state(nested_ident, 2, 0)
+        initial_list = [res.resource_name
+                        for res in self.client.resources.list(nested_ident)]
 
         env['parameters']['size'] = 3
         files2 = {'provider.yaml': self.bad_instance_template}
@@ -283,10 +285,19 @@
         )
         self._wait_for_stack_status(stack_identifier, 'UPDATE_FAILED')
 
-        # assert that there are 3 bad instances
         nested_ident = self.assert_resource_is_a_stack(stack_identifier,
                                                        'JobServerGroup')
-        self._assert_instance_state(nested_ident, 0, 3)
+        # assert that there are 3 bad instances
+        # 2 resources should be in update failed, and one create failed.
+        for res in self.client.resources.list(nested_ident):
+            if res.resource_name in initial_list:
+                self._wait_for_resource_status(nested_ident,
+                                               res.resource_name,
+                                               'UPDATE_FAILED')
+            else:
+                self._wait_for_resource_status(nested_ident,
+                                               res.resource_name,
+                                               'CREATE_FAILED')
 
 
 class InstanceGroupUpdatePolicyTest(InstanceGroupTest):