mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #40614 from gtmanfred/tcp
add retries on authentications of the salt minion reconnecting
This commit is contained in:
commit
b0a2414d68
4 changed files with 31 additions and 1 deletions
|
@ -735,6 +735,10 @@
|
|||
#
|
||||
#zmq_monitor: False
|
||||
|
||||
# Number of times to try to authenticate with the salt master when reconnecting
|
||||
# to the master
|
||||
#tcp_authentication_retries: 5
|
||||
|
||||
###### Module configuration #####
|
||||
###########################################
|
||||
# Salt allows for modules to be passed arbitrary configuration data, any data
|
||||
|
|
|
@ -2122,6 +2122,20 @@ ZeroMQ is installed.
|
|||
|
||||
.. conf_minion:: failhard
|
||||
|
||||
``tcp_authentication_retries``
|
||||
------------------------------
|
||||
|
||||
Default: ``5``
|
||||
|
||||
The number of times to retry authenticating with the salt master when it comes
|
||||
back online.
|
||||
|
||||
Zeromq does a lot to make sure when connections come back online that they
|
||||
reauthenticate. The tcp transport should try to connect with a new connection
|
||||
if the old one times out on reauthenticating.
|
||||
|
||||
`-1` for infinite tries.
|
||||
|
||||
``failhard``
|
||||
------------
|
||||
|
||||
|
|
|
@ -945,6 +945,10 @@ VALID_OPTS = {
|
|||
# django auth
|
||||
'django_auth_path': str,
|
||||
'django_auth_settings': str,
|
||||
|
||||
# Number of times to try to auth with the master on a reconnect with the
|
||||
# tcp transport
|
||||
'tcp_authentication_retries': int,
|
||||
}
|
||||
|
||||
# default configurations
|
||||
|
@ -1075,6 +1079,7 @@ DEFAULT_MINION_OPTS = {
|
|||
'file_buffer_size': 262144,
|
||||
'tcp_pub_port': 4510,
|
||||
'tcp_pull_port': 4511,
|
||||
'tcp_authentication_retries': 5,
|
||||
'log_file': os.path.join(salt.syspaths.LOGS_DIR, 'minion'),
|
||||
'log_level': 'warning',
|
||||
'log_level_logfile': None,
|
||||
|
|
|
@ -408,7 +408,14 @@ class AsyncTCPPubChannel(salt.transport.mixins.auth.AESPubClientMixin, salt.tran
|
|||
raise tornado.gen.Return(True)
|
||||
|
||||
if force_auth or not self.auth.authenticated:
|
||||
yield self.auth.authenticate()
|
||||
count = 0
|
||||
while count <= self.opts['tcp_authentication_retries'] or self.opts['tcp_authentication_retries'] < 0:
|
||||
try:
|
||||
yield self.auth.authenticate()
|
||||
break
|
||||
except SaltClientError as exc:
|
||||
log.debug(exc)
|
||||
count += 1
|
||||
try:
|
||||
ret = yield _do_transfer()
|
||||
raise tornado.gen.Return(ret)
|
||||
|
|
Loading…
Add table
Reference in a new issue