mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 17:33:54 +00:00
Enable syncing proxymodules from the master. Proxymodules can go in /srv/salt/_proxy.
This commit is contained in:
parent
72032650b8
commit
02fc2d9323
@ -260,7 +260,6 @@ def proxy(opts, functions=None, returners=None, whitelist=None):
|
||||
'''
|
||||
Returns the proxy module for this salt-proxy-minion
|
||||
'''
|
||||
# This is where we should set directories so proxy modules can be loaded from /srv/<something>
|
||||
ret = LazyLoader(_module_dirs(opts, 'proxy', 'proxy'),
|
||||
opts,
|
||||
tag='proxy',
|
||||
|
@ -2491,6 +2491,7 @@ class ProxyMinion(Minion):
|
||||
to know which master they connected to)
|
||||
'''
|
||||
log.debug("subclassed _post_master_init")
|
||||
|
||||
self.opts['master'] = master
|
||||
|
||||
self.opts['pillar'] = yield salt.pillar.get_async_pillar(
|
||||
@ -2510,7 +2511,16 @@ class ProxyMinion(Minion):
|
||||
fq_proxyname = self.opts['pillar']['proxy']['proxytype']
|
||||
self.opts['proxy'] = self.opts['pillar']['proxy']
|
||||
|
||||
# Need to load the modules so they get all the dunder variables
|
||||
self.functions, self.returners, self.function_errors = self._load_modules()
|
||||
|
||||
# we can then sync any proxymodules down from the master
|
||||
self.functions['saltutil.sync_proxymodules'](saltenv='base')
|
||||
|
||||
# Then load the proxy module
|
||||
self.proxy = salt.loader.proxy(self.opts)
|
||||
|
||||
# And re-load the modules so the __proxy__ variable gets injected
|
||||
self.functions, self.returners, self.function_errors = self._load_modules(proxy=self.proxy)
|
||||
self.functions.pack['__proxy__'] = self.proxy
|
||||
self.proxy.pack['__salt__'] = self.functions
|
||||
|
@ -390,6 +390,25 @@ def sync_returners(saltenv=None, refresh=True):
|
||||
return ret
|
||||
|
||||
|
||||
def sync_proxymodules(saltenv=None, refresh=False):
|
||||
'''
|
||||
Sync the proxy modules from the _proxy directory on the salt master file
|
||||
server. This function is environment aware, pass the desired environment
|
||||
to grab the contents of the _returners directory, base is the default
|
||||
environment.
|
||||
|
||||
CLI Example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
salt '*' saltutil.sync_proxymodules
|
||||
'''
|
||||
ret = _sync('proxy', saltenv)
|
||||
if refresh:
|
||||
refresh_modules()
|
||||
return ret
|
||||
|
||||
|
||||
def sync_output(saltenv=None, refresh=True):
|
||||
'''
|
||||
Sync the output modules from the _output directory on the salt master file
|
||||
|
Loading…
Reference in New Issue
Block a user