1616import logging
1717import os
1818
19+ from tenacity import (
20+ Retrying ,
21+ retry_if_exception_type ,
22+ stop_after_attempt ,
23+ wait_fixed ,
24+ )
25+
1926import zaza .model as zaza_model
27+ import zaza .charm_lifecycle .utils as lifecycle_utils
2028import zaza .openstack .charm_tests .test_utils as test_utils
2129
2230
@@ -37,20 +45,32 @@ def setUp(self):
3745 def test_configure_ips (self ):
3846 """Configure and un-configure 'service_ips' option."""
3947 config = {"service_ips" : self .VIP }
48+ test_config = lifecycle_utils .get_charm_config (fatal = False )
49+ states = test_config .get ("target_deploy_status" , {})
4050
4151 logging .info ("Configuring %s as a Service IP for %s unit." ,
4252 self .VIP , self .UNIT )
4353 zaza_model .set_application_config (self .APPLICATION , config )
44- zaza_model .wait_for_application_states ()
54+ zaza_model .wait_for_application_states (states = states )
4555
46- configured_ips = zaza_model .run_on_unit (self .UNIT , "ip addr" )
47- self .assertIn (self .VIP , configured_ips ["Stdout" ])
56+ for attempt in Retrying (wait = wait_fixed (2 ),
57+ retry = retry_if_exception_type (AssertionError ),
58+ reraise = True ,
59+ stop = stop_after_attempt (10 )):
60+ with attempt :
61+ configured_ips = zaza_model .run_on_unit (self .UNIT , "ip addr" )
62+ self .assertIn (self .VIP , configured_ips ["Stdout" ])
4863
4964 logging .info ("Removing service IP configuration from %s unit." ,
5065 self .UNIT )
5166 config ["service_ips" ] = ""
5267 zaza_model .set_application_config (self .APPLICATION , config )
53- zaza_model .wait_for_application_states ()
68+ zaza_model .wait_for_application_states (states = states )
5469
55- configured_ips = zaza_model .run_on_unit (self .UNIT , "ip addr" )
56- self .assertNotIn (self .VIP , configured_ips ["Stdout" ])
70+ for attempt in Retrying (wait = wait_fixed (2 ),
71+ retry = retry_if_exception_type (AssertionError ),
72+ reraise = True ,
73+ stop = stop_after_attempt (10 )):
74+ with attempt :
75+ configured_ips = zaza_model .run_on_unit (self .UNIT , "ip addr" )
76+ self .assertNotIn (self .VIP , configured_ips ["Stdout" ])
0 commit comments