diff --git a/doc/Makefile b/doc/Makefile index 39af8918fb9a..602a2d1c5391 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -66,7 +66,7 @@ clean: # User-friendly check for sphinx-build check_sphinx-build: - @which $(SPHINXBUILD) >/dev/null 2>&1 || (echo "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)" >&2; false) + @which $(SPHINXBUILD) >/dev/null 2>&1 || (echo "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://www.sphinx-doc.org/en/master/)" >&2; false) html: check_sphinx-build translations $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html diff --git a/doc/_static/proxy_minions.png b/doc/_static/proxy_minions.png index 430d37aa8c35..263da2bce9f3 100644 Binary files a/doc/_static/proxy_minions.png and b/doc/_static/proxy_minions.png differ diff --git a/doc/ref/configuration/master.rst b/doc/ref/configuration/master.rst index a24974cad84d..72464b6f8475 100644 --- a/doc/ref/configuration/master.rst +++ b/doc/ref/configuration/master.rst @@ -5101,6 +5101,33 @@ This can be used to control logging levels more specifically. See also :conf_log:`log_granular_levels`. +.. conf_master:: log_rotate_max_bytes + +``log_rotate_max_bytes`` +------------------------ + +Default: ``0`` + +The maximum number of bytes a single log file may contain before it is rotated. +A value of 0 disables this feature. Currently only supported on Windows. On +other platforms, use an external tool such as 'logrotate' to manage log files. +:conf_log:`log_rotate_max_bytes` + + +.. conf_master:: log_rotate_backup_count + +``log_rotate_backup_count`` +--------------------------- + +Default: ``0`` + +The number of backup files to keep when rotating log files. Only used if +:conf_master:`log_rotate_max_bytes` is greater than 0. Currently only supported +on Windows. On other platforms, use an external tool such as 'logrotate' to +manage log files. +:conf_log:`log_rotate_backup_count` + + .. _node-groups: Node Groups diff --git a/doc/ref/configuration/minion.rst b/doc/ref/configuration/minion.rst index f2950c8c04fa..621c3926b278 100644 --- a/doc/ref/configuration/minion.rst +++ b/doc/ref/configuration/minion.rst @@ -3103,6 +3103,34 @@ Default: ``{}`` This can be used to control logging levels more specifically. See also :conf_log:`log_granular_levels`. + +.. conf_minion:: log_rotate_max_bytes + +``log_rotate_max_bytes`` +------------------------ + +Default: ``0`` + +The maximum number of bytes a single log file may contain before it is rotated. +A value of 0 disables this feature. Currently only supported on Windows. On +other platforms, use an external tool such as 'logrotate' to manage log files. +:conf_log:`log_rotate_max_bytes` + + +.. conf_minion:: log_rotate_backup_count + +``log_rotate_backup_count`` +--------------------------- + +Default: ``0`` + +The number of backup files to keep when rotating log files. Only used if +:conf_minion:`log_rotate_max_bytes` is greater than 0. Currently only supported +on Windows. On other platforms, use an external tool such as 'logrotate' to +manage log files. +:conf_log:`log_rotate_backup_count` + + .. conf_minion:: zmq_monitor ``zmq_monitor`` diff --git a/doc/topics/beacons/index.rst b/doc/topics/beacons/index.rst index 0baaa6d8f12c..602b3c622d5c 100644 --- a/doc/topics/beacons/index.rst +++ b/doc/topics/beacons/index.rst @@ -322,7 +322,7 @@ the minion. The ``beacon`` function therefore cannot block and should be as lightweight as possible. The ``beacon`` also must return a list of dicts, each dict in the list will be translated into an event on the master. -Beacons may also choose to implement a ``__validate__`` function which +Beacons may also choose to implement a ``validate`` function which takes the beacon configuration as an argument and ensures that it is valid prior to continuing. This function is called automatically by the Salt loader when a beacon is loaded. diff --git a/doc/topics/development/contributing.rst b/doc/topics/development/contributing.rst index 5ea56d00ed13..f7860bbd4780 100644 --- a/doc/topics/development/contributing.rst +++ b/doc/topics/development/contributing.rst @@ -121,7 +121,8 @@ Fork a Repo Guide_>`_ and is well worth reading. .. note:: If your change fixes a bug or implements a feature already filed in the - `issue tracker `_, be sure to reference the issue + `issue tracker`_, be sure to + `reference the issue `_ number in the commit message body. .. code-block:: bash @@ -562,7 +563,7 @@ Script, see the Bootstrap Script's `Contributing Guidelines`_. .. _`saltstack/salt`: https://github.com/saltstack/salt .. _`GitHub Fork a Repo Guide`: https://help.github.com/articles/fork-a-repo -.. _`GitHub issue tracker`: https://github.com/saltstack/salt/issues +.. _`issue tracker`: https://github.com/saltstack/salt/issues .. _`Fork saltstack/salt`: https://github.com/saltstack/salt/fork .. _'Git resources`: https://help.github.com/articles/good-resources-for-learning-git-and-github/ .. _`Closing issues via commit message`: https://help.github.com/articles/closing-issues-via-commit-messages diff --git a/doc/topics/development/conventions/documentation.rst b/doc/topics/development/conventions/documentation.rst index 351fe227cc71..4317bd5a8bec 100644 --- a/doc/topics/development/conventions/documentation.rst +++ b/doc/topics/development/conventions/documentation.rst @@ -13,7 +13,7 @@ broadly, most of the narrative documentation is contained within the :blob:`doc` subdirectory and most of the reference and API documentation is written inline with Salt's Python code and extracted using a Sphinx extension. -.. _`Sphinx`: http://sphinx-doc.org/ +.. _`Sphinx`: https://www.sphinx-doc.org/en/master/ .. _docs-style: @@ -187,7 +187,7 @@ Link to :ref:`glossary entries ` using the `term role`_. A cross-reference should be added the first time a Salt-specific term is used in a document. -.. _`term role`: http://sphinx-doc.org/markup/inline.html#role-term +.. _`term role`: https://www.sphinx-doc.org/en/master/glossary.html#term-role .. code-block:: restructuredtext @@ -206,7 +206,7 @@ occasionally useful to manually add items to the index. One method is to use the `index directive`_ above the document or section that should appear in the index. -.. _`index directive`: http://sphinx-doc.org/markup/misc.html#directive-index +.. _`index directive`: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=index%20directive#index-generating-markup .. code-block:: restructuredtext @@ -217,7 +217,7 @@ Another method is to use the `index role`_ inline with the text that should appear in the index. The index entry is created and the target text is left otherwise intact. -.. _`index role`: http://sphinx-doc.org/markup/misc.html#role-index +.. _`index role`: http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#role-index .. code-block:: restructuredtext @@ -252,7 +252,7 @@ to survive document renames or movement. Note, the ``:doc:`` role should *not* be used to link documents together. -.. _`ref role`: http://sphinx-doc.org/markup/inline.html#role-ref +.. _`ref role`: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref .. _docs-ref-modules: diff --git a/doc/topics/development/hacking.rst b/doc/topics/development/hacking.rst index 5560c51a8858..3631134c9c54 100644 --- a/doc/topics/development/hacking.rst +++ b/doc/topics/development/hacking.rst @@ -283,7 +283,9 @@ Change to salt documentation directory, then: :strong:`text`. - The docs then are built within the :strong:`docs/_build/` folder. To update the docs after making changes, run ``make`` again. -- The docs use `reStructuredText `_ for markup. +- The docs use `reStructuredText + `_ + for markup. See a live demo at http://rst.ninjs.org/. - The help information on each module or state is culled from the python code that runs for that piece. Find them in ``salt/modules/`` or ``salt/states/``. diff --git a/doc/topics/proxyminion/index.rst b/doc/topics/proxyminion/index.rst index 1753f2f09985..d28970237441 100644 --- a/doc/topics/proxyminion/index.rst +++ b/doc/topics/proxyminion/index.rst @@ -188,7 +188,7 @@ The key thing to remember is the left-most section of the diagram. Salt's nature is to have a minion connect to a master, then the master may control the minion. However, for proxy minions, the target device cannot run a minion. -After the proxy minion is started and initiates its connection to the 'dumb' +After the proxy minion is started and initiates its connection to the device, it connects back to the salt-master and for all intents and purposes looks like just another minion to the Salt master. @@ -220,23 +220,23 @@ based on the diagram above: .. code-block:: yaml base: - dumbdevice1: - - dumbdevice1 - dumbdevice2: - - dumbdevice2 - dumbdevice3: - - dumbdevice3 - dumbdevice4: - - dumbdevice4 - dumbdevice5: - - dumbdevice5 - dumbdevice6: - - dumbdevice6 - dumbdevice7: - - dumbdevice7 - - -``/srv/pillar/dumbdevice1.sls`` + net-device1: + - net-device1 + net-device2: + - net-device2 + net-device3: + - net-device3 + i2c-device4: + - i2c-device4 + i2c-device5: + - i2c-device5 + 433wireless-device6: + - 433wireless-device6 + smsgate-device7: + - device7 + + +``/srv/pillar/net-device1.sls`` .. code-block:: yaml @@ -247,7 +247,7 @@ based on the diagram above: passwd: letmein -``/srv/pillar/dumbdevice2.sls`` +``/srv/pillar/net-device2.sls`` .. code-block:: yaml @@ -258,7 +258,7 @@ based on the diagram above: passwd: letmein -``/srv/pillar/dumbdevice3.sls`` +``/srv/pillar/net-device3.sls`` .. code-block:: yaml @@ -269,7 +269,7 @@ based on the diagram above: passwd: letmein -``/srv/pillar/dumbdevice4.sls`` +``/srv/pillar/i2c-device4.sls`` .. code-block:: yaml @@ -278,7 +278,7 @@ based on the diagram above: i2c_address: 1 -``/srv/pillar/dumbdevice5.sls`` +``/srv/pillar/i2c-device5.sls`` .. code-block:: yaml @@ -287,7 +287,7 @@ based on the diagram above: i2c_address: 2 -``/srv/pillar/dumbdevice6.sls`` +``/srv/pillar/433wireless-device6.sls`` .. code-block:: yaml @@ -295,7 +295,7 @@ based on the diagram above: proxytype: 433mhz_wireless -``/srv/pillar/dumbdevice7.sls`` +``/srv/pillar/smsgate-device7.sls`` .. code-block:: yaml @@ -309,18 +309,18 @@ the type of device that the proxy-minion is managing. In the above example -- dumbdevices 1, 2, and 3 are network switches that have a management +- net-devices 1, 2, and 3 are network switches that have a management interface available at a particular IP address. -- dumbdevices 4 and 5 are very low-level devices controlled over an i2c bus. +- i2c-devices 4 and 5 are very low-level devices controlled over an i2c bus. In this case the devices are physically connected to machine 'minioncontroller2', and are addressable on the i2c bus at their respective i2c addresses. -- dumbdevice6 is a 433 MHz wireless transmitter, also physically connected to +- 433wireless-device6 is a 433 MHz wireless transmitter, also physically connected to minioncontroller2 -- dumbdevice7 is an SMS gateway connected to machine minioncontroller3 via a +- smsgate-device7 is an SMS gateway connected to machine minioncontroller3 via a serial port. Because of the way pillar works, each of the salt-proxy processes that fork off the diff --git a/noxfile.py b/noxfile.py index 56bbcdba4806..9d5d8e7fa1a4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -7,9 +7,12 @@ ''' # Import Python libs +from __future__ import absolute_import, unicode_literals, print_function import os import sys import json +import pprint + if __name__ == '__main__': sys.stderr.write('Do not execute this file directly. Use nox instead, it will know how to handle this file\n') @@ -22,9 +25,6 @@ # Global Path Definitions REPO_ROOT = os.path.abspath(os.path.dirname(__file__)) SITECUSTOMIZE_DIR = os.path.join(REPO_ROOT, 'tests', 'support', 'coverage') - -# We can't just import salt because if this is running under a frozen nox, there -# will be no salt to import IS_WINDOWS = sys.platform.lower().startswith('win') REQUIREMENTS_OVERRIDES = { None: [ @@ -44,6 +44,7 @@ # Don't fail on missing interpreters nox.options.error_on_missing_interpreters = False + def _create_ci_directories(): for dirname in ('logs', 'coverage', 'xml-unittests-output'): path = os.path.join(REPO_ROOT, 'artifacts', dirname) @@ -51,42 +52,46 @@ def _create_ci_directories(): os.makedirs(path) -def _install_requirements_overrides(session, *extra_requirements): - session.install('distro') - output = session.run('distro', '-j', silent=True) - distro_data = json.loads(output.strip()) - - requirements_overrides = REQUIREMENTS_OVERRIDES[None] - requirements_overrides.extend( - REQUIREMENTS_OVERRIDES.get( - '{id}-{version}'.format(**distro_data), - [] - ) - ) - if requirements_overrides: - for requirement in requirements_overrides: - session.install(requirement) - - def _install_requirements(session, *extra_requirements): - _install_requirements_overrides(session) # Install requirements - _requirements_files = [ - os.path.join(REPO_ROOT, 'requirements', 'pytest.txt') - ] - if sys.platform.startswith('linux'): - requirements_files = [ - os.path.join(REPO_ROOT, 'requirements', 'tests.txt') + distro_requirements = None + + if not IS_WINDOWS: + # The distro package doesn't output anything for Windows + session.install('distro') + output = session.run('distro', '-j', silent=True) + distro = json.loads(output.strip()) + session.log('Distro information:\n%s', pprint.pformat(distro)) + distro_keys = [ + '{id}-{version}'.format(**distro), + '{id}-{version_parts[major]}'.format(**distro) ] - elif sys.platform.startswith('win'): - requirements_files = [ - os.path.join(REPO_ROOT, 'pkg', 'windows', 'req.txt'), - ] - elif sys.platform.startswith('darwin'): - requirements_files = [ - os.path.join(REPO_ROOT, 'pkg', 'osx', 'req.txt'), - os.path.join(REPO_ROOT, 'pkg', 'osx', 'req_ext.txt'), + for distro_key in distro_keys: + _distro_requirements = os.path.join(REPO_ROOT, 'requirements', 'static', '{}.txt'.format(distro_key)) + if os.path.exists(_distro_requirements): + distro_requirements = _distro_requirements + break + + if distro_requirements is not None: + _requirements_files = [distro_requirements] + requirements_files = [] + else: + _requirements_files = [ + os.path.join(REPO_ROOT, 'requirements', 'pytest.txt') ] + if sys.platform.startswith('linux'): + requirements_files = [ + os.path.join(REPO_ROOT, 'requirements', 'tests.txt') + ] + elif sys.platform.startswith('win'): + requirements_files = [ + os.path.join(REPO_ROOT, 'pkg', 'windows', 'req.txt'), + ] + elif sys.platform.startswith('darwin'): + requirements_files = [ + os.path.join(REPO_ROOT, 'pkg', 'osx', 'req.txt'), + os.path.join(REPO_ROOT, 'pkg', 'osx', 'req_ext.txt'), + ] while True: if not requirements_files: @@ -122,7 +127,7 @@ def _install_requirements(session, *extra_requirements): def _run_with_coverage(session, *test_cmd): - session.install('coverage') + session.install('coverage==4.5.3') session.run('coverage', 'erase') python_path_env_var = os.environ.get('PYTHONPATH') or None if python_path_env_var is None: @@ -144,12 +149,11 @@ def _run_with_coverage(session, *test_cmd): @nox.parametrize('coverage', [False, True]) def runtests(session, coverage): # Install requirements - _install_requirements(session, 'unittest-xml-reporting') + _install_requirements(session, 'unittest-xml-reporting<2.4.0') # Create required artifacts directories _create_ci_directories() cmd_args = [ - '-v', '--tests-logfile={}'.format( os.path.join(REPO_ROOT, 'artifacts', 'logs', 'runtests.log') ) @@ -176,7 +180,7 @@ def pytest(session, coverage): ), '--no-print-logs', '-ra', - '-sv' + '-s' ] + session.posargs if coverage is True: diff --git a/requirements/base.txt b/requirements/base.txt index ec8dc3b33a28..b313eb7afe87 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -2,7 +2,7 @@ Jinja2 # This should be changed to msgpack-python for Packages # msgpack-python>0.3,!=0.5.5 msgpack>=0.5,!=0.5.5 -PyYAML +PyYAML<5.1 MarkupSafe requests>=1.0.0 tornado>=4.2.1,<6.0; python_version < '3' diff --git a/requirements/static/README.rst b/requirements/static/README.rst new file mode 100644 index 000000000000..f1126d7726c7 --- /dev/null +++ b/requirements/static/README.rst @@ -0,0 +1,14 @@ +What Is This All About +====================== + +This directory will contain platform specific requirements(and the requirements +of each requirements) locked to the versions used as if the testing environment +was setup using the salt-jenkins states. + +The purpose of this is to ease the transition to `nox` and golden images where +only binary system packages are installed on the golden image and `nox` +installs the python dependencies on virtualenv specifically created for the +test run. + +This will also make sure we run the tests with the exact same dependencies +everytime. diff --git a/requirements/static/centos-6.in b/requirements/static/centos-6.in new file mode 100644 index 000000000000..4e710be41996 --- /dev/null +++ b/requirements/static/centos-6.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython<2.0.9 +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +supervisor; python_version < '3' +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/centos-6.txt b/requirements/static/centos-6.txt new file mode 100644 index 000000000000..1d88a5ab47b9 --- /dev/null +++ b/requirements/static/centos-6.txt @@ -0,0 +1,124 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/centos-6.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/centos-6.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +bcrypt==3.1.6 # via paramiko +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb==0.6.4 # via gitpython +gitpython==2.0.8 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +meld3==1.0.2 # via supervisor +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.4.2 # via junos-eznc, ncclient, scp +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pynacl==1.3.0 # via paramiko +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap==0.9.0 # via gitdb +strict-rfc3339==0.7 +supervisor==3.3.5 ; python_version < "3" +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/centos-7.in b/requirements/static/centos-7.in new file mode 100644 index 000000000000..6412ae0d7eeb --- /dev/null +++ b/requirements/static/centos-7.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +supervisor; python_version < '3' +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/centos-7.txt b/requirements/static/centos-7.txt new file mode 100644 index 000000000000..7534e24aa952 --- /dev/null +++ b/requirements/static/centos-7.txt @@ -0,0 +1,124 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/centos-7.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/centos-7.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +bcrypt==3.1.6 # via paramiko +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +meld3==1.0.2 # via supervisor +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.4.2 # via junos-eznc, ncclient, scp +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pynacl==1.3.0 # via paramiko +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +supervisor==3.3.5 ; python_version < "3" +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/debian-8.in b/requirements/static/debian-8.in new file mode 100644 index 000000000000..56b62e77ff3a --- /dev/null +++ b/requirements/static/debian-8.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +paramiko==2.1.2 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/debian-8.txt b/requirements/static/debian-8.txt new file mode 100644 index 000000000000..035d9715bfdf --- /dev/null +++ b/requirements/static/debian-8.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/debian-8.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/debian-8.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.1.2 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/debian-9.in b/requirements/static/debian-9.in new file mode 100644 index 000000000000..56b62e77ff3a --- /dev/null +++ b/requirements/static/debian-9.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +paramiko==2.1.2 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/debian-9.txt b/requirements/static/debian-9.txt new file mode 100644 index 000000000000..640f2b662de9 --- /dev/null +++ b/requirements/static/debian-9.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/debian-9.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/debian-9.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.1.2 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/fedora-28.in b/requirements/static/fedora-28.in new file mode 100644 index 000000000000..b30ca9f1c16e --- /dev/null +++ b/requirements/static/fedora-28.in @@ -0,0 +1,36 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/fedora-28.txt b/requirements/static/fedora-28.txt new file mode 100644 index 000000000000..1ff78a38d632 --- /dev/null +++ b/requirements/static/fedora-28.txt @@ -0,0 +1,122 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/fedora-28.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/fedora-28.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +bcrypt==3.1.6 # via paramiko +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.4.2 # via junos-eznc, ncclient, scp +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pynacl==1.3.0 # via paramiko +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/fedora-29.in b/requirements/static/fedora-29.in new file mode 100644 index 000000000000..b30ca9f1c16e --- /dev/null +++ b/requirements/static/fedora-29.in @@ -0,0 +1,36 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/fedora-29.txt b/requirements/static/fedora-29.txt new file mode 100644 index 000000000000..7049c8db4333 --- /dev/null +++ b/requirements/static/fedora-29.txt @@ -0,0 +1,122 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/fedora-29.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/fedora-29.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +bcrypt==3.1.6 # via paramiko +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.4.2 # via junos-eznc, ncclient, scp +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pynacl==1.3.0 # via paramiko +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/opensuse-42.in b/requirements/static/opensuse-42.in new file mode 100644 index 000000000000..ec3953e80581 --- /dev/null +++ b/requirements/static/opensuse-42.in @@ -0,0 +1,38 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +certifi +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +hgtools +ioflo +jsonschema<=2.6.0 +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +setuptools-scm +strict_rfc3339 +supervisor; python_version < '3' +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/opensuse-42.txt b/requirements/static/opensuse-42.txt new file mode 100644 index 000000000000..53df3ccdd8d6 --- /dev/null +++ b/requirements/static/opensuse-42.txt @@ -0,0 +1,115 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/opensuse-42.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/opensuse-42.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +hgtools==8.1.1 +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +markupsafe==1.1.1 +meld3==1.0.2 # via supervisor +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +setproctitle==1.1.10 +setuptools-scm==3.2.0 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +supervisor==3.3.5 ; python_version < "3" +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/opensuse-leap-15.in b/requirements/static/opensuse-leap-15.in new file mode 100644 index 000000000000..50a8552c9654 --- /dev/null +++ b/requirements/static/opensuse-leap-15.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +certifi +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +hgtools +ioflo +jsonschema<=2.6.0 +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +setuptools-scm +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/opensuse-leap-15.txt b/requirements/static/opensuse-leap-15.txt new file mode 100644 index 000000000000..26f78a6fafed --- /dev/null +++ b/requirements/static/opensuse-leap-15.txt @@ -0,0 +1,113 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/opensuse-leap-15.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/opensuse-leap-15.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +hgtools==8.1.1 +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +setproctitle==1.1.10 +setuptools-scm==3.2.0 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/ubuntu-14.04.in b/requirements/static/ubuntu-14.04.in new file mode 100644 index 000000000000..56b62e77ff3a --- /dev/null +++ b/requirements/static/ubuntu-14.04.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +paramiko==2.1.2 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/ubuntu-14.04.txt b/requirements/static/ubuntu-14.04.txt new file mode 100644 index 000000000000..d59e4176d971 --- /dev/null +++ b/requirements/static/ubuntu-14.04.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/ubuntu-14.04.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/ubuntu-14.04.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.1.2 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/ubuntu-16.04.in b/requirements/static/ubuntu-16.04.in new file mode 100644 index 000000000000..56b62e77ff3a --- /dev/null +++ b/requirements/static/ubuntu-16.04.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +paramiko==2.1.2 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/ubuntu-16.04.txt b/requirements/static/ubuntu-16.04.txt new file mode 100644 index 000000000000..1647182c16e1 --- /dev/null +++ b/requirements/static/ubuntu-16.04.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/ubuntu-16.04.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/ubuntu-16.04.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.1.2 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/requirements/static/ubuntu-18.04.in b/requirements/static/ubuntu-18.04.in new file mode 100644 index 000000000000..56b62e77ff3a --- /dev/null +++ b/requirements/static/ubuntu-18.04.in @@ -0,0 +1,37 @@ +# This is a compilation of requirements installed on salt-jenkins git.salt state run +apache-libcloud==1.0.0 +boto3 +boto>=2.46.0 +cffi +cherrypy==17.3.0 +dnspython +docker +futures>=2.0; python_version < '3.0' +GitPython +ioflo +jsonschema<=2.6.0 +junos-eznc +jxmlease +keyring==5.7.1 +kubernetes<4.0 +mock<1.1.0 +more-itertools==5.0.0 +moto +msgpack-python >= 0.4.2, != 0.5.5 +paramiko==2.1.2 +psutil +pycrypto>=2.6.1 +pyinotify +pyopenssl +python-etcd==0.4.2 +python-gnupg +pyvmomi +pyzmq +requests +rfc3987 +salttesting==2017.6.1 +setproctitle +strict_rfc3339 +timelib +tornado<5.0 +virtualenv diff --git a/requirements/static/ubuntu-18.04.txt b/requirements/static/ubuntu-18.04.txt new file mode 100644 index 000000000000..49837a33505d --- /dev/null +++ b/requirements/static/ubuntu-18.04.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile -o requirements/static/ubuntu-18.04.txt requirements/zeromq.txt requirements/raet.txt requirements/pytest.txt requirements/static/ubuntu-18.04.in +# +apache-libcloud==1.0.0 +asn1crypto==0.24.0 # via cryptography +atomicwrites==1.3.0 # via pytest +attrs==19.1.0 # via pytest +aws-xray-sdk==0.95 # via moto +backports-abc==0.5 # via tornado +backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools +backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client +backports.tempfile==1.0 # via moto +backports.weakref==1.0.post1 # via backports.tempfile +boto3==1.9.115 +boto==2.49.0 +botocore==1.12.115 # via boto3, moto, s3transfer +cachetools==3.1.0 # via google-auth +certifi==2019.3.9 # via kubernetes, requests, tornado +cffi==1.12.2 +chardet==3.0.4 # via requests +cheroot==6.5.4 # via cherrypy +cherrypy==17.3.0 +contextlib2==0.5.5 # via cherrypy +cookies==2.2.1 # via responses +coverage==4.5.3 # via pytest-cov +cryptography==2.6.1 # via moto, paramiko, pyopenssl +dnspython==1.16.0 +docker-pycreds==0.4.0 # via docker +docker==3.7.0 +docutils==0.14 # via botocore +ecdsa==0.13 # via python-jose +enum34==1.1.6 # via cryptography, raet +funcsigs==1.0.2 # via pytest +functools32==3.2.3.post2 # via jsonschema +future==0.17.1 # via python-jose +futures==3.2.0 ; python_version < "3.0" +gitdb2==2.0.5 # via gitpython +gitpython==2.1.11 +google-auth==1.6.3 # via kubernetes +idna==2.8 # via requests +ioflo==1.7.5 +ipaddress==1.0.22 # via cryptography, docker, kubernetes +jaraco.functools==2.0 # via tempora +jinja2==2.10 +jmespath==0.9.4 # via boto3, botocore +jsondiff==1.1.1 # via moto +jsonpickle==1.1 # via aws-xray-sdk +jsonschema==2.6.0 +junos-eznc==2.2.0 +jxmlease==1.0.1 +keyring==5.7.1 +kubernetes==3.0.0 +libnacl==1.6.1 +lxml==4.3.2 # via junos-eznc, ncclient +markupsafe==1.1.1 +mock==1.0.1 +more-itertools==5.0.0 +moto==1.3.7 +msgpack-python==0.5.6 +msgpack==0.6.1 +ncclient==0.6.3 # via junos-eznc +netaddr==0.7.19 # via junos-eznc +paramiko==2.1.2 +pathlib2==2.3.3 # via pytest +pluggy==0.9.0 # via pytest +portend==2.3 # via cherrypy +psutil==5.6.1 +py==1.8.0 # via pytest +pyaml==18.11.0 # via moto +pyasn1-modules==0.2.4 # via google-auth +pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa +pycparser==2.19 # via cffi +pycrypto==2.6.1 +pycryptodome==3.7.3 # via python-jose +pyinotify==0.9.6 +pyopenssl==19.0.0 +pyserial==3.4 # via junos-eznc +pytest-cov==2.6.1 +pytest-helpers-namespace==2019.1.8 +pytest-salt-runtests-bridge==2019.1.30 +pytest-salt==2018.12.8 +pytest-tempdir==2018.8.11 +pytest-timeout==1.3.3 +pytest==4.3.1 +python-dateutil==2.8.0 # via botocore, kubernetes, moto +python-etcd==0.4.2 +python-gnupg==0.4.4 +python-jose==2.0.2 # via moto +pytz==2018.9 # via moto, tempora +pyvmomi==6.7.1.2018.12 +pyyaml==3.13 +pyzmq==18.0.1 ; python_version != "3.4" +raet==0.6.8 +requests==2.21.0 +responses==0.10.5 # via moto +rfc3987==1.3.8 +rsa==4.0 # via google-auth +s3transfer==0.2.0 # via boto3 +salttesting==2017.6.1 +scandir==1.10.0 # via pathlib2 +scp==0.13.1 # via junos-eznc +selectors2==2.0.1 # via ncclient +setproctitle==1.1.10 +singledispatch==3.4.0.3 # via tornado +six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client +smmap2==2.0.5 # via gitdb2 +strict-rfc3339==0.7 +tempora==1.14 # via portend +timelib==0.2.4 +tornado==4.5.3 ; python_version < "3" +urllib3==1.24.1 # via botocore, kubernetes, python-etcd, requests +virtualenv==16.4.3 +websocket-client==0.40.0 # via docker, kubernetes +werkzeug==0.14.1 # via moto +wrapt==1.11.1 # via aws-xray-sdk +xmltodict==0.12.0 # via moto +zc.lockfile==1.4 # via cherrypy diff --git a/salt/beacons/aix_account.py b/salt/beacons/aix_account.py index 5d7d13d29a83..8cb9c13ae8fe 100644 --- a/salt/beacons/aix_account.py +++ b/salt/beacons/aix_account.py @@ -27,7 +27,7 @@ def __virtual__(): 'only available on AIX systems.') -def __validate__(config): +def validate(config): ''' Validate the beacon configuration ''' diff --git a/salt/cloud/__init__.py b/salt/cloud/__init__.py index a875b7e5a428..8d34837dafb1 100644 --- a/salt/cloud/__init__.py +++ b/salt/cloud/__init__.py @@ -1271,16 +1271,16 @@ def create(self, vm_, local_master=True): start = int(time.time()) while int(time.time()) < start + 60: # We'll try every seconds, up to a minute - mopts_ = salt.config.DEFAULT_MINION_OPTS + mopts_ = salt.config.DEFAULT_MASTER_OPTS conf_path = '/'.join(self.opts['conf_file'].split('/')[:-1]) mopts_.update( - salt.config.minion_config( + salt.config.master_config( os.path.join(conf_path, - 'minion') + 'master') ) ) - client = salt.client.get_local_client(mopts=self.opts) + client = salt.client.get_local_client(mopts=mopts_) ret = client.cmd( vm_['name'], diff --git a/salt/modules/dockermod.py b/salt/modules/dockermod.py index 5d02426b1a84..60ffbe1651a3 100644 --- a/salt/modules/dockermod.py +++ b/salt/modules/dockermod.py @@ -858,6 +858,13 @@ def _get_create_kwargs(skip_translate=None, Take input kwargs and return a kwargs dict to pass to docker-py's create_container() function. ''' + + networks = kwargs.pop('networks', {}) + if kwargs.get('network_mode', '') in networks: + networks = {kwargs['network_mode']: networks[kwargs['network_mode']]} + else: + networks = {} + kwargs = __utils__['docker.translate_input']( salt.utils.docker.translate.container, skip_translate=skip_translate, @@ -865,6 +872,9 @@ def _get_create_kwargs(skip_translate=None, validate_ip_addrs=validate_ip_addrs, **__utils__['args.clean_kwargs'](**kwargs)) + if networks: + kwargs['networking_config'] = _create_networking_config(networks) + if client_args is None: try: client_args = get_client_args(['create_container', 'host_config']) @@ -2420,6 +2430,11 @@ def version(): return ret +def _create_networking_config(networks): + log.debug("creating networking config from {}".format(networks)) + return _client_wrapper('create_networking_config', + {k: _client_wrapper('create_endpoint_config', **v) for k, v in networks.items()}) + # Functions to manage containers @_refresh_mine_cache def create(image, diff --git a/salt/states/docker_container.py b/salt/states/docker_container.py index 71798bbec59e..e6a08981e1dd 100644 --- a/salt/states/docker_container.py +++ b/salt/states/docker_container.py @@ -1692,6 +1692,8 @@ def running(name, # value here. configured_networks = networks networks = _parse_networks(networks) + if networks: + kwargs['networks'] = networks image_id = _resolve_image(ret, image, client_timeout) except CommandExecutionError as exc: ret['result'] = False diff --git a/salt/states/x509.py b/salt/states/x509.py index 68356738489f..39571aef272c 100644 --- a/salt/states/x509.py +++ b/salt/states/x509.py @@ -294,7 +294,7 @@ def private_key_managed(name, x509.private_key_managed: - bits: 4096 - new: True - {% if salt['file.file_exists']('/etc/pki/ca.key') -%} + {% if salt['file.file_exists']('/etc/pki/www.key') -%} - prereq: - x509: /etc/pki/www.crt {%- endif %} diff --git a/salt/utils/minions.py b/salt/utils/minions.py index 83ca605d22a2..411c2014932d 100644 --- a/salt/utils/minions.py +++ b/salt/utils/minions.py @@ -271,9 +271,10 @@ def _check_cache_minions(self, regex_match=False, exact_match=False): ''' - Helper function to search for minions in master caches - If 'greedy' return accepted minions that matched by the condition or absend in the cache. - If not 'greedy' return the only minions have cache data and matched by the condition. + Helper function to search for minions in master caches If 'greedy', + then return accepted minions matched by the condition or those absent + from the cache. If not 'greedy' return the only minions have cache + data and matched by the condition. ''' cache_enabled = self.opts.get('minion_data_cache', False) diff --git a/tests/integration/modules/test_beacons.py b/tests/integration/modules/test_beacons.py index a7fd0903daff..1cecf8f514d2 100644 --- a/tests/integration/modules/test_beacons.py +++ b/tests/integration/modules/test_beacons.py @@ -42,7 +42,8 @@ def test_add_and_delete(self): _add = self.run_function( 'beacons.add', ['ps', [{'processes': {'apache2': 'stopped'}}]], - f_timeout=300) + f_timeout=300 + ) self.assertTrue(_add['result']) # save added beacon diff --git a/tests/integration/modules/test_shadow.py b/tests/integration/modules/test_shadow.py index c02419794976..e443388199de 100644 --- a/tests/integration/modules/test_shadow.py +++ b/tests/integration/modules/test_shadow.py @@ -17,6 +17,7 @@ # Import Salt libs import salt.utils.files import salt.utils.platform +import salt.modules.shadow from salt.ext.six.moves import range @@ -27,11 +28,6 @@ class ShadowModuleTest(ModuleCase): Validate the linux shadow system module ''' - def __init__(self, arg): - super(self.__class__, self).__init__(arg) - self._test_user = self.__random_string() - self._no_user = self.__random_string() - def setUp(self): ''' Get current settings @@ -47,12 +43,9 @@ def setUp(self): **os_grain ) ) - - def tearDown(self): - ''' - Reset to original settings - ''' - self.run_function('user.delete', [self._test_user]) + self._test_user = self.__random_string() + self._no_user = self.__random_string() + self._password = salt.modules.shadow.gen_password('Password1234') def __random_string(self, size=6): ''' @@ -68,6 +61,7 @@ def test_info(self): ''' Test shadow.info ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -83,6 +77,7 @@ def test_del_password(self): ''' Test shadow.del_password ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -98,6 +93,7 @@ def test_set_password(self): ''' Test shadow.set_password ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -111,6 +107,7 @@ def test_set_inactdays(self): ''' Test shadow.set_inactdays ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -124,6 +121,7 @@ def test_set_maxdays(self): ''' Test shadow.set_maxdays ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -137,6 +135,7 @@ def test_set_mindays(self): ''' Test shadow.set_mindays ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -151,6 +150,7 @@ def test_lock_password(self): ''' Test shadow.lock_password ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) self.run_function('shadow.set_password', [self._test_user, self._password]) @@ -165,6 +165,7 @@ def test_unlock_password(self): ''' Test shadow.lock_password ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) self.run_function('shadow.set_password', [self._test_user, self._password]) @@ -179,6 +180,7 @@ def test_set_warndays(self): ''' Test shadow.set_warndays ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -192,6 +194,7 @@ def test_set_date(self): ''' Test shadow.set_date ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -205,6 +208,7 @@ def test_set_expire(self): ''' Test shadow.set_exipre ''' + self.addCleanup(self.run_function, 'user.delete', [self._test_user]) self.run_function('user.add', [self._test_user]) # Correct Functionality @@ -221,16 +225,19 @@ def test_set_del_root_password(self): # saving shadow file if not os.access("/etc/shadow", os.R_OK | os.W_OK): self.skipTest('Could not save initial state of /etc/shadow') - with salt.utils.files.fopen('/etc/shadow', 'r') as sFile: - shadow = sFile.read() + + def restore_shadow_file(contents): + # restore shadow file + with salt.utils.files.fopen('/etc/shadow', 'w') as wfh: + wfh.write(contents) + + with salt.utils.files.fopen('/etc/shadow', 'r') as rfh: + contents = rfh.read() + self.addCleanup(restore_shadow_file, contents) + # set root password self.assertTrue(self.run_function('shadow.set_password', ['root', self._password])) - self.assertEqual( - self.run_function('shadow.info', ['root'])['passwd'], self._password) + self.assertEqual(self.run_function('shadow.info', ['root'])['passwd'], self._password) # delete root password self.assertTrue(self.run_function('shadow.del_password', ['root'])) - self.assertEqual( - self.run_function('shadow.info', ['root'])['passwd'], '') - #restore shadow file - with salt.utils.files.fopen('/etc/shadow', 'w') as sFile: - sFile.write(shadow) + self.assertEqual(self.run_function('shadow.info', ['root'])['passwd'], '') diff --git a/tests/integration/states/test_docker_container.py b/tests/integration/states/test_docker_container.py index bede47be723e..c73d2782982f 100644 --- a/tests/integration/states/test_docker_container.py +++ b/tests/integration/states/test_docker_container.py @@ -594,6 +594,33 @@ def test_env_with_running_container(self, name): self.assertTrue('VAR2=value2' in ret['Config']['Env']) self.assertTrue('VAR3=value3' not in ret['Config']['Env']) + @with_network(subnet='10.247.197.96/27', create=True) + @container_name + def test_static_ip_one_network(self, container_name, net): + ''' + Ensure that if a network is created and specified as network_mode, that is the only network, and + the static IP is applied. + ''' + requested_ip = '10.247.197.100' + kwargs = { + 'name': container_name, + 'image': self.image, + 'network_mode': net.name, + 'networks': [{net.name: [{'ipv4_address': requested_ip}]}], + 'shutdown_timeout': 1, + } + # Create a container + ret = self.run_state('docker_container.running', **kwargs) + self.assertSaltTrueReturn(ret) + + inspect_result = self.run_function('docker.inspect_container', + [container_name]) + connected_networks = inspect_result['NetworkSettings']['Networks'] + + self.assertEqual(list(connected_networks.keys()), [net.name]) + self.assertEqual(inspect_result['HostConfig']['NetworkMode'], net.name) + self.assertEqual(connected_networks[net.name]['IPAMConfig']['IPv4Address'], requested_ip) + def _test_running(self, container_name, *nets): ''' DRY function for testing static IPs