From 1fd91c272a71465e96185c31f66869341888fe30 Mon Sep 17 00:00:00 2001 From: Serge van Ginderachter Date: Sat, 7 Sep 2013 13:31:35 +0200 Subject: [PATCH] improve logic in setting parameters in check mode (monitor might not exist) --- net_infrastructure/bigip_monitor_http | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/net_infrastructure/bigip_monitor_http b/net_infrastructure/bigip_monitor_http index ded8d554cfb..6f3d492bd9d 100644 --- a/net_infrastructure/bigip_monitor_http +++ b/net_infrastructure/bigip_monitor_http @@ -386,6 +386,7 @@ def main(): result['changed'] |= True else: # state present + ## check for monitor itself if not monitor_exists: # create it if not module.check_mode: # again, check changed status here b/c race conditions @@ -394,19 +395,22 @@ def main(): else: result['changed'] |= True + ## check for monitor parameters # whether it already existed, or was just created, now update - # attributes and properties - # the update functions need to check for check mode - result['changed'] |= update_monitor_properties(api, module, monitor, - template_string_properties, - template_integer_properties) + # the update functions need to check for check mode but + # cannot update settings if it doesn't exist which happens in check mode + if monitor_exists and not module.check_mode: + result['changed'] |= update_monitor_properties(api, module, monitor, + template_string_properties, + template_integer_properties) + # else assume nothing changed # monitor specific stuff # we just have to update the ipport if monitor already exists and it's different if monitor_exists and cur_ipport != ipport: - if not monitor_exists: - set_ipport(api, monitor, ipport) + set_ipport(api, monitor, ipport) result['changed'] |= True + #else: monitor doesn't exist (check mode) or ipport is already ok # monitor specific stuff