mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Persistent connection timer changes (#27272)
* Add command_timeout timer that defines the amount of time to wait for a command or RPC call before timing out. * Remove connect_retries and connect_interval configuration varaible and replace it with connect_retry_timeout to control the timeout value of connection to local scoket. * Make required changes to netowrk action plugins and relevant network files in module_utils. * Required documentation changes.
This commit is contained in:
parent
4dd8f281d6
commit
70ce394840
23 changed files with 154 additions and 73 deletions
|
@ -1323,15 +1323,6 @@ PARAMIKO_RECORD_HOST_KEYS:
|
|||
value_type: boolean
|
||||
vars: []
|
||||
yaml: {key: paramiko_connection.record_host_keys}
|
||||
PERSISTENT_CONNECT_INTERVAL:
|
||||
default: 1
|
||||
desc: 'TODO: write it'
|
||||
env: [{name: ANSIBLE_PERSISTENT_CONNECT_INTERVAL}]
|
||||
ini:
|
||||
- {key: connect_interval, section: persistent_connection}
|
||||
value_type: integer
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.connect_interval}
|
||||
PERSISTENT_CONTROL_PATH_DIR:
|
||||
default: ~/.ansible/pc
|
||||
desc: 'TODO: write it'
|
||||
|
@ -1340,15 +1331,6 @@ PERSISTENT_CONTROL_PATH_DIR:
|
|||
- {key: control_path_dir, section: persistent_connection}
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.control_path_dir}
|
||||
PERSISTENT_CONNECT_RETRIES:
|
||||
default: 30
|
||||
desc: 'TODO: write it'
|
||||
env: [{name: ANSIBLE_PERSISTENT_CONNECT_RETRIES}]
|
||||
ini:
|
||||
- {key: connect_retries, section: persistent_connection}
|
||||
value_type: integer
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.connect_retries}
|
||||
PERSISTENT_CONNECT_TIMEOUT:
|
||||
default: 30
|
||||
desc: 'TODO: write it'
|
||||
|
@ -1358,6 +1340,24 @@ PERSISTENT_CONNECT_TIMEOUT:
|
|||
value_type: integer
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.connect_timeout}
|
||||
PERSISTENT_CONNECT_RETRY_TIMEOUT:
|
||||
default: 15
|
||||
desc: 'TODO: write it'
|
||||
env: [{name: ANSIBLE_PERSISTENT_CONNECT_RETRY_TIMEOUT}]
|
||||
ini:
|
||||
- {key: connect_retry_timeout, section: persistent_connection}
|
||||
value_type: integer
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.connect_retry_timeout}
|
||||
PERSISTENT_COMMAND_TIMEOUT:
|
||||
default: 10
|
||||
desc: 'TODO: write it'
|
||||
env: [{name: ANSIBLE_PERSISTENT_COMMAND_TIMEOUT}]
|
||||
ini:
|
||||
- {key: command_timeout, section: persistent_connection}
|
||||
value_type: integer
|
||||
vars: []
|
||||
yaml: {key: persistent_connection.command_timeout}
|
||||
RETRY_FILES_ENABLED:
|
||||
default: True
|
||||
desc: This controls whether a failed Ansible playbook should create a .retry file.
|
||||
|
|
|
@ -43,9 +43,7 @@ aireos_argument_spec = {
|
|||
}
|
||||
|
||||
# Add argument's default value here
|
||||
ARGS_DEFAULT_VALUE = {
|
||||
'timeout': 10
|
||||
}
|
||||
ARGS_DEFAULT_VALUE = {}
|
||||
|
||||
|
||||
def sanitize(resp):
|
||||
|
|
|
@ -38,14 +38,12 @@ aruba_argument_spec = {
|
|||
'username': dict(fallback=(env_fallback, ['ANSIBLE_NET_USERNAME'])),
|
||||
'password': dict(fallback=(env_fallback, ['ANSIBLE_NET_PASSWORD']), no_log=True),
|
||||
'ssh_keyfile': dict(fallback=(env_fallback, ['ANSIBLE_NET_SSH_KEYFILE']), type='path'),
|
||||
'timeout': dict(type='int', default=10),
|
||||
'timeout': dict(type='int'),
|
||||
'provider': dict(type='dict')
|
||||
}
|
||||
|
||||
# Add argument's default value here
|
||||
ARGS_DEFAULT_VALUE = {
|
||||
'timeout': 10
|
||||
}
|
||||
ARGS_DEFAULT_VALUE = {}
|
||||
|
||||
|
||||
def get_argspec():
|
||||
|
|
|
@ -50,9 +50,7 @@ junos_argument_spec = {
|
|||
}
|
||||
|
||||
# Add argument's default value here
|
||||
ARGS_DEFAULT_VALUE = {
|
||||
'timeout': 10
|
||||
}
|
||||
ARGS_DEFAULT_VALUE = {}
|
||||
|
||||
|
||||
def get_argspec():
|
||||
|
|
|
@ -57,8 +57,7 @@ nxos_argument_spec = {
|
|||
|
||||
# Add argument's default value here
|
||||
ARGS_DEFAULT_VALUE = {
|
||||
'transport': 'cli',
|
||||
'timeout': 10
|
||||
'transport': 'cli'
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.aireos import aireos_argument_spec
|
||||
|
@ -54,7 +55,7 @@ class ActionModule(_ActionModule):
|
|||
pc.port = provider['port'] or self._play_context.port or 22
|
||||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.aruba import aruba_argument_spec
|
||||
|
@ -55,7 +56,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
|
@ -23,6 +23,7 @@ import sys
|
|||
import copy
|
||||
import json
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.asa import asa_argument_spec
|
||||
|
@ -57,7 +58,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.six import iteritems
|
||||
from ansible.module_utils.ce import ce_argument_spec
|
||||
|
@ -57,7 +58,7 @@ class ActionModule(_ActionModule):
|
|||
pc.port = int(provider['port']) or int(self._play_context.port) or 22
|
||||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
self._task.args['provider'] = provider.update(
|
||||
host=pc.remote_addr,
|
||||
port=pc.port,
|
||||
|
|
|
@ -24,6 +24,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.six import iteritems
|
||||
from ansible.module_utils.dellos10 import dellos10_argument_spec
|
||||
|
@ -56,7 +57,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.six import iteritems
|
||||
from ansible.module_utils.dellos6 import dellos6_argument_spec
|
||||
|
@ -52,7 +53,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.six import iteritems
|
||||
from ansible.module_utils.dellos9 import dellos9_argument_spec
|
||||
|
@ -56,7 +57,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.eos import ARGS_DEFAULT_VALUE, eos_argument_spec
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -58,7 +59,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.ios import ios_argument_spec
|
||||
|
@ -55,7 +56,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
pc.become = provider['authorize'] or False
|
||||
pc.become_pass = provider['auth_pass']
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.iosxr import iosxr_argument_spec
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -54,7 +55,7 @@ class ActionModule(_ActionModule):
|
|||
pc.port = provider['port'] or self._play_context.port or 22
|
||||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.junos import junos_argument_spec
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -68,7 +69,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
|
@ -20,6 +20,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action import ActionBase
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -59,7 +60,7 @@ class ActionModule(ActionBase):
|
|||
play_context.remote_user = self.provider['username'] or self._play_context.connection_user
|
||||
play_context.password = self.provider['password'] or self._play_context.password
|
||||
play_context.private_key_file = self.provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
play_context.timeout = self.provider['timeout'] or self._play_context.timeout
|
||||
play_context.timeout = self.provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
if 'authorize' in self.provider.keys():
|
||||
play_context.become = self.provider['authorize'] or False
|
||||
play_context.become_pass = self.provider['auth_pass']
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.nxos import nxos_argument_spec
|
||||
|
@ -58,7 +59,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
self._task.args['provider'] = provider.update(
|
||||
host=pc.remote_addr,
|
||||
port=pc.port,
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.sros import sros_argument_spec
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
|
@ -55,7 +56,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import sys
|
||||
import copy
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.plugins.action.normal import ActionModule as _ActionModule
|
||||
from ansible.module_utils.basic import AnsibleFallbackNotFound
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -54,7 +55,7 @@ class ActionModule(_ActionModule):
|
|||
pc.remote_user = provider['username'] or self._play_context.connection_user
|
||||
pc.password = provider['password'] or self._play_context.password
|
||||
pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
|
||||
pc.timeout = provider['timeout'] or self._play_context.timeout
|
||||
pc.timeout = provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT
|
||||
|
||||
display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
|
||||
connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue