Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding serializer extmod #46435

Merged
merged 2 commits into from
Mar 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
40 changes: 40 additions & 0 deletions salt/modules/saltutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,45 @@ def sync_utils(saltenv=None, refresh=True, extmod_whitelist=None, extmod_blackli
return ret


def sync_serializers(saltenv=None, refresh=True, extmod_whitelist=None, extmod_blacklist=None):
'''
.. versionadded:: Fluorine

Sync serializers from ``salt://_serializers`` to the minion

saltenv
The fileserver environment from which to sync. To sync from more than
one environment, pass a comma-separated list.

If not passed, then all environments configured in the :ref:`top files
<states-top>` will be checked for serializer modules to sync. If no top
files are found, then the ``base`` environment will be synced.

refresh : True
If ``True``, refresh the available execution modules on the minion.
This refresh will be performed even if no new serializer modules are
synced. Set to ``False`` to prevent this refresh.

extmod_whitelist : None
comma-seperated list of modules to sync

extmod_blacklist : None
comma-seperated list of modules to blacklist based on type

CLI Examples:

.. code-block:: bash

salt '*' saltutil.sync_serializers
salt '*' saltutil.sync_serializers saltenv=dev
salt '*' saltutil.sync_serializers saltenv=base,dev
'''
ret = _sync('serializers', saltenv, extmod_whitelist, extmod_blacklist)
if refresh:
refresh_modules()
return ret


def list_extmods():
'''
.. versionadded:: 2017.7.0
Expand Down Expand Up @@ -904,6 +943,7 @@ def sync_all(saltenv=None, refresh=True, extmod_whitelist=None, extmod_blacklist
ret['proxymodules'] = sync_proxymodules(saltenv, False, extmod_whitelist, extmod_blacklist)
ret['engines'] = sync_engines(saltenv, False, extmod_whitelist, extmod_blacklist)
ret['thorium'] = sync_thorium(saltenv, False, extmod_whitelist, extmod_blacklist)
ret['serializers'] = sync_serializers(saltenv, False, extmod_whitelist, extmod_blacklist)
if __opts__['file_client'] == 'local':
ret['pillar'] = sync_pillar(saltenv, False, extmod_whitelist, extmod_blacklist)
if refresh:
Expand Down
27 changes: 27 additions & 0 deletions salt/runners/saltutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ def sync_all(saltenv='base', extmod_whitelist=None, extmod_blacklist=None):
ret['fileserver'] = sync_fileserver(saltenv=saltenv, extmod_whitelist=extmod_whitelist, extmod_blacklist=extmod_blacklist)
ret['tops'] = sync_tops(saltenv=saltenv, extmod_whitelist=extmod_whitelist, extmod_blacklist=extmod_blacklist)
ret['tokens'] = sync_eauth_tokens(saltenv=saltenv, extmod_whitelist=extmod_whitelist, extmod_blacklist=extmod_blacklist)
ret['serializers'] = sync_serializers(saltenv=saltenv, extmod_whitelist=extmod_whitelist, extmod_blacklist=extmod_blacklist)
return ret


Expand Down Expand Up @@ -580,3 +581,29 @@ def sync_eauth_tokens(saltenv='base', extmod_whitelist=None, extmod_blacklist=No
'''
return salt.utils.extmods.sync(__opts__, 'tokens', saltenv=saltenv, extmod_whitelist=extmod_whitelist,
extmod_blacklist=extmod_blacklist)[0]


def sync_serializers(saltenv='base', extmod_whitelist=None, extmod_blacklist=None):
'''
.. versionadded:: Fluorine

Sync serializer modules from ``salt://_serializers`` to the master

saltenv : base
The fileserver environment from which to sync. To sync from more than
one environment, pass a comma-separated list.

extmod_whitelist : None
comma-seperated list of modules to sync

extmod_blacklist : None
comma-seperated list of modules to blacklist based on type

CLI Example:

.. code-block:: bash

salt-run saltutil.sync_utils
'''
return salt.utils.extmods.sync(__opts__, 'serializers', saltenv=saltenv, extmod_whitelist=extmod_whitelist,
extmod_blacklist=extmod_blacklist)[0]
12 changes: 8 additions & 4 deletions tests/integration/modules/test_saltutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ def test_sync_all(self):
'sdb': [],
'proxymodules': [],
'output': [],
'thorium': []}
'thorium': [],
'serializers': []}
ret = self.run_function('saltutil.sync_all')
self.assertEqual(ret, expected_return)

Expand All @@ -115,7 +116,8 @@ def test_sync_all_whitelist(self):
'sdb': [],
'proxymodules': [],
'output': [],
'thorium': []}
'thorium': [],
'serializers': []}
ret = self.run_function('saltutil.sync_all', extmod_whitelist={'modules': ['salttest']})
self.assertEqual(ret, expected_return)

Expand All @@ -138,7 +140,8 @@ def test_sync_all_blacklist(self):
'sdb': [],
'proxymodules': [],
'output': [],
'thorium': []}
'thorium': [],
'serializers': []}
ret = self.run_function('saltutil.sync_all', extmod_blacklist={'modules': ['runtests_decorators']})
self.assertEqual(ret, expected_return)

Expand All @@ -159,7 +162,8 @@ def test_sync_all_blacklist_and_whitelist(self):
'sdb': [],
'proxymodules': [],
'output': [],
'thorium': []}
'thorium': [],
'serializers': []}
ret = self.run_function('saltutil.sync_all', extmod_whitelist={'modules': ['runtests_decorators']},
extmod_blacklist={'modules': ['runtests_decorators']})
self.assertEqual(ret, expected_return)
Expand Down