check the journal log on QA's server, when a10-octavia try to plug interface and reload on backup vthunder (i.e. AmphoraePostVIPPlug()), the backup vthunder is not up (maybe reloaded by configuration sync. or vcs). So, acos-client failed to connect ot vthunder and raise ConnectionError.
Journal log:
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: DEBUG acos_client.v30.axapi_http [-] axapi_http: POST url = /axapi/v3/auth {{(pid=29014) request_impl /opt/stack/acos-client/acos_client/v30/axapi_http.py:76}}
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: DEBUG acos_client.v30.axapi_http [-] axapi_http: params = {
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "credentials": {
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "username": "********",
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "password": "********"
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: }
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: } {{(pid=29014) request_impl /opt/stack/acos-client/acos_client/v30/axapi_http.py:77}}
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: DEBUG acos_client.v30.axapi_http [-] axapi_http: params + axapi_args = {
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "credentials": {
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "username": "********",
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "password": "********"
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: }
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: } {{(pid=29014) request_impl /opt/stack/acos-client/acos_client/v30/axapi_http.py:86}}
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: DEBUG acos_client.v30.axapi_http [-] axapi_http: params_all = {'credentials': {'username': '********', 'password': '********'}} {{(pid=29014) request_impl /opt/stack/acos-client/acos_clie
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: DEBUG acos_client.v30.axapi_http [-] axapi_http: headers = {
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "Content-type": "application/json",
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: "User-Agent": "ACOS-Client-AGENT-2.6.1"
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: } {{(pid=29014) request_impl /opt/stack/acos-client/acos_client/v30/axapi_http.py:108}}
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: WARNING urllib3.connectionpool [-] Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.Verif
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: WARNING urllib3.connectionpool [-] Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.Verif
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: WARNING urllib3.connectionpool [-] Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.Verif
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR acos_client.v30.axapi_http [-] acos_client failing with error ConnectionError after 3 retries: ConnectionError: HTTPSConnectionPool(host='192.168.0.228', port=443): Max retries exce
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks [-] Failed to save configuration and reboot on vThunder for amphora id: c39202ad-da29-436b-8697-14d1332d8910: ConnectionError: HTT
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks Traceback (most recent call last):
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/a10-octavia/a10_octavia/controller/worker/tasks/vthunder_tasks.py", line 117, in execute
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks self.axapi_client.system.action.write_memory()
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/action.py", line 37, in write_memory
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks self._post("/write/memory/", payload, **kwargs)
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/base.py", line 73, in _post
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks axapi_args=axapi_args, **kwargs)
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/base.py", line 44, in _request
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks return self.client.http.request(method, self.url(action), params, self.auth_header,
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/base.py", line 35, in url
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks self.auth_header['Authorization'] = "A10 %s" % self.client.session.id
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/session.py", line 28, in id
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks self.authenticate(self.username, self.password)
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/session.py", line 43, in authenticate
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks r = self.http.post(url, payload)
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/axapi_http.py", line 195, in post
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks timeout=timeout, axapi_args=axapi_args, **kwargs)
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks File "/opt/stack/acos-client/acos_client/v30/axapi_http.py", line 187, in request
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks raise e
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks ConnectionError: HTTPSConnectionPool(host='192.168.0.228', port=443): Max retries exceeded with url: /axapi/v3/auth (Caused by New
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: ERROR a10_octavia.controller.worker.tasks.vthunder_tasks
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: WARNING a10_octavia.controller.worker.controller_worker [-] Task 'amphorae-post-vip-plug-for-backup' (2a0fc24e-1ed7-4e52-8f31-26218992d275) transitioned into state 'FAILURE' from state 'R
May 10 18:22:50 qa-109 a10-octavia-worker[28974]: 128 predecessors (most recent first):
Description
If Feature Addition:
If Bug Fix:
Journal log:
Jira Ticket
https://a10networks.atlassian.net/browse/STACK-2313
Technical Approach
a10-octavia side PR: https://github.com/a10networks/a10-octavia/pull/397 In acos-client side also make the axapi request more reliable. And retry on ConnectionError.
Config Changes
Test Cases
commands:
Manual Testing
LOG: