
- Add all PRs/issues to CHANGELOG.md - Add gitattributes merge=union for CHANGELOG.md This should avoid most merge conflicts - Try merge=union for release notes - Remove dupes from changelog - Update credits and add chroot to releasenotes - Remove bad releasenotes info As a result of porting to master there were extra bits of information that got in before the actual changes. These have been removed.
31 KiB
- orphan
Salt 3000 Release Notes - Codename Neon
New Versioning
The neon release has removed the date versioning. Going forward we will use a non-date based version schema beginning at 3000. The version will be MAJOR.PATCH. For a planned release containing features and/or bug fixes the MAJOR version will be incremented. Please review the approved SEP for further details.
The new versioning scheme is PEP 440 compliant, but
distutils.StrictVersion will result in an error
invalid version number
. If using StrictVersion to compare
Salt's versions, please use LooseVersion. There is also the packaging
library you can use to compare versions. Another alternative is using
the salt version module<salt.modules.salt_version>
Saltcheck Updates
Available since 2018.3, the saltcheck module <salt.modules.saltcheck>
has been enhanced to:
- Support saltenv environments
- Associate tests with states by naming convention
- Adds report_highstate_tests function
- Adds empty and notempty assertions
- Adds skip keyword
- Adds print_result keyword
- Adds assertion_section keyword
- Use saltcheck.state_apply to run state.apply for test setup or teardown
- Changes output to display test time
- Works with salt-ssh
Saltcheck provides unittest like functionality requiring only the knowledge of salt module execution and yaml. Saltcheck uses salt modules to return data, then runs an assertion against that return. This allows for testing with all the features included in salt modules.
In order to run state and highstate saltcheck tests, a sub-folder in
the state directory must be created and named
saltcheck-tests
. Tests for a state should be created in
files ending in *.tst
and placed in the
saltcheck-tests
folder. tst
files are run
through the salt rendering system, enabling tests to be written in yaml
(or renderer of choice), and include jinja, as well as the usual grain
and pillar information. Like states, multiple tests can be specified in
a tst
file. Multiple tst
files can be created
in the saltcheck-tests
folder, and should be named the same
as the associated state. The id
of a test works in the same
manner as in salt state files and should be unique and descriptive.
Usage
Example file system layout:
/srv/salt/apache/
init.sls
config.sls
saltcheck-tests/
init.tst
config.tst
deployment_validation.tst
Tests can be run for each state by name, for all
apache/saltcheck/*.tst
files, or for all states assigned to
the minion in top.sls. Tests may also be created with no associated
state. These tests will be run through the use of
saltcheck.run_state_tests
, but will not be automatically
run by saltcheck.run_highstate_tests
.
salt '*' saltcheck.run_state_tests apache,apache.config
salt '*' saltcheck.run_state_tests apache check_all=True
salt '*' saltcheck.run_highstate_tests
salt '*' saltcheck.run_state_tests apache.deployment_validation
Example Tests
{# will run the common salt state before further testing #}
setup_test_environment:
module_and_function: saltcheck.state_apply
args:
- common
pillar-data:
data: value
{% for package in ["apache2", "openssh"] %}
{# or another example #}
{# for package in salt['pillar.get']("packages") #}
jinja_test_{{ package }}_latest:
module_and_function: pkg.upgrade_available
args:
- {{ package }}
assertion: assertFalse
{% endfor %}
validate_user_present_and_shell:
module_and_function: user.info
args:
- root
assertion: assertEqual
expected-return: /bin/bash
assertion_section: shell
print_result: False
skip_test:
module_and_function: pkg.upgrade_available
args:
- apache2
assertion: assertFalse
skip: True
Output Format Changes
Saltcheck output has been enhanced to display the time taken per test. This results in a change to the output format.
Previous Output:
local:
|_
----------
ntp:
----------
ntp-client-installed:
Pass
ntp-service-status:
Pass
|_
----------
TEST RESULTS:
----------
Failed:
0
Missing Tests:
0
Passed:
2
New output:
local:
|_
----------
ntp:
----------
ntp-client-installed:
----------
duration:
1.0408
status:
Pass
ntp-service-status:
----------
duration:
1.464
status:
Pass
|_
----------
TEST RESULTS:
----------
Execution Time:
2.5048
Failed:
0
Missing Tests:
0
Passed:
2
Skipped:
0
Unless and onlyif Enhancements
The unless
and onlyif
requisites can now be
operated with salt modules. The dictionary must contain an argument
fun
which is the module that is being run, and everything
else must be passed in under the args key or will be passed as
individual kwargs to the module function.
Note
Certain states have an unless
/onlyif
implementation that predates this feature, and may not work as
expected:
- states.git
- states.cmd
- states.macpackage
- states.file
- states.docker_container
Examples:
check external ip address:
http.query:
- name: https://icanhazip.com
- status: 200
- onlyif:
- fun: file.file_exists
path: /usr/local/bin/whatever
is equivalent to
check another ip address:
http.query:
- name: https://icanhazip.com
- status: 200
- onlyif:
- test -f /tmp/fnord.txt
Another example:
set mysql root password:
debconf.set:
- name: mysql-server-5.7
- data:
'mysql-server/root_password': {'type': 'password', 'value': {{pillar['mysql.pass']}} }
- unless:
- fun: pkg.version
args:
- mysql-server-5.7
Keystore State and Module
A new state <salt.states.keystore>
and execution module <salt.modules.keystore>
for
manaing Java Keystore files is now included. It allows for
adding/removing/listing as well as managing keystore files.
# salt-call keystore.list /path/to/keystore.jks changeit
local:
|_
----------
alias:
hostname1
expired:
True
sha1:
CB:5E:DE:50:57:99:51:87:8E:2E:67:13:C5:3B:E9:38:EB:23:7E:40
type:
TrustedCertEntry
valid_start:
August 22 2012
valid_until:
August 21 2017
define_keystore:
keystore.managed:
- name: /tmp/statestore.jks
- passphrase: changeit
- force_remove: True
- entries:
- alias: hostname1
certificate: /tmp/testcert.crt
- alias: remotehost
certificate: /tmp/512.cert
private_key: /tmp/512.key
- alias: stringhost
certificate: |
-----BEGIN CERTIFICATE-----
MIICEjCCAX
Hn+GmxZA -----END CERTIFICATE-----
XML Module
A new state and execution module for editing XML files is now included. Currently it allows for editing values from an xpath query, or editing XML IDs.
# salt-call xml.set_attribute /tmp/test.xml ".//actor[@id='3']" editedby "Jane Doe"
local:
True
# salt-call xml.get_attribute /tmp/test.xml ".//actor[@id='3']"
local:
----------
editedby:
Jane Doe
id:
3
# salt-call xml.get_value /tmp/test.xml ".//actor[@id='2']"
local:
Liam Neeson
# salt-call xml.set_value /tmp/test.xml ".//actor[@id='2']" "Patrick Stewart"
local:
True
# salt-call xml.get_value /tmp/test.xml ".//actor[@id='2']"
local:
Patrick Stewart
ensure_value_true:
xml.value_present:
- name: /tmp/test.xml
- xpath: .//actor[@id='1']
- value: William Shatner
Jinja enhancements
Troubleshooting Jinja map files
A new execution module <salt.modules.jinja>
for
map.jinja
troubleshooting has been added.
Assuming the map is loaded in your formula SLS as follows:
{% from "myformula/map.jinja" import myformula with context %}
The following command can be used to load the map and check the results:
salt myminion jinja.load_map myformula/map.jinja myformula
The module can be also used to test json
and
yaml
maps:
salt myminion jinja.import_yaml myformula/defaults.yaml
salt myminion jinja.import_json myformula/defaults.json
json_query filter
A port of Ansible json_query
Jinja filter has been added. It
allows making queries against JSON data using JMESPath language. Could be used to
filter pillar
data, yaml
maps, and also useful
with http_query
.
Depends on the jmespath Python module.
Slot Syntax Updates
The slot syntax has been updated to support parsing dictionary responses and to append text.
demo dict parsing and append:
test.configurable_test_state:
- name: slot example
- changes: False
- comment: __slot__:salt:test.arg(shell="/bin/bash").kwargs.shell ~ /appended
local:
----------
ID: demo dict parsing and append
Function: test.configurable_test_state
Name: slot example
Result: True
Comment: /bin/bash/appended
Started: 09:59:58.623575
Duration: 1.229 ms
Changes:
Also, slot parsing is now supported inside of nested state data structures (dicts, lists, unless/onlyif args):
demo slot parsing for nested elements:
file.managed:
- name: /tmp/slot.txt
- source: salt://slot.j2
- template: jinja
- context:
# Slot inside of the nested context dictionary
variable: __slot__:salt:test.echo(a_value)
- unless:
- fun: file.search
args:
# Slot as unless argument
- __slot__:salt:test.echo(/tmp/slot.txt)
- "DO NOT OVERRIDE"
ignore_if_missing: True
State Changes
- The
file.symlink <salt.states.file.symlink>
state was fixed to remove existing file system entries other than files, directories and symbolic links properly. - The
onchanges
andprereq
requisites <requisites>
now behave properly in test mode, due to removingpchanges
. - Added new
ssh_auth.manage <salt.states.ssh_auth.manage>
state to ensure only the specified ssh keys are present for the specified user. - Added new
saltutil <salt.states.saltutil>
state to use instead ofmodule.run
to more easily handle change.
Module Changes
- Added new
boto_ssm <salt.modules.boto_ssm>
module to set and query secrets in AWS SSM parameters. - The
file.remove <salt.modules.file.remove>
module was fixed to remove file system entries other than files, directories and symbolic links properly.
Enhancements to Engines
Multiple copies of a particular Salt engine can be configured by
including the engine_module
parameter in the engine
configuration.
engines:
- production_logstash:
host: production_log.my_network.com
port: 5959
proto: tcp
engine_module: logstash
- develop_logstash:
host: develop_log.my_network.com
port: 5959
proto: tcp
engine_module: logstash
A new
fluent engine <salt.engines.salt.engines.fluent>
has been added to export Salt events to fluentd.engines: - fluent host: localhost port: 24224
<source> @type forward port 24224 </source> <match saltstack.**> @type file path /var/log/td-agent/saltstack </match>
Enhancements to Beacons
Multiple copies of a particular Salt beacon can be configured by
including the beacon_module
parameter in the beacon
configuration.
beacons: watch_importand_file: - files: /etc/important_file: {} - beacon_module: inotify watch_another_file: - files: /etc/another_file: {} - beacon_module: inotify
Enhancements to chroot
- New functions added to chroot
apply<salt.modules.chroot.apply_>
,sls<salt.modules.chroot.sls>
, andhighstate<salt.modules.chroot.highstate>
that allow executing states in sls files or running apply/highstate inside of a chroot.
Deprecations
Raet Deprecated
- The Raet transport has been deprecated. Please use the supported transport protocols tcp or zeromq.
Module Deprecations
The hipchat module has been removed due to the service being retired.
Google Chat <salt.modules.google_chat>
,MS Teams <salt.modules.msteams>
, orSlack <salt.modules.slack_notify>
may be suitable replacements.The
dockermod <salt.modules.dockermod>
module has been changed as follows:Support for the
tags
kwarg has been removed from thedockermod.resolve_tag <salt.modules.dockermod.resolve_tag>
function.Support for the
network_id
kwarg has been removed from thedockermod.connect_container_to_network <salt.modules.dockermod.connect_container_to_network>
function. Please usenet_id
instead.Support for the
name
kwarg has been removed from thedockermod.sls_build <salt.modules.dockermod.sls_build>
function. Please userepository
andtag
instead.Support for the
image
kwarg has been removed from the following functions. In all cases, please use both therepository
andtag
options instead:dockermod.build <salt.modules.dockermod.build>
dockermod.commit <salt.modules.dockermod.commit>
dockermod.import <salt.modules.dockermod.import_>
dockermod.load <salt.modules.dockermod.load>
dockermod.tag <salt.modules.dockermod.tag_>
The heat module has removed the
enviroment
kwarg from theheat.create_stack <salt.modules.heat.create_stack>
andheat.update_stack <salt.modules.heat.update_stack>
functions due to a spelling error. Please useenvironment
instead.The
ssh <salt.modules.ssh>
execution module has been changed as follows:- Support for the
ssh.get_known_host
function has been removed. Please use thessh.get_known_host_entries <salt.modules.ssh.get_known_host_entries>
function instead. - Support for the
ssh.recv_known_host
function has been removed. Please use thessh.recv_known_host_entries <salt.modules.ssh.recv_known_host_entries>
function instead.
- Support for the
The :py:mod`firewalld <salt.modules.firewalld>` module has been changed as follows:
- The default setting for the
force_masquerade
option in thefirewalld.add_port <salt.module.firewalld.add_port
function has changed fromTrue
toFalse
. - Support for the
force_masquerade
option in thefirewalld.add_port_fwd <salt.module.firewalld.add_port_fwd
function has been changed fromTrue
toFalse
.
- The default setting for the
State Deprecations
The hipchat state has been removed due to the service being retired.
MS Teams <salt.states.msteams>
orSlack <salt.states.slack>
may be suitable replacements.The cmd state module has removed the
quiet
kwarg from thecmd.run <salt.states.cmd.run>
function. Please setoutput_loglevel
toquiet
instead.The heat state module has removed the
enviroment
kwarg from theheat.deployed <salt.states.heat.deployed>
function due to a spelling error. Please useenvironment
instead.The :py:mod`firewalld <salt.states.firewalld>` state has been changed as follows:
- The default setting for the
prune_services
option in thefirewalld.present <salt.states.firewalld.present>
function has changed fromTrue
toFalse
.
- The default setting for the
Fileserver Deprecations
The hgfs fileserver had the following config options removed:
- The
hgfs_env_whitelist
config option has been removed in favor ofhgfs_saltenv_whitelist
. - The
hgfs_env_blacklist
config option has been removed in favor ofhgfs_saltenv_blacklist
.
- The
The svnfs fileserver had the following config options removed:
- The
svnfs_env_whitelist
config option has been removed in favor ofsvnfs_saltenv_whitelist
. - The
svnfs_env_blacklist
config option has been removed in favor ofsvnfs_saltenv_blacklist
.
- The
The gitfs fileserver had the following config options removed:
- The
gitfs_env_whitelist
config option has been removed in favor ofgitfs_saltenv_whitelist
. - The
gitfs_env_blacklist
config option has been removed in favor ofgitfs_saltenv_blacklist
.
- The
Engine Removal
- The hipchat engine has been removed due to the service being
retired. For users migrating to Slack, the
slack <salt.engines.slack>
engine may be a suitable replacement.
Returner Removal
- The hipchat returner has been removed due to the service being
retired. For users migrating to Slack, the
slack <salt.returners.slack_returner>
returner may be a suitable replacement.
Grain Deprecations
For smartos
some grains have been deprecated. These
grains have been removed.
- The
hypervisor_uuid
has been replaced withmdata:sdc:server_uuid
grain.- The
datacenter
has been replaced withmdata:sdc:datacenter_name
grain.
Cloud Deprecations
- The nova cloud driver has been removed in favor of the openstack cloud driver.
Jinja Filter Deprecations
- The following jinja filters are set to be removed in the Aluminium
release:
json_decode_dict
in favor oftojson
json_decode_list
in favor oftojson
Utils Deprecations
All of the functions in salt.utils.__init__.py have been removed. These include:
- salt.utils.option
- salt.utils.required_module_list
- salt.utils.required_modules_error
- salt.utils.get_accumulator_dir.
Please use
salt.state.get_accumulator_dir
instead. - salt.utils.fnmatch_multiple. Please
use
salt.utils.itertools.fnmatch_multiple
instead. - salt.utils.appendproctitle. Please
use
salt.utils.process.appendproctitle
instead. - salt.utils.daemonize. Please use
salt.utils.process.daemonize
instead. - salt.utils.daemonize_if. Please use
salt.utils.process.daemonize_if
instead. - salt.utils.reinit_crypto. Please use
salt.utils.crypt.reinit_crypto
instead. - salt.utils.pem_finger. Please use
salt.utils.crypt.pem_finger
instead. - salt.utils.to_bytes. Please use
salt.utils.stringutils.to_bytes
instead. - salt.utils.to_str. Please use
salt.utils.stringutils.to_str
instead. - salt.utils.to_unicode. Please use
salt.utils.stringutils.to_unicode
instead. - salt.utils.str_to_num. Please use
salt.utils.stringutils.to_num
instead. - salt.utils.is_quoted. Please use
salt.utils.stringutils.is_quoted
instead. - salt.utils.dequote. Please use
salt.utils.stringutils.dequote
instead. - salt.utils.is_hex. Please use
salt.utils.stringutils.is_hex
instead. - salt.utils.is_bin_str. Please use
salt.utils.stringutils.is_binary
instead. - salt.utils.rand_string. Please use
salt.utils.stringutils.random
instead. - salt.utils.contains_whitespace.
Please use
salt.utils.stringutils.contains_whitespace
instead. - salt.utils.build_whitespace_split_regex. Please
use
salt.utils.stringutils.build_whitespace_split_regex
instead. - salt.utils.expr_match. Please use
salt.utils.stringutils.expr_match
instead. - salt.utils.check_whitelist_blacklist.
Please use
salt.utils.stringutils.check_whitelist_blacklist
instead. - salt.utils.check_include_exclude.Please use
salt.utils.stringutils.check_include_exclude
instead. - salt.utils.print_cli.Please use
salt.utils.stringutils.print_cli
instead. - salt.utils.clean_kwargs.Please use
salt.utils.args.clean_kwargs
instead. - salt.utils.invalid_kwargs.Please use
salt.utils.args.invalid_kwargs
instead. - salt.utils.shlex_split.Please use
salt.utils.args.shlex_split
instead. - salt.utils.arg_lookup.Please use
salt.utils.args.arg_lookup
instead. - salt.utils.argspec_report.Please use
salt.utils.args.argspec_report
instead. - salt.utils.split_input.Please use
salt.utils.args.split_input
instead. - salt.utils.test_mode.Please use
salt.utils.args.test_mode
instead. - salt.utils.format_call.Please use
salt.utils.args.format_call
instead. - salt.utils.which.Please use
salt.utils.path.which
instead. - salt.utils.which_bin.Please use
salt.utils.path.which_bin
instead. - salt.utils.path_join.Please use
salt.utils.path.join
instead. - salt.utils.check_or_die.Please use
salt.utils.path.check_or_die
instead. - salt.utils.sanitize_win_path_string.Please use
salt.utils.path.sanitize_win_path
instead. - salt.utils.rand_str.Please use
salt.utils.hashutils.random_hash
instead. - salt.utils.get_hash.Please use
salt.utils.hashutils.get_hash
instead. - salt.utils.is_windows.Please use
salt.utils.platform.is_windows
instead. - salt.utils.is_proxy.Please use
salt.utils.platform.is_proxy
instead. - salt.utils.is_linux.Please use
salt.utils.platform.is_linux
instead. - salt.utils.is_darwin.Please use
salt.utils.platform.is_darwin
instead. - salt.utils.is_sunos.Please use
salt.utils.platform.is_sunos
instead. - salt.utils.is_smartos.Please use
salt.utils.platform.is_smartos
instead. - salt.utils.is_smartos_globalzone.Please use
salt.utils.platform.is_smartos_globalzone
instead. - salt.utils.is_smartos_zone.Please use
salt.utils.platform.is_smartos_zone
instead. - salt.utils.is_freebsd.Please use
salt.utils.platform.is_freebsd
instead. - salt.utils.is_netbsd.Please use
salt.utils.platform.is_netbsd
instead. - salt.utils.is_openbsd.Please use
salt.utils.platform.is_openbsd
instead. - salt.utils.is_aix.Please use
salt.utils.platform.is_aix
instead. - salt.utils.safe_rm.Please use
salt.utils.files.safe_rm
instead. - salt.utils.is_empty.Please use
salt.utils.files.is_empty
instead. - salt.utils.fopen.Please use
salt.utils.files.fopen
instead. - salt.utils.flopen.Please use
salt.utils.files.flopen
instead. - salt.utils.fpopen.Please use
salt.utils.files.fpopen
instead. - salt.utils.rm_rf.Please use
salt.utils.files.rm_rf
instead. - salt.utils.mkstemp.Please use
salt.utils.files.mkstemp
instead. - salt.utils.istextfile.Please use
salt.utils.files.is_text_file
instead. - salt.utils.is_bin_file.Please use
salt.utils.files.is_binary
instead. - salt.utils.list_files.Please use
salt.utils.files.list_files
instead. - salt.utils.safe_walk.Please use
salt.utils.files.safe_walk
instead. - salt.utils.st_mode_to_octal.Please
use
salt.utils.files.st_mode_to_octal
instead. - salt.utils.normalize_mode.Please use
salt.utils.files.normalize_mode
instead. - salt.utils.human_size_to_bytes.Please
use
salt.utils.files.human_size_to_bytes
instead. - salt.utils.backup_minion.Please use
salt.utils.files.backup_minion
instead. - salt.utils.str_version_to_evr.Please
use
salt.utils.pkg.rpm.version_to_evr
instead. - salt.utils.parse_docstring.Please use
salt.utils.doc.parse_docstring
instead. - salt.utils.compare_versions.Please
use
salt.utils.versions.compare
instead. - salt.utils.version_cmp.Please use
salt.utils.versions.version_cmp
instead. - salt.utils.warn_until.Please use
salt.utils.versions.warn_until
instead. - salt.utils.kwargs_warn_until.Please
use
salt.utils.versions.kwargs_warn_until
instead. - salt.utils.get_color_theme.Please use
salt.utils.color.get_color_theme
instead. - salt.utils.get_colors.Please use
salt.utils.color.get_colors
instead. - salt.utils.gen_state_tag.Please use
salt.utils.state.gen_tag
instead. - salt.utils.search_onfail_requisites.Please use
salt.utils.state.search_onfail_requisites
instead. - salt.utils.check_onfail_requisites.Please use
salt.utils.state.check_onfail_requisites
instead. - salt.utils.check_state_result.Please
use
salt.utils.state.check_result
instead. - salt.utils.get_user.Please use
salt.utils.user.get_user
instead. - salt.utils.get_uid.Please use
salt.utils.user.get_uid
instead. - salt.utils.get_specific_user.Please
use
salt.utils.user.get_specific_user
instead. - salt.utils.chugid.Please use
salt.utils.user.chugid
instead. - salt.utils.chugid_and_umask.Please
use
salt.utils.user.chugid_and_umask
instead. - salt.utils.get_default_group.Please
use
salt.utils.user.get_default_group
instead. - salt.utils.get_group_list.Please use
salt.utils.user.get_group_list
instead. - salt.utils.get_group_dict.Please use
salt.utils.user.get_group_dict
instead. - salt.utils.get_gid_list.Please use
salt.utils.user.get_gid_list
instead. - salt.utils.get_gid.Please use
salt.utils.user.get_gid
instead. - salt.utils.enable_ctrl_logoff_handler.Please
use
salt.utils.win_functions.enable_ctrl_logoff_handler
instead. - salt.utils.traverse_dict.Please use
salt.utils.data.traverse_dict
instead. - salt.utils.traverse_dict_and_list.Please use
salt.utils.data.traverse_dict_and_list
instead. - salt.utils.filter_by.Please use
salt.utils.data.filter_by
instead. - salt.utils.subdict_match.Please use
salt.utils.data.subdict_match
instead. - salt.utils.substr_in_list.Please use
salt.utils.data.substr_in_list
instead. - salt.utils.is_dictlist.Please use
salt.utils.data.is_dictlist
instead. - salt.utils.repack_dictlist.Please use
salt.utils.data.repack_dictlist
instead. - salt.utils.compare_dicts.Please use
salt.utils.data.compare_dicts
instead. - salt.utils.compare_lists.Please use
salt.utils.data.compare_lists
instead. - salt.utils.decode_dict.Please use
salt.utils.data.encode_dict
instead. - salt.utils.decode_list.Please use
salt.utils.data.encode_list
instead. - salt.utils.exactly_n.Please use
salt.utils.data.exactly_n
instead. - salt.utils.exactly_one.Please use
salt.utils.data.exactly_one
instead. - salt.utils.is_list.Please use
salt.utils.data.is_list
instead. - salt.utils.is_iter.Please use
salt.utils.data.is_iter
instead. - salt.utils.isorted.Please use
salt.utils.data.sorted_ignorecase
instead. - salt.utils.is_true.Please use
salt.utils.data.is_true
instead. - salt.utils.mysql_to_dict.Please use
salt.utils.data.mysql_to_dict
instead. - salt.utils.simple_types_filter.Please
use
salt.utils.data.simple_types_filter
instead. - salt.utils.ip_bracket.Please use
salt.utils.zeromq.ip_bracket
instead. - salt.utils.gen_mac.Please use
salt.utils.network.gen_mac
instead. - salt.utils.mac_str_to_bytes.Please
use
salt.utils.network.mac_str_to_bytes
instead. - salt.utils.refresh_dns.Please use
salt.utils.network.refresh_dns
instead. - salt.utils.dns_check.Please use
salt.utils.network.dns_check
instead. - salt.utils.get_context.Please use
salt.utils.stringutils.get_context
instead. - salt.utils.get_master_key.Please use
salt.utils.master.get_master_key
instead. - salt.utils.get_values_of_matching_keys.Please
use
salt.utils.master.get_values_of_matching_keys
instead. - salt.utils.date_cast.Please use
salt.utils.dateutils.date_cast
instead. - salt.utils.date_format.Please use
salt.utils.dateutils.strftime
instead. - salt.utils.total_seconds.Please use
salt.utils.dateutils.total_seconds
instead. - salt.utils.find_json.Please use
salt.utils.json.find_json
instead. - salt.utils.import_json.Please use
salt.utils.json.import_json
instead. - salt.utils.namespaced_function.Please
use
salt.utils.functools.namespaced_function
instead. - salt.utils.alias_function.Please use
salt.utils.functools.alias_function
instead. - salt.utils.profile_func.Please use
salt.utils.profile.profile_func
instead. - salt.utils.activate_profile.Please
use
salt.utils.profile.activate_profile
instead. - salt.utils.output_profile.Please use
salt.utils.profile.output_profile
instead.
salt.auth.Authorize Class Removal
- The salt.auth.Authorize Class inside of the salt/auth/__init__.py file has been removed and the any_auth method inside of the file salt/utils/minions.py. These method and classes were not being used inside of the salt code base.