From dc08bca1fd98c730b3dded83fdbd5a8a9a8862e2 Mon Sep 17 00:00:00 2001 From: Tim Rupp Date: Sat, 26 May 2018 17:23:38 -0700 Subject: [PATCH] Fix connection error reporting (#40758) The variables used for reporting errors were incorrect. Additionally, the fetching of connection related params was using an old format. --- lib/ansible/module_utils/network/f5/bigip.py | 5 ++-- lib/ansible/module_utils/network/f5/bigiq.py | 27 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/ansible/module_utils/network/f5/bigip.py b/lib/ansible/module_utils/network/f5/bigip.py index 2065d412995..cb4e7c29ed1 100644 --- a/lib/ansible/module_utils/network/f5/bigip.py +++ b/lib/ansible/module_utils/network/f5/bigip.py @@ -37,7 +37,7 @@ class F5Client(F5BaseClient): if self._client: return self._client - for x in range(0, 60): + for x in range(0, 10): try: result = ManagementRoot( self.provider['server'], @@ -53,7 +53,7 @@ class F5Client(F5BaseClient): exc = ex time.sleep(1) error = 'Unable to connect to {0} on port {1}.'.format( - self.params['server'], self.params['server_port'] + self.provider['server'], self.provider['server_port'] ) if exc is not None: @@ -71,7 +71,6 @@ class F5RestClient(F5BaseClient): exc = None if self._client: return self._client - for x in range(0, 10): try: url = "https://{0}:{1}/mgmt/shared/authn/login".format( diff --git a/lib/ansible/module_utils/network/f5/bigiq.py b/lib/ansible/module_utils/network/f5/bigiq.py index fbae3a676bb..6ff374b4db1 100644 --- a/lib/ansible/module_utils/network/f5/bigiq.py +++ b/lib/ansible/module_utils/network/f5/bigiq.py @@ -29,32 +29,33 @@ except ImportError: class F5Client(F5BaseClient): + def __init__(self, *args, **kwargs): + super(F5Client, self).__init__(*args, **kwargs) + self.provider = self.merge_provider_params() + @property def api(self): exc = None if self._client: return self._client - for x in range(0, 3): + for x in range(0, 10): try: - server = self.params['provider']['server'] or self.params['server'] - user = self.params['provider']['user'] or self.params['user'] - password = self.params['provider']['password'] or self.params['password'] - server_port = self.params['provider']['server_port'] or self.params['server_port'] or 443 - validate_certs = self.params['provider']['validate_certs'] or self.params['validate_certs'] - result = ManagementRoot( - server, - user, - password, - port=server_port, - verify=validate_certs + self.provider['server'], + self.provider['user'], + self.provider['password'], + port=self.provider['server_port'], + verify=self.provider['validate_certs'] ) self._client = result return self._client except Exception as ex: exc = ex time.sleep(1) - error = 'Unable to connect to {0} on port {1}.'.format(self.params['server'], self.params['server_port']) + error = 'Unable to connect to {0} on port {1}.'.format( + self.provider['server'], self.provider['server_port'] + ) + if exc is not None: error += ' The reported error was "{0}".'.format(str(exc)) raise F5ModuleError(error)