diff --git a/lib/ansible/modules/network/f5/bigip_provision.py b/lib/ansible/modules/network/f5/bigip_provision.py index be8f37cfbc..be9fc9d67e 100644 --- a/lib/ansible/modules/network/f5/bigip_provision.py +++ b/lib/ansible/modules/network/f5/bigip_provision.py @@ -344,6 +344,7 @@ class ModuleManager(object): :return: """ nops = 0 + restarted_asm = False while nops < 3: try: policies = self.client.api.tm.asm.policies_s.get_collection() @@ -352,9 +353,23 @@ class ModuleManager(object): else: nops = 0 except Exception as ex: - pass + if not restarted_asm: + self._restart_asm() + restarted_asm = True time.sleep(5) + def _restart_asm(self): + try: + self.client.api.tm.util.bash.exec_cmd( + 'run', + utilCmdArgs='-c "bigstart restart asm"' + ) + time.sleep(60) + return True + except Exception: + pass + return None + def _get_last_reboot(self): try: output = self.client.api.tm.util.bash.exec_cmd(