mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Add new module type for serializers from issue #22257.
Move existing serializers from salt.utils.serializers to salt.serializers.
This commit is contained in:
parent
4e61c4312a
commit
4b9311507c
22 changed files with 89 additions and 45 deletions
|
@ -42954,7 +42954,7 @@ or if the specified timeout is not an int or a float
|
|||
Thrown when token authentication fails
|
||||
.UNINDENT
|
||||
.SS salt.serializers
|
||||
.SS salt.utils.serializers
|
||||
.SS salt.serializers
|
||||
.sp
|
||||
This module implements all the serializers needed by salt.
|
||||
Each serializer offers the same functions and attributes:
|
||||
|
@ -42970,14 +42970,14 @@ function for serializing a Python object
|
|||
flag that tells if the serializer is available
|
||||
(all dependencies are met etc.)
|
||||
.UNINDENT
|
||||
.SS salt.utils.serializers.json
|
||||
.SS salt.serializers.json
|
||||
.sp
|
||||
Implements JSON serializer.
|
||||
.sp
|
||||
It\(aqs just a wrapper around json (or simplejson if available).
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.json.deserialize(stream_or_string, **options)
|
||||
.B salt.serializers.json.deserialize(stream_or_string, **options)
|
||||
Deserialize any string of stream like object into a Python data structure.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
@ -42992,7 +42992,7 @@ Deserialize any string of stream like object into a Python data structure.
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.json.serialize(obj, **options)
|
||||
.B salt.serializers.json.serialize(obj, **options)
|
||||
Serialize Python data to JSON.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
@ -43005,7 +43005,7 @@ Serialize Python data to JSON.
|
|||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SS salt.utils.serializers.yaml
|
||||
.SS salt.serializers.yaml
|
||||
.sp
|
||||
Implements YAML serializer.
|
||||
.sp
|
||||
|
@ -43013,7 +43013,7 @@ Underneath, it is based on pyyaml and use the safe dumper and loader.
|
|||
It also use C bindings if they are available.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.yaml.deserialize(stream_or_string, **options)
|
||||
.B salt.serializers.yaml.deserialize(stream_or_string, **options)
|
||||
Deserialize any string of stream like object into a Python data structure.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
@ -43028,7 +43028,7 @@ Deserialize any string of stream like object into a Python data structure.
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.yaml.serialize(obj, **options)
|
||||
.B salt.serializers.yaml.serialize(obj, **options)
|
||||
Serialize Python data to YAML.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
@ -43041,12 +43041,12 @@ Serialize Python data to YAML.
|
|||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SS salt.utils.serializers.msgpack
|
||||
.SS salt.serializers.msgpack
|
||||
.sp
|
||||
Implements MsgPack serializer.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.msgpack.deserialize(stream_or_string, **options)
|
||||
.B salt.serializers.msgpack.deserialize(stream_or_string, **options)
|
||||
Deserialize any string of stream like object into a Python data structure.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
@ -43061,7 +43061,7 @@ Deserialize any string of stream like object into a Python data structure.
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.utils.serializers.msgpack.serialize(obj, **options)
|
||||
.B salt.serializers.msgpack.serialize(obj, **options)
|
||||
Serialize Python data to MsgPack.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
================
|
||||
salt.serializers
|
||||
================
|
||||
|
||||
.. automodule:: salt.utils.serializers
|
||||
|
||||
.. automodule:: salt.utils.serializers.json
|
||||
:members:
|
||||
|
||||
.. automodule:: salt.utils.serializers.yaml
|
||||
:members:
|
||||
|
||||
.. automodule:: salt.utils.serializers.msgpack
|
||||
:members:
|
16
doc/ref/serializers/all/index.rst
Normal file
16
doc/ref/serializers/all/index.rst
Normal file
|
@ -0,0 +1,16 @@
|
|||
.. _all-salt.serializers:
|
||||
|
||||
================================
|
||||
Full list of builtin serializers
|
||||
================================
|
||||
|
||||
.. currentmodule:: salt.output
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:template: autosummary.rst.tmpl
|
||||
|
||||
json
|
||||
msgpack
|
||||
yaml
|
||||
yamlex
|
6
doc/ref/serializers/all/salt.serializers.json.rst
Normal file
6
doc/ref/serializers/all/salt.serializers.json.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
=====================
|
||||
salt.serializers.json
|
||||
=====================
|
||||
|
||||
.. automodule:: salt.serializers.json
|
||||
:members:
|
6
doc/ref/serializers/all/salt.serializers.msgpack.rst
Normal file
6
doc/ref/serializers/all/salt.serializers.msgpack.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
========================
|
||||
salt.serializers.msgpack
|
||||
========================
|
||||
|
||||
.. automodule:: salt.serializers.msgpack
|
||||
:members:
|
6
doc/ref/serializers/all/salt.serializers.yaml.rst
Normal file
6
doc/ref/serializers/all/salt.serializers.yaml.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
=====================
|
||||
salt.serializers.yaml
|
||||
=====================
|
||||
|
||||
.. automodule:: salt.serializers.yaml
|
||||
:members:
|
6
doc/ref/serializers/all/salt.serializers.yamlex.rst
Normal file
6
doc/ref/serializers/all/salt.serializers.yamlex.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
=======================
|
||||
salt.serializers.yamlex
|
||||
=======================
|
||||
|
||||
.. automodule:: salt.serializers.yamlex
|
||||
:members:
|
|
@ -340,6 +340,17 @@ def outputters(opts):
|
|||
return wrapped_ret
|
||||
|
||||
|
||||
def serializers(opts):
|
||||
'''
|
||||
Returns the serializers modules
|
||||
:param dict opts: The Salt options dictionary
|
||||
:returns: LazyLoader instance, with only serializers present in the keyspace
|
||||
'''
|
||||
return LazyLoader(_module_dirs(opts, 'serializers', 'serializers'),
|
||||
opts,
|
||||
tag='serializers')
|
||||
|
||||
|
||||
def auth(opts, whitelist=None):
|
||||
'''
|
||||
Returns the auth modules
|
||||
|
|
|
@ -40,7 +40,7 @@ from __future__ import absolute_import
|
|||
|
||||
# Import Python libs
|
||||
import logging
|
||||
from salt.utils.serializers import json
|
||||
from salt.serializers import json
|
||||
from distutils.version import LooseVersion as _LooseVersion # pylint: disable=import-error,no-name-in-module
|
||||
|
||||
# Import Salt libs
|
||||
|
|
|
@ -13,7 +13,7 @@ from __future__ import absolute_import
|
|||
import logging
|
||||
|
||||
# Import salt libs
|
||||
from salt.utils.serializers.yamlex import deserialize
|
||||
from salt.serializers.yamlex import deserialize
|
||||
|
||||
# Set up logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
|
@ -7,7 +7,7 @@ import warnings
|
|||
|
||||
# Import salt libs
|
||||
import salt.utils.url
|
||||
from salt.utils.serializers.yamlex import deserialize
|
||||
from salt.serializers.yamlex import deserialize
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
salt.utils.serializers
|
||||
salt.serializers
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This module implements all the serializers needed by salt.
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
salt.utils.serializers.json
|
||||
salt.serializers.json
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Implements JSON serializer.
|
||||
|
@ -16,7 +16,7 @@ except ImportError:
|
|||
import json
|
||||
|
||||
from salt.ext.six import string_types
|
||||
from salt.utils.serializers import DeserializationError, SerializationError
|
||||
from salt.serializers import DeserializationError, SerializationError
|
||||
|
||||
__all__ = ['deserialize', 'serialize', 'available']
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
salt.utils.serializers.msgpack
|
||||
salt.serializers.msgpack
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Implements MsgPack serializer.
|
||||
|
@ -13,7 +13,7 @@ from copy import copy
|
|||
|
||||
# Import Salt Libs
|
||||
from salt.log import setup_console_logger
|
||||
from salt.utils.serializers import DeserializationError, SerializationError
|
||||
from salt.serializers import DeserializationError, SerializationError
|
||||
|
||||
# Import 3rd-party libs
|
||||
import salt.ext.six as six
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
salt.utils.serializers.yaml
|
||||
salt.serializers.yaml
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Implements YAML serializer.
|
||||
|
@ -16,7 +16,7 @@ import yaml
|
|||
from yaml.constructor import ConstructorError
|
||||
from yaml.scanner import ScannerError
|
||||
|
||||
from salt.utils.serializers import DeserializationError, SerializationError
|
||||
from salt.serializers import DeserializationError, SerializationError
|
||||
import salt.ext.six as six
|
||||
from salt.utils.odict import OrderedDict
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
salt.utils.serializers.yamlex
|
||||
salt.serializers.yamlex
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
YAMLEX is a format that allows for things like sls files to be
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
.. code-block:: python
|
||||
|
||||
from salt.utils.serializers import yamlex
|
||||
from salt.serializers import yamlex
|
||||
|
||||
with open('state.sls', 'r') as stream:
|
||||
obj = yamlex.deserialize(stream)
|
||||
|
@ -56,7 +56,7 @@
|
|||
|
||||
.. code-block:: python
|
||||
|
||||
from salt.utils.serializers import yaml
|
||||
from salt.serializers import yaml
|
||||
yml_obj = yaml.deserialize(str(obj))
|
||||
assert yml_obj == obj
|
||||
|
||||
|
@ -110,7 +110,7 @@ from copy import copy
|
|||
|
||||
|
||||
# Import Salt Libs
|
||||
from salt.utils.serializers import DeserializationError, SerializationError
|
||||
from salt.serializers import DeserializationError, SerializationError
|
||||
from salt.utils.aggregation import aggregate, Map, Sequence
|
||||
from salt.utils.odict import OrderedDict
|
||||
|
|
@ -251,8 +251,8 @@ import salt.utils
|
|||
import salt.utils.templates
|
||||
import salt.utils.url
|
||||
from salt.exceptions import CommandExecutionError
|
||||
from salt.utils.serializers import yaml as yaml_serializer
|
||||
from salt.utils.serializers import json as json_serializer
|
||||
from salt.serializers import yaml as yaml_serializer
|
||||
from salt.serializers import json as json_serializer
|
||||
|
||||
# Import 3rd-party libs
|
||||
import salt.ext.six as six
|
||||
|
@ -4210,7 +4210,7 @@ def serialize(name,
|
|||
# round-trip this through JSON to avoid OrderedDict types
|
||||
# there's probably a more performant way to do this...
|
||||
# TODO remove json round-trip when all dataset will use
|
||||
# utils.serializers
|
||||
# serializers
|
||||
contents = pprint.pformat(
|
||||
json.loads(
|
||||
json.dumps(dataset),
|
||||
|
|
|
@ -13,7 +13,7 @@ import copy
|
|||
import logging
|
||||
import salt.ext.six as six
|
||||
from salt.utils.odict import OrderedDict
|
||||
from salt.utils.serializers.yamlex \
|
||||
from salt.serializers.yamlex \
|
||||
import merge_recursive as _yamlex_merge_recursive
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
|
@ -115,6 +115,12 @@ class LoaderGlobalsTest(integration.ModuleCase):
|
|||
'''
|
||||
self._verify_globals(salt.loader.outputters(self.master_opts))
|
||||
|
||||
def test_serializers(self):
|
||||
'''
|
||||
Test that serializers have: []
|
||||
'''
|
||||
self._verify_globals(salt.loader.serializers(self.master_opts))
|
||||
|
||||
def test_states(self):
|
||||
'''
|
||||
Test that states:
|
||||
|
|
|
@ -13,7 +13,7 @@ ensure_in_syspath('../..')
|
|||
import salt.state
|
||||
from salt.config import minion_config
|
||||
from salt.template import compile_template_str
|
||||
from salt.utils.serializers import yamlex
|
||||
from salt.serializers import yamlex
|
||||
|
||||
basic_template = '''#!yamlex
|
||||
foo: bar
|
||||
|
|
1
tests/unit/serializers/__init__.py
Normal file
1
tests/unit/serializers/__init__.py
Normal file
|
@ -0,0 +1 @@
|
|||
# -*- coding: utf-8 -*-
|
|
@ -16,8 +16,8 @@ from textwrap import dedent
|
|||
import jinja2
|
||||
|
||||
# Import salt libs
|
||||
from salt.utils.serializers import json, yamlex, yaml, msgpack
|
||||
from salt.utils.serializers import SerializationError
|
||||
from salt.serializers import json, yamlex, yaml, msgpack
|
||||
from salt.serializers import SerializationError
|
||||
from salt.utils.odict import OrderedDict
|
||||
|
||||
SKIP_MESSAGE = '%s is unavailable, do prerequisites have been met?'
|
Loading…
Add table
Reference in a new issue