mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Multi-master support for salt-call
This commit is contained in:
parent
9a6671ce69
commit
8171c73b00
2 changed files with 28 additions and 10 deletions
|
@ -505,6 +505,15 @@ class MinionBase(object):
|
|||
if opts['random_master']:
|
||||
shuffle(opts['local_masters'])
|
||||
last_exc = None
|
||||
opts['master_uri_list'] = list()
|
||||
|
||||
# This sits outside of the connection loop below because it needs to set
|
||||
# up a list of master URIs regardless of which masters are available
|
||||
# to connect _to_. This is primarily used for masterless mode, when
|
||||
# we need a list of master URIs to fire calls back to.
|
||||
for master in opts['local_masters']:
|
||||
opts['master'] = master
|
||||
opts['master_uri_list'].append(resolve_dns(opts)['master_uri'])
|
||||
|
||||
while True:
|
||||
attempts += 1
|
||||
|
|
|
@ -959,17 +959,26 @@ def revoke_auth(preserve_minion_cache=False):
|
|||
|
||||
salt '*' saltutil.revoke_auth
|
||||
'''
|
||||
channel = salt.transport.Channel.factory(__opts__)
|
||||
tok = channel.auth.gen_token('salt')
|
||||
load = {'cmd': 'revoke_auth',
|
||||
'id': __opts__['id'],
|
||||
'tok': tok,
|
||||
'preserve_minion_cache': preserve_minion_cache}
|
||||
masters = list()
|
||||
ret = True
|
||||
if 'master_uri_list' in __opts__:
|
||||
for master_uri in __opts__['master_uri_list']:
|
||||
masters.append(master_uri)
|
||||
else:
|
||||
masters.append(__opts__['master_uri'])
|
||||
|
||||
try:
|
||||
return channel.send(load)
|
||||
except SaltReqTimeoutError:
|
||||
return False
|
||||
for master in masters:
|
||||
channel = salt.transport.Channel.factory(__opts__, master_uri=master)
|
||||
tok = channel.auth.gen_token('salt')
|
||||
load = {'cmd': 'revoke_auth',
|
||||
'id': __opts__['id'],
|
||||
'tok': tok,
|
||||
'preserve_minion_cache': preserve_minion_cache}
|
||||
try:
|
||||
channel.send(load)
|
||||
except SaltReqTimeoutError:
|
||||
ret = False
|
||||
return ret
|
||||
|
||||
|
||||
def _get_ssh_or_api_client(cfgfile, ssh=False):
|
||||
|
|
Loading…
Add table
Reference in a new issue