mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
commit
ec924e8410
55 changed files with 104 additions and 103 deletions
|
@ -22,7 +22,7 @@ Salt copy copies a local file out to all of the Salt minions matched by the
|
|||
given target.
|
||||
|
||||
Note: salt-cp uses salt's publishing mechanism. This means the privacy of the
|
||||
contents of the file on the wire are completely dependant upon the transport
|
||||
contents of the file on the wire is completely dependent upon the transport
|
||||
in use. In addition, if the salt-master is running with debug logging it is
|
||||
possible that the contents of the file will be logged to disk.
|
||||
|
||||
|
|
|
@ -451,10 +451,11 @@ only the cache for the mine system.
|
|||
|
||||
Default: 0
|
||||
|
||||
The number of minions the master should allow to connect. Use this to accommodate
|
||||
the number of minions per master if you have different types of hardware serving
|
||||
your minions. The default of ``0`` means unlimited connections. Please note, that
|
||||
this can slow down the authentication process a bit in large setups.
|
||||
The maximum number of minion connections allowed by the master. Use this to
|
||||
accommodate the number of minions per master if you have different types of
|
||||
hardware serving your minions. The default of ``0`` means unlimited connections.
|
||||
Please note, that this can slow down the authentication process a bit in large
|
||||
setups.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
|
|
@ -518,7 +518,7 @@ If a "fallback_function" is defined, it will replace the function instead of rem
|
|||
'''
|
||||
return True
|
||||
|
||||
In addition to global dependancies the depends decorator also supports raw booleans.
|
||||
In addition to global dependencies the depends decorator also supports raw booleans.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
|
|
@ -1454,7 +1454,7 @@ Required if the blob has an active lease.
|
|||
progress_callback
|
||||
`````````````````
|
||||
callback for progress with signature function(current, total) where
|
||||
current is the number of bytes transfered so far, and total is the
|
||||
current is the number of bytes transferred so far, and total is the
|
||||
size of the blob.
|
||||
|
||||
max_connections
|
||||
|
|
|
@ -85,7 +85,7 @@ Here are the options to configure your containers:
|
|||
Name of the profile or inline options for the LXC vm network settings,
|
||||
please see :ref:`tutorial-lxc-profiles-network`.
|
||||
nic_opts
|
||||
Totally optionnal.
|
||||
Totally optional.
|
||||
Per interface new-style configuration options mappings which will
|
||||
override any profile default option::
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ Salt Master
|
|||
Overview
|
||||
--------
|
||||
|
||||
The salt-master deamon runs on the designated Salt master and performs
|
||||
The salt-master daemon runs on the designated Salt master and performs
|
||||
functions such as authenticating minions, sending, and receiving requests
|
||||
from connected minions and sending and receiving requests and replies to the
|
||||
'salt' CLI.
|
||||
|
|
|
@ -253,7 +253,7 @@ single one which will trigger the other two:
|
|||
-e ./salt # the path to the salt git clone from above
|
||||
|
||||
|
||||
This last one will grant you an edditable salt installation with hardcoded
|
||||
This last one will grant you an editable salt installation with hardcoded
|
||||
system paths and version information.
|
||||
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ success condition, the test function is simply named ``test_get()``. As
|
|||
described, the single function call parameter, ``name`` is mocked with
|
||||
``net.ipv4.ip_forward`` and ``__salt__['cmd.run']`` is replaced by a MagicMock
|
||||
function object. We are only interested in the return value of
|
||||
``__salt__['cmd.run']``, which MagicMock allows to be specified via
|
||||
``__salt__['cmd.run']``, which MagicMock allows us by specifying via
|
||||
``return_value=1``. Finally, the test itself tests for equality between the
|
||||
return value of ``get()`` and the expected return of ``1``. This assertion is
|
||||
expected to succeed because ``get()`` will determine its return value from
|
||||
|
|
|
@ -12,7 +12,7 @@ Multimaster
|
|||
===========
|
||||
|
||||
Salt minions can connect to multiple masters at one time by configuring the
|
||||
`master` configuration paramter as a YAML list of all the available masters. By
|
||||
`master` configuration parameter as a YAML list of all the available masters. By
|
||||
default, all masters are "hot", meaning that any master can direct commands to
|
||||
the Salt infrastructure.
|
||||
|
||||
|
@ -71,4 +71,4 @@ Syndic with Multimaster
|
|||
Syndic with Multimaster lets you connect a syndic to multiple masters to provide
|
||||
an additional layer of redundancy in a syndic configuration.
|
||||
|
||||
Syndics are covered in depth in :doc:`Salt Syndic </topics/topology/syndic>`.
|
||||
Syndics are covered in depth in :doc:`Salt Syndic </topics/topology/syndic>`.
|
||||
|
|
|
@ -234,7 +234,7 @@ SaltStack download site:
|
|||
* `Salt32.zip <http://repo.saltstack.com/windows/dependencies/Salt32.zip/>`_
|
||||
* `Salt64.zip <http://repo.saltstack.com/windows/dependencies/Salt64.zip/>`_
|
||||
|
||||
These files contain all sofware required to build and develop salt. Unzip the
|
||||
These files contain all software required to build and develop salt. Unzip the
|
||||
contents of the file to ``C:\Salt-Dev\temp``.
|
||||
|
||||
Create the Build Environment
|
||||
|
@ -528,7 +528,7 @@ Packages management under Windows 2003
|
|||
|
||||
On windows Server 2003, you need to install optional component "wmi windows
|
||||
installer provider" to have full list of installed packages. If you don't have
|
||||
this, salt-minion can't report some installed softwares.
|
||||
this, salt-minion can't report some installed software.
|
||||
|
||||
|
||||
.. _http://csa-net.dk/salt: http://csa-net.dk/salt
|
||||
|
|
|
@ -77,7 +77,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* 2d9aa2b Avoid shadowing variables in lxc module
|
||||
|
||||
* 792e102 Allow to override profile options in lxc.cloud_init_interface
|
||||
* 792e102 Allow overriding profile options in lxc.cloud_init_interface
|
||||
|
||||
* 42bd64b Return changes on successful lxc.create from salt-cloud
|
||||
|
||||
|
@ -290,19 +290,19 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* c838a22 unit tests for grains.append module function
|
||||
|
||||
- **PR** `#23474`_: (*dr4Ke*) Fix grains.append in nested dictionnary grains `#23411`_
|
||||
- **PR** `#23474`_: (*dr4Ke*) Fix grains.append in nested dictionary grains `#23411`_
|
||||
@ *2015-05-11T18:00:21Z*
|
||||
|
||||
- **ISSUE** `#23411`_: (*dr4Ke*) grains.append should work at any level of a grain
|
||||
| refs: `#23440`_
|
||||
- **PR** `#23440`_: (*dr4Ke*) fix grains.append in nested dictionnary grains `#23411`_
|
||||
- **PR** `#23440`_: (*dr4Ke*) fix grains.append in nested dictionary grains `#23411`_
|
||||
| refs: `#23474`_
|
||||
* e96c5c5 Merge pull request `#23474`_ from dr4Ke/fix_grains.append_nested
|
||||
* a01a5bb grains.get, parameter delimititer, versionadded: 2014.7.6
|
||||
|
||||
* b39f504 remove debugging output
|
||||
|
||||
* b6e15e2 fix grains.append in nested dictionnary grains `#23411`_
|
||||
* b6e15e2 fix grains.append in nested dictionary grains `#23411`_
|
||||
|
||||
- **PR** `#23537`_: (*t0rrant*) Update changelog
|
||||
@ *2015-05-11T17:02:16Z*
|
||||
|
@ -490,13 +490,13 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
* 4f760dd Merge pull request `#23347`_ from basepi/salt-ssh.functionwrapper.contains.19114
|
||||
* 30595e3 Backport FunctionWrapper.__contains__
|
||||
|
||||
- **PR** `#23344`_: (*cachedout*) Explicitely set file_client on master
|
||||
- **PR** `#23344`_: (*cachedout*) Explicitly set file_client on master
|
||||
@ *2015-05-04T23:21:48Z*
|
||||
|
||||
- **ISSUE** `#22742`_: (*hvnsweeting*) salt-master says: "This master address: 'salt' was previously resolvable but now fails to resolve!"
|
||||
| refs: `#23344`_
|
||||
* 02658b1 Merge pull request `#23344`_ from cachedout/issue_22742
|
||||
* 5adc96c Explicitely set file_client on master
|
||||
* 5adc96c Explicitly set file_client on master
|
||||
|
||||
- **PR** `#23318`_: (*cellscape*) Honor seed argument in LXC container initializaton
|
||||
@ *2015-05-04T20:58:12Z*
|
||||
|
|
|
@ -501,7 +501,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* 558798d Fix net_io_counters deprecation issue
|
||||
|
||||
* 8140f92 Override unecessary pylint errors
|
||||
* 8140f92 Override unnecessary pylint errors
|
||||
|
||||
* 7d02ad4 Fix some of the mock names for the new API
|
||||
|
||||
|
@ -513,7 +513,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* e48982f Fix version checking in psutil_compat
|
||||
|
||||
* 93ee411 Create compatability psutil. psutil 3.0 drops 1.0 API, but we still support old psutil versions.
|
||||
* 93ee411 Create compatibility psutil. psutil 3.0 drops 1.0 API, but we still support old psutil versions.
|
||||
|
||||
- **PR** `#23782`_: (*terminalmage*) Replace "command -v" with "which" and get rid of spurious log messages
|
||||
@ *2015-05-16T04:03:10Z*
|
||||
|
@ -564,7 +564,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* 2d9aa2b Avoid shadowing variables in lxc module
|
||||
|
||||
* 792e102 Allow to override profile options in lxc.cloud_init_interface
|
||||
* 792e102 Allow overriding profile options in lxc.cloud_init_interface
|
||||
|
||||
* 42bd64b Return changes on successful lxc.create from salt-cloud
|
||||
|
||||
|
@ -782,11 +782,11 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
* 07e987e Merge pull request `#23702`_ from jayeshka/fix_lvs_service
|
||||
* ecff218 fix lvs_service
|
||||
|
||||
- **PR** `#23686`_: (*jfindlay*) remove superflous return statement
|
||||
- **PR** `#23686`_: (*jfindlay*) remove superfluous return statement
|
||||
@ *2015-05-14T14:20:18Z*
|
||||
|
||||
* 39973d4 Merge pull request `#23686`_ from jfindlay/fix_lvs_server
|
||||
* 5aaeb73 remove superflous return statement
|
||||
* 5aaeb73 remove superfluous return statement
|
||||
|
||||
- **PR** `#23690`_: (*rallytime*) Backport `#23424`_ to 2015.5
|
||||
@ *2015-05-13T23:04:36Z*
|
||||
|
@ -853,10 +853,10 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
- **PR** `#23530`_: (*dr4Ke*) salt-ssh state: fix including all salt:// references
|
||||
- **PR** `#23496`_: (*martinhoefling*) Fix for issue `#23110`_
|
||||
| refs: `#23594`_
|
||||
- **PR** `#23474`_: (*dr4Ke*) Fix grains.append in nested dictionnary grains `#23411`_
|
||||
- **PR** `#23474`_: (*dr4Ke*) Fix grains.append in nested dictionary grains `#23411`_
|
||||
- **PR** `#23442`_: (*clan*) add directory itself to keep list
|
||||
| refs: `#23593`_
|
||||
- **PR** `#23440`_: (*dr4Ke*) fix grains.append in nested dictionnary grains `#23411`_
|
||||
- **PR** `#23440`_: (*dr4Ke*) fix grains.append in nested dictionary grains `#23411`_
|
||||
| refs: `#23474`_
|
||||
- **PR** `#23433`_: (*twangboy*) Obtain all software from the registry
|
||||
- **PR** `#23389`_: (*cachedout*) Correct fail_hard typo
|
||||
|
@ -952,7 +952,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* b39f504 remove debugging output
|
||||
|
||||
* b6e15e2 fix grains.append in nested dictionnary grains `#23411`_
|
||||
* b6e15e2 fix grains.append in nested dictionary grains `#23411`_
|
||||
|
||||
* ab7e1ae Merge pull request `#23537`_ from t0rrant/patch-1
|
||||
|
||||
|
@ -968,7 +968,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* 73cfda7 Remove unused import
|
||||
|
||||
* 52b68d6 Use the zip_longest from six module for python 3 compatiblity
|
||||
* 52b68d6 Use the zip_longest from six module for python 3 compatibility
|
||||
|
||||
* 18d5ff9 Fix salt.state.file._unify_sources_and_hashes when sources is used without sources_hashes
|
||||
|
||||
|
@ -1477,7 +1477,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
| refs: `#23368`_
|
||||
- **PR** `#23350`_: (*lorengordon*) Append/prepend: search for full line
|
||||
- **PR** `#23347`_: (*basepi*) [2014.7] Salt-SSH Backport FunctionWrapper.__contains__
|
||||
- **PR** `#23344`_: (*cachedout*) Explicitely set file_client on master
|
||||
- **PR** `#23344`_: (*cachedout*) Explicitly set file_client on master
|
||||
- **PR** `#23341`_: (*cachedout*) Fix syndic pid and logfile path
|
||||
- **PR** `#23324`_: (*s0undt3ch*) [2014.7] Update to the latest stable release of the bootstrap script v2015.05.04
|
||||
- **PR** `#23318`_: (*cellscape*) Honor seed argument in LXC container initializaton
|
||||
|
@ -1557,7 +1557,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
|
|||
|
||||
* 02658b1 Merge pull request `#23344`_ from cachedout/issue_22742
|
||||
|
||||
* 5adc96c Explicitely set file_client on master
|
||||
* 5adc96c Explicitly set file_client on master
|
||||
|
||||
* ba7605d Merge pull request `#23318`_ from cellscape/honor-seed-argument
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ Changes:
|
|||
- **PR** `#24994`_: (*garethgreenaway*) Another Fix to gpg.py in 2015.5
|
||||
@ *2015-06-27T22:28:15Z*
|
||||
|
||||
- **ISSUE** `#24862`_: (*dkatsanikakis*) gpg.import_key returns error after succesfully completed
|
||||
- **ISSUE** `#24862`_: (*dkatsanikakis*) gpg.import_key returns error after successfully completed
|
||||
| refs: `#24966`_ `#24994`_
|
||||
* e9aaa11 Merge pull request `#24994`_ from garethgreenaway/2015_5_24862_gpg_import_key
|
||||
* d2f0d8f variable was referenced before assignment. Just removing the variable and checking the return from distutils.version.LooseVersion directly.
|
||||
|
@ -245,7 +245,7 @@ Changes:
|
|||
- **PR** `#24966`_: (*garethgreenaway*) Fixes to gpg.py in 2015.5
|
||||
@ *2015-06-25T19:58:49Z*
|
||||
|
||||
- **ISSUE** `#24862`_: (*dkatsanikakis*) gpg.import_key returns error after succesfully completed
|
||||
- **ISSUE** `#24862`_: (*dkatsanikakis*) gpg.import_key returns error after successfully completed
|
||||
| refs: `#24966`_ `#24994`_
|
||||
* a71c1b7 Merge pull request `#24966`_ from garethgreenaway/2015_5_24862_gpg_import_key
|
||||
* 55eb73b fixing unit tests.
|
||||
|
@ -956,7 +956,7 @@ Changes:
|
|||
* a570d7f Merge pull request `#24566`_ from jayeshka/rdp_states-unit-test
|
||||
* 273b994 adding states/rdp unit test case.
|
||||
|
||||
- **PR** `#24551`_: (*joejulian*) 2015.5 dont pollute environment
|
||||
- **PR** `#24551`_: (*joejulian*) 2015.5 don't pollute environment
|
||||
@ *2015-06-11T02:13:06Z*
|
||||
|
||||
- **ISSUE** `#24480`_: (*kiorky*) [CRITICAL] [2015.5] tls breaks tzinfo
|
||||
|
|
|
@ -51,7 +51,7 @@ Changes:
|
|||
- **ISSUE** `#25192`_: (*deuscapturus*) 2015.5.2 boto_cloudwatch_alarm.present not working.
|
||||
| refs: `#26290`_
|
||||
|
||||
- **PR** `#26288`_: (*bbinet*) allow to delete grains which value is False
|
||||
- **PR** `#26288`_: (*bbinet*) allow deleting grains which value is False
|
||||
@ *2015-08-13T18:24:36Z*
|
||||
|
||||
- **PR** `#26263`_: (*rallytime*) Don't make changes when test=True for openstack present/absent funcs
|
||||
|
@ -547,7 +547,7 @@ Changes:
|
|||
- **PR** `#25807`_: (*rallytime*) Provide helpful error when using actions with a mapfile
|
||||
@ *2015-07-29T15:30:15Z*
|
||||
|
||||
- **ISSUE** `#22699`_: (*arthurlogilab*) salt-cloud fails on KeyError when given a nonexistant action
|
||||
- **ISSUE** `#22699`_: (*arthurlogilab*) salt-cloud fails on KeyError when given a nonexistent action
|
||||
| refs: `#25807`_
|
||||
|
||||
- **PR** `#25818`_: (*jfindlay*) fix autoruns list
|
||||
|
@ -1051,7 +1051,7 @@ Changes:
|
|||
- **PR** `#25392`_: (*rallytime*) Back-port `#25256`_ to 2015.5
|
||||
@ *2015-07-14T03:25:13Z*
|
||||
|
||||
- **PR** `#25256`_: (*yanatan16*) Dont assume source_hash exists
|
||||
- **PR** `#25256`_: (*yanatan16*) Don't assume source_hash exists
|
||||
| refs: `#25392`_
|
||||
|
||||
- **PR** `#25398`_: (*twangboy*) Fix date
|
||||
|
|
|
@ -51,7 +51,7 @@ Changes:
|
|||
- **ISSUE** `#25192`_: (*deuscapturus*) 2015.5.2 boto_cloudwatch_alarm.present not working.
|
||||
| refs: `#26290`_
|
||||
|
||||
- **PR** `#26288`_: (*bbinet*) allow to delete grains which value is False
|
||||
- **PR** `#26288`_: (*bbinet*) allow deleting grains which value is False
|
||||
@ *2015-08-13T18:24:36Z*
|
||||
|
||||
- **PR** `#26263`_: (*rallytime*) Don't make changes when test=True for openstack present/absent funcs
|
||||
|
@ -547,7 +547,7 @@ Changes:
|
|||
- **PR** `#25807`_: (*rallytime*) Provide helpful error when using actions with a mapfile
|
||||
@ *2015-07-29T15:30:15Z*
|
||||
|
||||
- **ISSUE** `#22699`_: (*arthurlogilab*) salt-cloud fails on KeyError when given a nonexistant action
|
||||
- **ISSUE** `#22699`_: (*arthurlogilab*) salt-cloud fails on KeyError when given a nonexistent action
|
||||
| refs: `#25807`_
|
||||
|
||||
- **PR** `#25818`_: (*jfindlay*) fix autoruns list
|
||||
|
@ -1049,7 +1049,7 @@ Changes:
|
|||
- **PR** `#25392`_: (*rallytime*) Back-port `#25256`_ to 2015.5
|
||||
@ *2015-07-14T03:25:13Z*
|
||||
|
||||
- **PR** `#25256`_: (*yanatan16*) Dont assume source_hash exists
|
||||
- **PR** `#25256`_: (*yanatan16*) Don't assume source_hash exists
|
||||
| refs: `#25392`_
|
||||
|
||||
- **PR** `#25398`_: (*twangboy*) Fix date
|
||||
|
@ -1388,7 +1388,7 @@ Changes:
|
|||
- **PR** `#26496`_: (*jfindlay*) add dateutil dependency reporting
|
||||
@ *2015-08-19T22:46:31Z*
|
||||
|
||||
- **PR** `#26494`_: (*cachedout*) Remove unecessary debug statements
|
||||
- **PR** `#26494`_: (*cachedout*) Remove unnecessary debug statements
|
||||
@ *2015-08-19T20:46:00Z*
|
||||
|
||||
- **PR** `#26465`_: (*rallytime*) Back-port `#26457`_ to 2015.5
|
||||
|
|
|
@ -27,7 +27,7 @@ By default, the package database is stored using the ``sqlite3`` module. This
|
|||
module was chosen because support for SQLite3 is built into Python itself.
|
||||
|
||||
Modules for managing the package database are stored in the ``salt/spm/pkgdb/``
|
||||
directory. A number of functions must exist to support database managment.
|
||||
directory. A number of functions must exist to support database management.
|
||||
|
||||
|
||||
init()
|
||||
|
@ -154,7 +154,7 @@ installed on.
|
|||
|
||||
Modules for managing the package database are stored in the
|
||||
``salt/spm/pkgfiles/`` directory. A number of functions must exist to support
|
||||
file managment.
|
||||
file management.
|
||||
|
||||
init()
|
||||
``````
|
||||
|
|
|
@ -23,4 +23,4 @@ Req Channel
|
|||
The req channel is implemented using zeromq's req/rep sockets. These sockets
|
||||
enforce a send/recv pattern, which forces salt to serialize messages through these
|
||||
socket pairs. This means that although the interface is asynchronous on the minion
|
||||
we cannot send a second message until we have recieved the reply of the first message.
|
||||
we cannot send a second message until we have received the reply of the first message.
|
||||
|
|
|
@ -7,7 +7,7 @@ running salt as normal user tutorial
|
|||
Running Salt functions as non root user
|
||||
=======================================
|
||||
|
||||
If you dont want to run salt cloud as root or even install it you can
|
||||
If you don't want to run salt cloud as root or even install it you can
|
||||
configure it to have a virtual root in your working directory.
|
||||
|
||||
The salt system uses the ``salt.syspath`` module to find the variables
|
||||
|
|
|
@ -127,7 +127,7 @@ The following configuration is an example, how a complete syslog-ng configuratio
|
|||
# Multi line
|
||||
# comment
|
||||
|
||||
# An other mode to use comments or existing configuration snippets
|
||||
# Another mode to use comments or existing configuration snippets
|
||||
config.other_comment_form:
|
||||
syslog_ng.config:
|
||||
- config: |
|
||||
|
@ -451,4 +451,4 @@ Log
|
|||
- destination:
|
||||
- file:
|
||||
- "/tmp/all.log"
|
||||
- template: t_gsoc2014
|
||||
- template: t_gsoc2014
|
||||
|
|
|
@ -3,7 +3,7 @@ From: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
|
|||
Date: Fri, 11 Apr 2014 14:43:02 +0200
|
||||
Subject: [PATCH] Allow systemd units no provided by unit files to be handled.
|
||||
|
||||
This allows to query status, start, stop, restart and list units that
|
||||
This allows querying status, start, stop, restart and list units that
|
||||
are not actually provided by unit files. Such units cannot be
|
||||
enabled/disabled and that's why those actions still prefer the
|
||||
"list-unit-files" output over "list-units".
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
The acl module handles client_acl operations
|
||||
|
||||
Additional information on client_acl can be
|
||||
found by reading the salt documention:
|
||||
found by reading the salt documentation:
|
||||
|
||||
http://docs.saltstack.com/en/latest/ref/clientacl.html
|
||||
'''
|
||||
|
|
|
@ -3332,7 +3332,7 @@ def get_blob(kwargs=None, storage_conn=None, call=None):
|
|||
Required if the blob has an active lease.
|
||||
progress_callback:
|
||||
callback for progress with signature function(current, total) where
|
||||
current is the number of bytes transfered so far, and total is the
|
||||
current is the number of bytes transferred so far, and total is the
|
||||
size of the blob.
|
||||
max_connections:
|
||||
Maximum number of parallel connections to use when the blob size
|
||||
|
|
|
@ -151,7 +151,7 @@ def list_nodes_full(call=None):
|
|||
|
||||
items = query(method='servers')
|
||||
|
||||
# For each server, iterate on its paramters.
|
||||
# For each server, iterate on its parameters.
|
||||
ret = {}
|
||||
for node in items['servers']:
|
||||
ret[node['name']] = {}
|
||||
|
|
|
@ -248,7 +248,7 @@ def _edit_existing_network_adapter(network_adapter, new_network_name, adapter_ty
|
|||
else:
|
||||
log.debug("Changing type of '{0}' from '{1}' to '{2}'".format(network_adapter.deviceInfo.label, type(network_adapter).__name__.rsplit(".", 1)[1][7:].lower(), adapter_type))
|
||||
else:
|
||||
# If type not specified or does not match, dont change adapter type
|
||||
# If type not specified or does not match, don't change adapter type
|
||||
if adapter_type:
|
||||
log.error("Cannot change type of '{0}' to '{1}'. Not changing type".format(network_adapter.deviceInfo.label, adapter_type))
|
||||
edited_network_adapter = network_adapter
|
||||
|
@ -633,7 +633,7 @@ def _wait_for_vmware_tools(vm_ref, max_wait):
|
|||
if time_counter % 5 == 0:
|
||||
log.info("[ {0} ] Waiting for VMware tools to be running [{1} s]".format(vm_ref.name, time_counter))
|
||||
if str(vm_ref.summary.guest.toolsRunningStatus) == "guestToolsRunning":
|
||||
log.info("[ {0} ] Succesfully got VMware tools running on the guest in {1} seconds".format(vm_ref.name, time_counter))
|
||||
log.info("[ {0} ] Successfully got VMware tools running on the guest in {1} seconds".format(vm_ref.name, time_counter))
|
||||
return True
|
||||
|
||||
time.sleep(1.0 - ((time.time() - starttime) % 1.0))
|
||||
|
|
|
@ -341,7 +341,7 @@ VALID_OPTS = {
|
|||
# The grains dictionary for a minion, containing specific "facts" about the minion
|
||||
'grains': dict,
|
||||
|
||||
# Allow a deamon to function even if the key directories are not secured
|
||||
# Allow a daemon to function even if the key directories are not secured
|
||||
'permissive_pki_access': bool,
|
||||
|
||||
# The path to a directory to pull in configuration file includes
|
||||
|
@ -387,7 +387,7 @@ VALID_OPTS = {
|
|||
# Events matching a tag in this list should never be sent to an event returner.
|
||||
'event_return_blacklist': list,
|
||||
|
||||
# This pidfile to write out to when a deamon starts
|
||||
# This pidfile to write out to when a daemon starts
|
||||
'pidfile': str,
|
||||
|
||||
# Used with the SECO range master tops system
|
||||
|
@ -639,7 +639,7 @@ VALID_OPTS = {
|
|||
# The size of key that should be generated when creating new keys
|
||||
'keysize': int,
|
||||
|
||||
# The transport system for this deamon. (i.e. zeromq, raet, etc)
|
||||
# The transport system for this daemon. (i.e. zeromq, raet, etc)
|
||||
'transport': str,
|
||||
|
||||
# FIXME Appears to be unused
|
||||
|
@ -714,8 +714,8 @@ VALID_OPTS = {
|
|||
# Instructs the salt CLI to print a summary of a minion reponses before returning
|
||||
'cli_summary': bool,
|
||||
|
||||
# The number of minions the master should allow to connect. Can have performance implications
|
||||
# in large setups.
|
||||
# The maximum number of minion connections allowed by the master. Can have performance
|
||||
# implications in large setups.
|
||||
'max_minions': int,
|
||||
|
||||
|
||||
|
|
|
@ -1112,7 +1112,7 @@ class LazyLoader(salt.utils.lazy.LazyDict):
|
|||
mod = zipimporter(fpath).load_module(name)
|
||||
else:
|
||||
desc = self.suffix_map[suffix]
|
||||
# if it is a directory, we dont open a file
|
||||
# if it is a directory, we don't open a file
|
||||
if suffix == '':
|
||||
mod = imp.load_module(
|
||||
'{0}.{1}.{2}.{3}'.format(
|
||||
|
|
|
@ -243,7 +243,7 @@ class Maintenance(multiprocessing.Process):
|
|||
if to_rotate:
|
||||
log.info('Rotating master AES key')
|
||||
for secret_key, secret_map in six.iteritems(SMaster.secrets):
|
||||
# should be unecessary-- since no one else should be modifying
|
||||
# should be unnecessary-- since no one else should be modifying
|
||||
with secret_map['secret'].get_lock():
|
||||
secret_map['secret'].value = secret_map['reload']()
|
||||
self.event.fire_event({'rotate_{0}_key'.format(secret_key): True}, tag='key')
|
||||
|
|
|
@ -2148,7 +2148,7 @@ class MultiSyndic(MinionBase):
|
|||
# Not a job return
|
||||
return
|
||||
if self.syndic_mode == 'cluster' and event['data'].get('master_id', 0) == self.opts.get('master_id', 1):
|
||||
log.debug('Return recieved with matching master_id, not forwarding')
|
||||
log.debug('Return received with matching master_id, not forwarding')
|
||||
return
|
||||
|
||||
jdict = self.jids.setdefault(event['tag'], {})
|
||||
|
|
|
@ -166,7 +166,7 @@ def _set_value(value):
|
|||
'''
|
||||
|
||||
logger.error(value)
|
||||
#dont continue if already an acceptable data-type
|
||||
#don't continue if already an acceptable data-type
|
||||
if isinstance(value, bool) or isinstance(value, dict) or isinstance(value, list):
|
||||
return value
|
||||
|
||||
|
|
|
@ -2032,7 +2032,7 @@ def acl_update(consul_url=None, **kwargs):
|
|||
if 'id' in kwargs:
|
||||
data['ID'] = kwargs['id']
|
||||
else:
|
||||
ret['message'] = 'Required paramter "id" is missing.'
|
||||
ret['message'] = 'Required parameter "id" is missing.'
|
||||
ret['res'] = False
|
||||
return ret
|
||||
|
||||
|
@ -2088,7 +2088,7 @@ def acl_delete(consul_url=None, **kwargs):
|
|||
return ret
|
||||
|
||||
if 'id' not in kwargs:
|
||||
ret['message'] = 'Required paramter "id" is missing.'
|
||||
ret['message'] = 'Required parameter "id" is missing.'
|
||||
ret['res'] = False
|
||||
return ret
|
||||
|
||||
|
@ -2135,7 +2135,7 @@ def acl_info(consul_url=None, **kwargs):
|
|||
return ret
|
||||
|
||||
if 'id' not in kwargs:
|
||||
ret['message'] = 'Required paramter "id" is missing.'
|
||||
ret['message'] = 'Required parameter "id" is missing.'
|
||||
ret['res'] = False
|
||||
return ret
|
||||
|
||||
|
@ -2174,7 +2174,7 @@ def acl_clone(consul_url=None, **kwargs):
|
|||
return ret
|
||||
|
||||
if 'id' not in kwargs:
|
||||
ret['message'] = 'Required paramter "id" is missing.'
|
||||
ret['message'] = 'Required parameter "id" is missing.'
|
||||
ret['res'] = False
|
||||
return ret
|
||||
|
||||
|
@ -2219,7 +2219,7 @@ def acl_list(consul_url=None, **kwargs):
|
|||
return ret
|
||||
|
||||
if 'id' not in kwargs:
|
||||
ret['message'] = 'Required paramter "id" is missing.'
|
||||
ret['message'] = 'Required parameter "id" is missing.'
|
||||
ret['res'] = False
|
||||
return ret
|
||||
|
||||
|
|
|
@ -1064,13 +1064,13 @@ def encrypt(user=None,
|
|||
result = gpg.encrypt(text, recipients, passphrase=gpg_passphrase)
|
||||
elif filename:
|
||||
if GPG_1_3_1:
|
||||
# This version does not allows us to encrypt using the
|
||||
# This version does not allow us to encrypt using the
|
||||
# file stream # have to read in the contents and encrypt.
|
||||
with salt.utils.flopen(filename, 'rb') as _fp:
|
||||
_contents = _fp.read()
|
||||
result = gpg.encrypt(_contents, recipients, passphrase=gpg_passphrase, output=output)
|
||||
else:
|
||||
# This version allows to encrypt using the stream
|
||||
# This version allows encrypting the file stream
|
||||
with salt.utils.flopen(filename, 'rb') as _fp:
|
||||
if output:
|
||||
result = gpg.encrypt_file(_fp, recipients, passphrase=gpg_passphrase, output=output, sign=sign)
|
||||
|
|
|
@ -299,7 +299,7 @@ def append(key, val, convert=False, delimiter=DEFAULT_TARGET_DELIM):
|
|||
|
||||
:param delimiter: The key can be a nested dict key. Use this parameter to
|
||||
specify the delimiter you use, instead of the default ``:``.
|
||||
You can now append values to a list in nested dictionnary grains. If the
|
||||
You can now append values to a list in nested dictionary grains. If the
|
||||
list doesn't exist at this level, it will be created.
|
||||
|
||||
.. versionadded:: 2014.7.6
|
||||
|
@ -341,7 +341,7 @@ def remove(key, val, delimiter=DEFAULT_TARGET_DELIM):
|
|||
|
||||
:param delimiter: The key can be a nested dict key. Use this parameter to
|
||||
specify the delimiter you use, instead of the default ``:``.
|
||||
You can now append values to a list in nested dictionnary grains. If the
|
||||
You can now append values to a list in nested dictionary grains. If the
|
||||
list doesn't exist at this level, it will be created.
|
||||
|
||||
.. versionadded:: Boron
|
||||
|
|
|
@ -56,7 +56,7 @@ def __execute_cmd(name, xml):
|
|||
|
||||
try:
|
||||
for i in ET.fromstring(''.join(cmd['stdout'].splitlines()[3:-1])):
|
||||
# Make sure dict keys dont collide
|
||||
# Make sure dict keys don't collide
|
||||
if ret[name.replace('_', ' ')].get(i.tag, False):
|
||||
ret[name.replace('_', ' ')].update(
|
||||
{i.tag + '_' + str(id_num): i.attrib}
|
||||
|
|
|
@ -4395,7 +4395,7 @@ def edit_conf(conf_file,
|
|||
they already exist in the file.
|
||||
|
||||
out_format:
|
||||
Set to simple if you need backward compatbility (multiple items for a
|
||||
Set to simple if you need backward compatibility (multiple items for a
|
||||
simple key is not supported)
|
||||
read_only:
|
||||
return only the edited configuration without applying it
|
||||
|
|
|
@ -965,7 +965,7 @@ purge = salt.utils.alias_function(remove, 'purge')
|
|||
def upgrade(*names, **kwargs):
|
||||
'''
|
||||
Upgrade named or all packages (run a ``pkg upgrade``). If <package name> is
|
||||
ommitted, the operation is executed on all packages.
|
||||
omitted, the operation is executed on all packages.
|
||||
|
||||
CLI Example:
|
||||
|
||||
|
|
|
@ -244,7 +244,7 @@ def post_message(user=None,
|
|||
raise SaltInvocationError('Pushover user key is unavailable.')
|
||||
|
||||
if not message:
|
||||
raise SaltInvocationError('Required paramter "message" is missing.')
|
||||
raise SaltInvocationError('Required parameter "message" is missing.')
|
||||
|
||||
user_validate = _validate_user(user, device, token)
|
||||
if not user_validate['result']:
|
||||
|
|
|
@ -297,7 +297,7 @@ def get_enabled():
|
|||
if name in units:
|
||||
continue
|
||||
# performance; if the legacy initscript doesnt exists,
|
||||
# dont contiue up with systemd query
|
||||
# don't contiue up with systemd query
|
||||
if not _service_is_sysv(name):
|
||||
continue
|
||||
if _sysv_is_enabled(name):
|
||||
|
|
|
@ -541,7 +541,7 @@ def try_(module, return_try_exception=False, **kwargs):
|
|||
'''
|
||||
Try to run a module command. On an exception return None.
|
||||
If `return_try_exception` is set True return the exception.
|
||||
This can be helpfull in templates where running a module might fail as expected.
|
||||
This can be helpful in templates where running a module might fail as expected.
|
||||
|
||||
CLI Example:
|
||||
|
||||
|
|
|
@ -409,7 +409,7 @@ def create(name,
|
|||
group: Specifies the name of the group of which this service is a member
|
||||
tag: Specifies whether or not to obtain a TagID from the CreateService call. For boot-start and system-start drivers
|
||||
- yes/no
|
||||
depend: Specifies the names of services or groups that myust start before this service. The names are seperated by forward slashes.
|
||||
depend: Specifies the names of services or groups that myust start before this service. The names are separated by forward slashes.
|
||||
obj: Specifies th ename of an account in which a service will run. Default is LocalSystem
|
||||
password: Specifies a password. Required if other than LocalSystem account is used.
|
||||
|
||||
|
|
|
@ -421,7 +421,7 @@ def read_certificate(certificate):
|
|||
cert = _get_certificate_obj(certificate)
|
||||
|
||||
ret = {
|
||||
# X509 Verison 3 has a value of 2 in the field.
|
||||
# X509 Version 3 has a value of 2 in the field.
|
||||
# Version 2 has a value of 1.
|
||||
# https://tools.ietf.org/html/rfc5280#section-4.1.2.1
|
||||
'Version': cert.get_version()+1,
|
||||
|
@ -497,7 +497,7 @@ def read_csr(csr):
|
|||
'''
|
||||
csr = _get_request_obj(csr)
|
||||
ret = {
|
||||
# X509 Verison 3 has a value of 2 in the field.
|
||||
# X509 Version 3 has a value of 2 in the field.
|
||||
# Version 2 has a value of 1.
|
||||
# https://tools.ietf.org/html/rfc5280#section-4.1.2.1
|
||||
'Version': csr.get_version()+1,
|
||||
|
@ -691,7 +691,7 @@ def create_crl(path=None, text=False, signing_private_key=None,
|
|||
the serial number to revoke, or ``certificate`` with either the PEM encoded text of
|
||||
the certificate, or a path ot the certificate to revoke.
|
||||
|
||||
The dict can optionally contain the ``revocation_date`` key. If this key is ommitted
|
||||
The dict can optionally contain the ``revocation_date`` key. If this key is omitted
|
||||
the revocation date will be set to now. If should be a string in the format "%Y-%m-%d %H:%M:%S".
|
||||
|
||||
The dict can also optionally contain the ``not_after`` key. This is redundant if the
|
||||
|
@ -1018,7 +1018,7 @@ def create_certificate(path=None, text=False, ca_server=None, **kwargs):
|
|||
version value, so ``version=3`` sets the certificate version field to 0x2.
|
||||
|
||||
serial_number:
|
||||
The serial number to assign to this certificate. If ommited a random serial number of size
|
||||
The serial number to assign to this certificate. If omitted a random serial number of size
|
||||
``serial_bits`` is generated.
|
||||
|
||||
serial_bits:
|
||||
|
@ -1116,7 +1116,7 @@ def create_certificate(path=None, text=False, ca_server=None, **kwargs):
|
|||
cert = M2Crypto.X509.X509()
|
||||
subject = cert.get_subject()
|
||||
|
||||
# X509 Verison 3 has a value of 2 in the field.
|
||||
# X509 Version 3 has a value of 2 in the field.
|
||||
# Version 2 has a value of 1.
|
||||
# https://tools.ietf.org/html/rfc5280#section-4.1.2.1
|
||||
cert.set_version(kwargs['version'] - 1)
|
||||
|
@ -1220,7 +1220,7 @@ def create_csr(path=None, text=False, **kwargs):
|
|||
If ``True``, return the PEM text without writing to a file. Default ``False``.
|
||||
|
||||
kwargs:
|
||||
The subject, extension and verison arguments from
|
||||
The subject, extension and version arguments from
|
||||
:mod:`x509.create_certificate <salt.modules.x509.create_certificate>` can be used.
|
||||
|
||||
CLI Example:
|
||||
|
|
|
@ -498,7 +498,7 @@ class BaseSaltAPIHandler(tornado.web.RequestHandler, SaltClientsMixIn): # pylin
|
|||
'application/json': json.loads,
|
||||
'application/x-yaml': yaml.safe_load,
|
||||
'text/yaml': yaml.safe_load,
|
||||
# because people are terrible and dont mean what they say
|
||||
# because people are terrible and don't mean what they say
|
||||
'text/plain': json.loads
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ base url to use for accessing S3.
|
|||
The ``s3_cache_expire`` parameter defaults to 30s. It specifies expiration
|
||||
time of S3 metadata cache file.
|
||||
|
||||
The ``s3_sync_on_update`` paramater defaults to True. It specifies if cache
|
||||
The ``s3_sync_on_update`` parameter defaults to True. It specifies if cache
|
||||
is synced on update rather than jit.
|
||||
|
||||
This pillar can operate in two modes, single environment per bucket or multiple
|
||||
|
|
|
@ -38,7 +38,7 @@ As this returner creates a couchdb document whith the salt job id as document id
|
|||
and as only one document with a given id can exist in a given couchdb database,
|
||||
it is advised for most setups that every minion be configured to write to it own
|
||||
database (the value of ``couchdb.db`` may be suffixed with the minion id),
|
||||
otherwise multi-minion targetting can lead to losing output:
|
||||
otherwise multi-minion targeting can lead to losing output:
|
||||
|
||||
* the first returning minion is able to create a document in the database
|
||||
* other minions fail with ``{'error': 'HTTP Error 409: Conflict'}``
|
||||
|
|
|
@ -5,7 +5,7 @@ This runner helps create encrypted passwords that can be included in pillars.
|
|||
:depends: libnacl, https://github.com/saltstack/libnacl
|
||||
|
||||
This is often useful if you wish to store your pillars in source control or
|
||||
share your pillar data with others that you trust. I dont advise making your pillars public
|
||||
share your pillar data with others that you trust. I don't advise making your pillars public
|
||||
regardless if they are encrypted or not.
|
||||
|
||||
The following configurations can be defined in the master config
|
||||
|
|
|
@ -289,7 +289,7 @@ def latest(name,
|
|||
|
||||
depth
|
||||
Defines depth in history when git a clone is needed in order to ensure
|
||||
latest. E.g. ``depth: 1`` is usefull when deploying from a repository
|
||||
latest. E.g. ``depth: 1`` is useful when deploying from a repository
|
||||
with a long history. Use rev to specify branch. This is not compatible
|
||||
with tags or revision IDs.
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ def __virtual__():
|
|||
def present(profile='pagerduty', subdomain=None, api_key=None, **kwargs):
|
||||
'''
|
||||
Ensure pagerduty user exists.
|
||||
Arguments match those suppored by
|
||||
Arguments match those supported by
|
||||
https://developer.pagerduty.com/documentation/rest/users/create.
|
||||
'''
|
||||
return __salt__['pagerduty_util.resource_present']('users',
|
||||
|
|
|
@ -115,7 +115,7 @@ def present(name,
|
|||
- HKEY_USERS or HKU
|
||||
|
||||
:param str value: Deprecated. Use vname and vdata instead. Included here for
|
||||
backwards compatability.
|
||||
backwards compatibility.
|
||||
|
||||
:param str vname: The name of the value you'd like to create beneath the
|
||||
Key. If this parameter is not passed it will assume you want to set the
|
||||
|
|
|
@ -87,7 +87,7 @@ def removed(name):
|
|||
|
||||
.. note::
|
||||
|
||||
Some features require a reboot after uninstallation. If so the feature will not be completly uninstalled until
|
||||
Some features require a reboot after uninstallation. If so the feature will not be completely uninstalled until
|
||||
the server is restarted.
|
||||
|
||||
Example:
|
||||
|
|
|
@ -172,7 +172,7 @@ class AsyncPubChannel(AsyncChannel):
|
|||
|
||||
def on_recv(self, callback):
|
||||
'''
|
||||
When jobs are recieved pass them (decoded) to callback
|
||||
When jobs are received pass them (decoded) to callback
|
||||
'''
|
||||
raise NotImplementedError()
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ class IPCServer(object):
|
|||
def close(self):
|
||||
'''
|
||||
Routines to handle any cleanup before the instance shuts down.
|
||||
Sockets and filehandles should be closed explicitely, to prevent
|
||||
Sockets and filehandles should be closed explicitly, to prevent
|
||||
leaks.
|
||||
'''
|
||||
if hasattr(self.stream, 'close'):
|
||||
|
@ -235,7 +235,7 @@ class IPCClient(object):
|
|||
def close(self):
|
||||
'''
|
||||
Routines to handle any cleanup before the instance shuts down.
|
||||
Sockets and filehandles should be closed explicitely, to prevent
|
||||
Sockets and filehandles should be closed explicitly, to prevent
|
||||
leaks.
|
||||
'''
|
||||
self._closing = True
|
||||
|
|
|
@ -325,7 +325,7 @@ class TCPReqServerChannel(salt.transport.mixins.auth.AESReqServerMixin, salt.tra
|
|||
|
||||
class SaltMessageServer(tornado.tcpserver.TCPServer, object):
|
||||
'''
|
||||
Raw TCP server which will recieve all of the TCP streams and re-assemble
|
||||
Raw TCP server which will receive all of the TCP streams and re-assemble
|
||||
messages that are sent through to us
|
||||
'''
|
||||
def __init__(self, message_handler, *args, **kwargs):
|
||||
|
@ -515,7 +515,7 @@ class SaltMessageClient(object):
|
|||
# TODO: return a message object which takes care of multiplexing?
|
||||
def on_recv(self, callback):
|
||||
'''
|
||||
Register a callback for recieved messages (that we didn't initiate)
|
||||
Register a callback for received messages (that we didn't initiate)
|
||||
'''
|
||||
if callback is None:
|
||||
self._on_recv = callback
|
||||
|
|
|
@ -361,7 +361,7 @@ class AsyncZeroMQPubChannel(salt.transport.mixins.auth.AESPubClientMixin, salt.t
|
|||
# 2 includes a header which says who should do it
|
||||
elif messages_len == 2:
|
||||
if messages[0] not in ('broadcast', self.hexid):
|
||||
log.debug('Publish recieved for not this minion: {0}'.format(messages[0]))
|
||||
log.debug('Publish received for not this minion: {0}'.format(messages[0]))
|
||||
raise tornado.gen.Return(None)
|
||||
payload = self.serial.loads(messages[1])
|
||||
else:
|
||||
|
@ -383,7 +383,7 @@ class AsyncZeroMQPubChannel(salt.transport.mixins.auth.AESPubClientMixin, salt.t
|
|||
|
||||
def on_recv(self, callback):
|
||||
'''
|
||||
Register a callback for recieved messages (that we didn't initiate)
|
||||
Register a callback for received messages (that we didn't initiate)
|
||||
|
||||
:param func callback: A function which should be called when data is received
|
||||
'''
|
||||
|
|
|
@ -579,7 +579,7 @@ def get_ca_bundle(opts=None):
|
|||
# RedHat is also very common
|
||||
'/etc/pki/tls/certs/ca-bundle.crt',
|
||||
'/etc/pki/tls/certs/ca-bundle.trust.crt',
|
||||
# RedHat's link for Debian compatability
|
||||
# RedHat's link for Debian compatibility
|
||||
'/etc/ssl/certs/ca-bundle.crt',
|
||||
# Suse has an unusual path
|
||||
'/var/lib/ca-certificates/ca-bundle.pem',
|
||||
|
|
|
@ -219,7 +219,7 @@ class SerializerExtension(Extension, object):
|
|||
|
||||
**Format filters**
|
||||
|
||||
Allows to jsonify or yamlify any data structure. For example, this dataset:
|
||||
Allows jsonifying or yamlifying any data structure. For example, this dataset:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
|
|
@ -341,7 +341,7 @@ class GrainsModuleTestCase(TestCase):
|
|||
'c': 8})
|
||||
|
||||
def test_set_nested_fails_replace_simple_value(self):
|
||||
# Fails to replace a simple value with a new dictionnary consisting
|
||||
# Fails to replace a simple value with a new dictionary consisting
|
||||
# of the specified key and value
|
||||
grainsmod.__grains__ = {'a': 'aval', 'b': 'l1', 'c': 8}
|
||||
res = grainsmod.set('b,l3', 'val3', delimiter=',')
|
||||
|
|
Loading…
Add table
Reference in a new issue