mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 09:23:56 +00:00
Merge pull request #27313 from basepi/merge-forward-develop
Merge forward from 2015.8 to develop
This commit is contained in:
commit
84eba18a93
@ -1,6 +1,6 @@
|
||||
==============
|
||||
salt.auth.rest
|
||||
==============
|
||||
salt.auth.rest module
|
||||
=====================
|
||||
|
||||
.. automodule:: salt.auth.rest
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
@ -1,6 +1,6 @@
|
||||
===============
|
||||
salt.beacons.ps
|
||||
===============
|
||||
salt.beacons.ps module
|
||||
======================
|
||||
|
||||
.. automodule:: salt.beacons.ps
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
@ -20,6 +20,7 @@ Reference
|
||||
peer
|
||||
pillar/index
|
||||
pillar/all/index
|
||||
proxy/all/index
|
||||
renderers/index
|
||||
returners/index
|
||||
roster/all/index
|
||||
|
@ -73,6 +73,7 @@ Full list of builtin execution modules
|
||||
ddns
|
||||
deb_apache
|
||||
deb_postgres
|
||||
debbuild
|
||||
debconfmod
|
||||
debian_ip
|
||||
debian_service
|
||||
@ -131,6 +132,7 @@ Full list of builtin execution modules
|
||||
incron
|
||||
influx
|
||||
ini_manage
|
||||
inspectlib
|
||||
introspect
|
||||
ipmi
|
||||
ipset
|
||||
@ -258,6 +260,7 @@ Full list of builtin execution modules
|
||||
shadow
|
||||
slack_notify
|
||||
smartos_imgadm
|
||||
smartos_virt
|
||||
smartos_vmadm
|
||||
smbios
|
||||
smf
|
||||
@ -287,6 +290,7 @@ Full list of builtin execution modules
|
||||
sysrc
|
||||
system
|
||||
system_profiler
|
||||
system_rest_sample
|
||||
systemd
|
||||
telemetry
|
||||
temp
|
||||
|
6
doc/ref/modules/all/salt.modules.debbuild.rst
Normal file
6
doc/ref/modules/all/salt.modules.debbuild.rst
Normal file
@ -0,0 +1,6 @@
|
||||
=====================
|
||||
salt.modules.debbuild
|
||||
=====================
|
||||
|
||||
.. automodule:: salt.modules.debbuild
|
||||
:members:
|
@ -0,0 +1,6 @@
|
||||
salt.modules.inspectlib.collector module
|
||||
========================================
|
||||
|
||||
.. automodule:: salt.modules.inspectlib.collector
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/modules/all/salt.modules.inspectlib.dbhandle.rst
Normal file
6
doc/ref/modules/all/salt.modules.inspectlib.dbhandle.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.modules.inspectlib.dbhandle module
|
||||
=======================================
|
||||
|
||||
.. automodule:: salt.modules.inspectlib.dbhandle
|
||||
:members:
|
||||
:undoc-members:
|
@ -0,0 +1,6 @@
|
||||
salt.modules.inspectlib.exceptions module
|
||||
=========================================
|
||||
|
||||
.. automodule:: salt.modules.inspectlib.exceptions
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/modules/all/salt.modules.inspectlib.query.rst
Normal file
6
doc/ref/modules/all/salt.modules.inspectlib.query.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.modules.inspectlib.query module
|
||||
====================================
|
||||
|
||||
.. automodule:: salt.modules.inspectlib.query
|
||||
:members:
|
||||
:undoc-members:
|
19
doc/ref/modules/all/salt.modules.inspectlib.rst
Normal file
19
doc/ref/modules/all/salt.modules.inspectlib.rst
Normal file
@ -0,0 +1,19 @@
|
||||
salt.modules.inspectlib package
|
||||
===============================
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
.. toctree::
|
||||
|
||||
salt.modules.inspectlib.collector
|
||||
salt.modules.inspectlib.dbhandle
|
||||
salt.modules.inspectlib.exceptions
|
||||
salt.modules.inspectlib.query
|
||||
|
||||
Module contents
|
||||
---------------
|
||||
|
||||
.. automodule:: salt.modules.inspectlib
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/modules/all/salt.modules.smartos_virt.rst
Normal file
6
doc/ref/modules/all/salt.modules.smartos_virt.rst
Normal file
@ -0,0 +1,6 @@
|
||||
=========================
|
||||
salt.modules.smartos_virt
|
||||
=========================
|
||||
|
||||
.. automodule:: salt.modules.smartos_virt
|
||||
:members:
|
6
doc/ref/modules/all/salt.modules.system_rest_sample.rst
Normal file
6
doc/ref/modules/all/salt.modules.system_rest_sample.rst
Normal file
@ -0,0 +1,6 @@
|
||||
===============================
|
||||
salt.modules.system_rest_sample
|
||||
===============================
|
||||
|
||||
.. automodule:: salt.modules.system_rest_sample
|
||||
:members:
|
6
doc/ref/netapi/all/salt.netapi.rest_cherrypy.app.rst
Normal file
6
doc/ref/netapi/all/salt.netapi.rest_cherrypy.app.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.netapi.rest_cherrypy.app module
|
||||
====================================
|
||||
|
||||
.. automodule:: salt.netapi.rest_cherrypy.app
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/netapi/all/salt.netapi.rest_cherrypy.wsgi.rst
Normal file
6
doc/ref/netapi/all/salt.netapi.rest_cherrypy.wsgi.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.netapi.rest_cherrypy.wsgi module
|
||||
=====================================
|
||||
|
||||
.. automodule:: salt.netapi.rest_cherrypy.wsgi
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/netapi/all/salt.netapi.rest_tornado.saltnado.rst
Normal file
6
doc/ref/netapi/all/salt.netapi.rest_tornado.saltnado.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.netapi.rest_tornado.saltnado module
|
||||
========================================
|
||||
|
||||
.. automodule:: salt.netapi.rest_tornado.saltnado
|
||||
:members:
|
||||
:undoc-members:
|
@ -0,0 +1,6 @@
|
||||
salt.netapi.rest_tornado.saltnado_websockets module
|
||||
===================================================
|
||||
|
||||
.. automodule:: salt.netapi.rest_tornado.saltnado_websockets
|
||||
:members:
|
||||
:undoc-members:
|
@ -1,6 +1,6 @@
|
||||
=========================
|
||||
salt.pillar.consul_pillar
|
||||
=========================
|
||||
salt.pillar.consul_pillar module
|
||||
================================
|
||||
|
||||
.. automodule:: salt.pillar.consul_pillar
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
@ -1,6 +1,6 @@
|
||||
===================
|
||||
salt.pillar.neutron
|
||||
===================
|
||||
salt.pillar.neutron module
|
||||
==========================
|
||||
|
||||
.. automodule:: salt.pillar.neutron
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
@ -1,6 +1,6 @@
|
||||
====================
|
||||
salt.pillar.sql_base
|
||||
====================
|
||||
salt.pillar.sql_base module
|
||||
===========================
|
||||
|
||||
.. automodule:: salt.pillar.sql_base
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
@ -1,6 +1,6 @@
|
||||
===================
|
||||
salt.pillar.sqlite3
|
||||
===================
|
||||
salt.pillar.sqlite3 module
|
||||
==========================
|
||||
|
||||
.. automodule:: salt.pillar.sqlite3
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
14
doc/ref/proxy/all/index.rst
Normal file
14
doc/ref/proxy/all/index.rst
Normal file
@ -0,0 +1,14 @@
|
||||
.. _all-salt.proxy:
|
||||
|
||||
==================================
|
||||
Full list of builtin proxy modules
|
||||
==================================
|
||||
|
||||
.. currentmodule:: salt.proxy
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:template: autosummary.rst.tmpl
|
||||
|
||||
junos
|
||||
rest_sample
|
6
doc/ref/proxy/all/salt.proxy.junos.rst
Normal file
6
doc/ref/proxy/all/salt.proxy.junos.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.proxy.junos module
|
||||
=======================
|
||||
|
||||
.. automodule:: salt.proxy.junos
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/proxy/all/salt.proxy.rest_sample.rst
Normal file
6
doc/ref/proxy/all/salt.proxy.rest_sample.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.proxy.rest_sample module
|
||||
=============================
|
||||
|
||||
.. automodule:: salt.proxy.rest_sample
|
||||
:members:
|
||||
:undoc-members:
|
6
doc/ref/queues/all/salt.queues.sqlite_queue.rst
Normal file
6
doc/ref/queues/all/salt.queues.sqlite_queue.rst
Normal file
@ -0,0 +1,6 @@
|
||||
salt.queues.sqlite_queue module
|
||||
===============================
|
||||
|
||||
.. automodule:: salt.queues.sqlite_queue
|
||||
:members:
|
||||
:undoc-members:
|
@ -1,6 +1,6 @@
|
||||
=============
|
||||
salt.sdb.rest
|
||||
=============
|
||||
salt.sdb.rest module
|
||||
====================
|
||||
|
||||
.. automodule:: salt.sdb.rest
|
||||
:members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
6
doc/ref/states/all/salt.states.glance.rst
Normal file
6
doc/ref/states/all/salt.states.glance.rst
Normal file
@ -0,0 +1,6 @@
|
||||
==================
|
||||
salt.states.glance
|
||||
==================
|
||||
|
||||
.. automodule:: salt.states.glance
|
||||
:members:
|
@ -46,7 +46,7 @@ Set up an initial profile at ``/etc/salt/cloud.profiles`` or in the
|
||||
|
||||
digitalocean-ubuntu:
|
||||
provider: my-digitalocean-config
|
||||
image: Ubuntu 14.04 x32
|
||||
image: 14.04 x64
|
||||
size: 512MB
|
||||
location: New York 1
|
||||
private_networking: True
|
||||
@ -117,18 +117,20 @@ command:
|
||||
----------
|
||||
digital_ocean:
|
||||
----------
|
||||
Arch Linux 2013.05 x64:
|
||||
10.1:
|
||||
----------
|
||||
created_at:
|
||||
2015-01-20T20:04:34Z
|
||||
distribution:
|
||||
Arch Linux
|
||||
FreeBSD
|
||||
id:
|
||||
350424
|
||||
10144573
|
||||
min_disk_size:
|
||||
20
|
||||
name:
|
||||
Arch Linux 2013.05 x64
|
||||
10.1
|
||||
public:
|
||||
True
|
||||
slug:
|
||||
None
|
||||
...SNIP...
|
||||
|
||||
.. note::
|
||||
|
@ -256,6 +256,19 @@ max_net_speed
|
||||
Specifies the connection speed for the instance's network components. This
|
||||
setting is optional. By default, this is set to 10.
|
||||
|
||||
post_uri
|
||||
--------
|
||||
Specifies the uri location of the script to be downloaded and run after the instance
|
||||
is provisioned.
|
||||
|
||||
.. versionadded:: 2015.8.1
|
||||
|
||||
Example:
|
||||
.. code-block:: yaml
|
||||
|
||||
base_softlayer_ubuntu:
|
||||
post_uri: 'https://SOMESERVERIP:8000/myscript.sh'
|
||||
|
||||
public_vlan
|
||||
-----------
|
||||
If it is necessary for an instance to be created within a specific frontend
|
||||
|
8
doc/topics/releases/2015.5.6.rst
Normal file
8
doc/topics/releases/2015.5.6.rst
Normal file
@ -0,0 +1,8 @@
|
||||
===========================
|
||||
Salt 2015.5.6 Release Notes
|
||||
===========================
|
||||
|
||||
Version 2015.5.6 is a bugfix release for :doc:`2015.5.0
|
||||
</topics/releases/2015.5.0>`.
|
||||
|
||||
Changes:
|
@ -135,9 +135,9 @@ def avail_images(call=None):
|
||||
items = query(method='images', command='?page=' + str(page) + '&per_page=200')
|
||||
|
||||
for image in items['images']:
|
||||
ret[image['id']] = {}
|
||||
ret[image['name']] = {}
|
||||
for item in six.iterkeys(image):
|
||||
ret[image['id']][item] = image[item]
|
||||
ret[image['name']][item] = image[item]
|
||||
|
||||
page += 1
|
||||
try:
|
||||
@ -562,10 +562,20 @@ def list_keypairs(call=None):
|
||||
|
||||
items = query(method='account/keys')
|
||||
ret = {}
|
||||
for keypair in items['ssh_keys']:
|
||||
ret[keypair['name']] = {}
|
||||
for item in six.iterkeys(keypair):
|
||||
ret[keypair['name']][item] = str(keypair[item])
|
||||
for key_pair in items['ssh_keys']:
|
||||
name = key_pair['name']
|
||||
if name in ret:
|
||||
raise SaltCloudSystemExit(
|
||||
'A duplicate key pair name, \'{0}\', was found in DigitalOcean\'s '
|
||||
'key pair list. Please change the key name stored by DigitalOcean. '
|
||||
'Be sure to adjust the value of \'ssh_key_file\' in your cloud '
|
||||
'profile or provider configuration, if necessary.'.format(
|
||||
name
|
||||
)
|
||||
)
|
||||
ret[name] = {}
|
||||
for item in six.iterkeys(key_pair):
|
||||
ret[name][item] = str(key_pair[item])
|
||||
|
||||
return ret
|
||||
|
||||
|
@ -1037,7 +1037,7 @@ def list_storage_services(conn=None, call=None):
|
||||
|
||||
def get_operation_status(kwargs=None, conn=None, call=None):
|
||||
'''
|
||||
.. versionadded:: 2015.2
|
||||
.. versionadded:: 2015.8.0
|
||||
|
||||
Get Operation Status, based on a request ID
|
||||
|
||||
|
@ -369,6 +369,12 @@ def create(vm_):
|
||||
'maxSpeed': int(max_net_speed)
|
||||
}]
|
||||
|
||||
post_uri = config.get_cloud_config_value(
|
||||
'post_uri', vm_, __opts__, default=None
|
||||
)
|
||||
if post_uri:
|
||||
kwargs['postInstallScriptUri'] = post_uri
|
||||
|
||||
salt.utils.cloud.fire_event(
|
||||
'event',
|
||||
'requesting instance',
|
||||
|
@ -308,6 +308,12 @@ def create(vm_):
|
||||
)
|
||||
kwargs['prices'].append({'id': bandwidth})
|
||||
|
||||
post_uri = config.get_cloud_config_value(
|
||||
'post_uri', vm_, __opts__, default=None
|
||||
)
|
||||
if post_uri:
|
||||
kwargs['prices'].append({'id': post_uri})
|
||||
|
||||
vlan_id = config.get_cloud_config_value(
|
||||
'vlan', vm_, __opts__, default=False
|
||||
)
|
||||
|
@ -3,7 +3,7 @@
|
||||
Fluent Logging Handler
|
||||
========================
|
||||
|
||||
.. versionadded:: 2015.2
|
||||
.. versionadded:: 2015.8.0
|
||||
|
||||
This module provides some `Fluent`_ logging handlers.
|
||||
|
||||
|
@ -1807,10 +1807,11 @@ class ClearFuncs(object):
|
||||
# If there are groups in the token, check if any of them are listed in the eauth config
|
||||
group_auth_match = False
|
||||
try:
|
||||
for group in token['groups']:
|
||||
if group in eauth_groups:
|
||||
group_auth_match = True
|
||||
break
|
||||
if token.get('groups'):
|
||||
for group in token['groups']:
|
||||
if group in eauth_groups:
|
||||
group_auth_match = True
|
||||
break
|
||||
except KeyError:
|
||||
pass
|
||||
if '*' not in eauth_users and token['name'] not in eauth_users and not group_auth_match:
|
||||
|
@ -2,7 +2,7 @@
|
||||
'''
|
||||
Debian Package builder system
|
||||
|
||||
.. versionadded:: Beryllium
|
||||
.. versionadded:: 2015.8.0
|
||||
|
||||
This system allows for all of the components to build debs safely in chrooted
|
||||
environments. This also provides a function to generate debian repositories
|
||||
|
@ -62,9 +62,9 @@ def usage(args=None):
|
||||
'''
|
||||
flags = _clean_flags(args, 'disk.usage')
|
||||
if not os.path.isfile('/etc/mtab') and __grains__['kernel'] == 'Linux':
|
||||
log.warn('df cannot run without /etc/mtab')
|
||||
log.error('df cannot run without /etc/mtab')
|
||||
if __grains__.get('virtual_subtype') == 'LXC':
|
||||
log.warn('df command failed and LXC detected. If you are running '
|
||||
log.error('df command failed and LXC detected. If you are running '
|
||||
'a Docker container, consider linking /proc/mounts to '
|
||||
'/etc/mtab or consider running Docker with -privileged')
|
||||
return {}
|
||||
@ -116,7 +116,7 @@ def usage(args=None):
|
||||
'capacity': comps[4],
|
||||
}
|
||||
except IndexError:
|
||||
log.warn('Problem parsing disk usage information')
|
||||
log.error('Problem parsing disk usage information')
|
||||
ret = {}
|
||||
return ret
|
||||
|
||||
@ -163,7 +163,7 @@ def inodeusage(args=None):
|
||||
'filesystem': comps[0],
|
||||
}
|
||||
except (IndexError, ValueError):
|
||||
log.warn('Problem parsing inode usage information')
|
||||
log.error('Problem parsing inode usage information')
|
||||
ret = {}
|
||||
return ret
|
||||
|
||||
@ -201,18 +201,21 @@ def percent(args=None):
|
||||
else:
|
||||
ret[comps[5]] = comps[4]
|
||||
except IndexError:
|
||||
log.warn('Problem parsing disk usage information')
|
||||
log.error('Problem parsing disk usage information')
|
||||
ret = {}
|
||||
if args:
|
||||
if args and args not in ret:
|
||||
log.error('Problem parsing disk usage information: Partition \'{0}\' does not exist!'.format(args))
|
||||
ret = {}
|
||||
elif args:
|
||||
return ret[args]
|
||||
else:
|
||||
return ret
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
@decorators.which('blkid')
|
||||
def blkid(device=None):
|
||||
'''
|
||||
Return block device attributes: UUID, LABEL, etc. This function only works
|
||||
Return block device attributes: UUID, LABEL, etc. This function only works
|
||||
on systems where blkid is available.
|
||||
|
||||
CLI Example:
|
||||
|
@ -51,7 +51,7 @@ _ETHTOOL_CONFIG_OPTS = [
|
||||
]
|
||||
_RH_CONFIG_OPTS = [
|
||||
'domain', 'peerdns', 'peerntp', 'defroute',
|
||||
'mtu', 'static-routes', 'gateway'
|
||||
'mtu', 'static-routes', 'gateway', 'zone'
|
||||
]
|
||||
_RH_CONFIG_BONDING_OPTS = [
|
||||
'mode', 'miimon', 'arp_interval',
|
||||
@ -634,7 +634,7 @@ def _parse_settings_eth(opts, iface_type, enabled, iface):
|
||||
elif 'netmask' in opts:
|
||||
result['netmask'] = opts['netmask']
|
||||
|
||||
for opt in ['ipaddr', 'master', 'srcaddr', 'delay', 'domain', 'gateway', 'uuid', 'nickname']:
|
||||
for opt in ['ipaddr', 'master', 'srcaddr', 'delay', 'domain', 'gateway', 'uuid', 'nickname', 'zone']:
|
||||
if opt in opts:
|
||||
result[opt] = opts[opt]
|
||||
|
||||
|
@ -870,7 +870,8 @@ def set_known_host(user=None,
|
||||
port=None,
|
||||
enc=None,
|
||||
hash_hostname=True,
|
||||
config=None):
|
||||
config=None,
|
||||
hash_known_hosts=True):
|
||||
'''
|
||||
Download SSH public key from remote host "hostname", optionally validate
|
||||
its fingerprint against "fingerprint" variable and save the record in the
|
||||
@ -878,6 +879,44 @@ def set_known_host(user=None,
|
||||
|
||||
If such a record does already exists in there, do nothing.
|
||||
|
||||
user
|
||||
The user who owns the ssh authorized keys file to modify
|
||||
|
||||
hostname
|
||||
The name of the remote host (e.g. "github.com")
|
||||
|
||||
fingerprint
|
||||
The fingerprint of the key which must be presented in the known_hosts
|
||||
file (optional if key specified)
|
||||
|
||||
key
|
||||
The public key which must be presented in the known_hosts file
|
||||
(optional if fingerprint specified)
|
||||
|
||||
port
|
||||
optional parameter, denoting the port of the remote host, which will be
|
||||
used in case, if the public key will be requested from it. By default
|
||||
the port 22 is used.
|
||||
|
||||
enc
|
||||
Defines what type of key is being used, can be ed25519, ecdsa ssh-rsa
|
||||
or ssh-dss
|
||||
|
||||
hash_hostname : True
|
||||
Hash all hostnames and addresses in the known hosts file.
|
||||
|
||||
.. deprecated:: Carbon
|
||||
|
||||
Please use hash_known_hosts instead.
|
||||
|
||||
config
|
||||
The location of the authorized keys file relative to the user's home
|
||||
directory, defaults to ".ssh/known_hosts". If no user is specified,
|
||||
defaults to "/etc/ssh/ssh_known_hosts". If present, must be an
|
||||
absolute path when a user is not specified.
|
||||
|
||||
hash_known_hosts : True
|
||||
Hash all hostnames and addresses in the known hosts file.
|
||||
|
||||
CLI Example:
|
||||
|
||||
@ -894,6 +933,14 @@ def set_known_host(user=None,
|
||||
'error': 'argument port can not be used in '
|
||||
'conjunction with argument hash_hostname'}
|
||||
|
||||
if not hash_hostname:
|
||||
salt.utils.warn_until(
|
||||
'Carbon',
|
||||
'The hash_hostname parameter is misleading as ssh-keygen can only '
|
||||
'hash the whole known hosts file, not entries for individual'
|
||||
'hosts. Please use hash_known_hosts=False instead.')
|
||||
hash_known_hosts = hash_hostname
|
||||
|
||||
update_required = False
|
||||
check_required = False
|
||||
stored_host = get_known_host(user, hostname, config, port)
|
||||
@ -967,7 +1014,7 @@ def set_known_host(user=None,
|
||||
os.chown(ssh_dir, uinfo['uid'], uinfo['gid'])
|
||||
os.chmod(ssh_dir, 0o700)
|
||||
|
||||
if key:
|
||||
if key and hash_known_hosts:
|
||||
cmd_result = __salt__['ssh.hash_known_hosts'](user=user, config=full)
|
||||
|
||||
# write line to known_hosts file
|
||||
@ -1070,6 +1117,13 @@ def hash_known_hosts(user=None, config=None):
|
||||
|
||||
.. versionadded:: 2014.7.0
|
||||
|
||||
user
|
||||
hash known hosts of this user
|
||||
|
||||
config
|
||||
path to known hosts file: can be absolute or relative to user's home
|
||||
directory
|
||||
|
||||
CLI Example:
|
||||
|
||||
.. code-block:: bash
|
||||
@ -1080,7 +1134,7 @@ def hash_known_hosts(user=None, config=None):
|
||||
full = _get_known_hosts_file(config=config, user=user)
|
||||
|
||||
if isinstance(full, dict):
|
||||
return full
|
||||
return full # full contains error information
|
||||
|
||||
if not os.path.isfile(full):
|
||||
return {'status': 'error',
|
||||
|
@ -80,19 +80,10 @@ def _yum():
|
||||
'''
|
||||
contextkey = 'yum_bin'
|
||||
if contextkey not in __context__:
|
||||
try:
|
||||
osrelease = int(__grains__['osrelease'])
|
||||
except ValueError:
|
||||
log.warning(
|
||||
'Unexpected osrelease grain \'{0}\', please report this'
|
||||
.format(__grains__['osrelease'])
|
||||
)
|
||||
__context__[contextkey] = 'yum'
|
||||
if 'fedora' in __grains__['os'].lower() and int(__grains__['osrelease']) >= 22:
|
||||
__context__[contextkey] = 'dnf'
|
||||
else:
|
||||
if 'fedora' in __grains__['os'].lower() and osrelease >= 22:
|
||||
__context__[contextkey] = 'dnf'
|
||||
else:
|
||||
__context__[contextkey] = 'yum'
|
||||
__context__[contextkey] = 'yum'
|
||||
return __context__[contextkey]
|
||||
|
||||
|
||||
|
@ -23,6 +23,9 @@ from __future__ import absolute_import
|
||||
# Import python libs
|
||||
import os
|
||||
|
||||
# Import salt libs
|
||||
import salt.utils
|
||||
|
||||
|
||||
def present(
|
||||
name,
|
||||
@ -32,7 +35,8 @@ def present(
|
||||
port=None,
|
||||
enc=None,
|
||||
config=None,
|
||||
hash_hostname=True):
|
||||
hash_hostname=True,
|
||||
hash_known_hosts=True):
|
||||
'''
|
||||
Verifies that the specified host is known by the specified user
|
||||
|
||||
@ -70,7 +74,14 @@ def present(
|
||||
absolute path when a user is not specified.
|
||||
|
||||
hash_hostname : True
|
||||
Hash all hostnames and addresses in the output.
|
||||
Hash all hostnames and addresses in the known hosts file.
|
||||
|
||||
.. deprecated:: Carbon
|
||||
|
||||
Please use hash_known_hosts instead.
|
||||
|
||||
hash_known_hosts : True
|
||||
Hash all hostnames and addresses in the known hosts file.
|
||||
'''
|
||||
ret = {'name': name,
|
||||
'changes': {},
|
||||
@ -87,6 +98,14 @@ def present(
|
||||
ret['result'] = False
|
||||
return dict(ret, comment=comment)
|
||||
|
||||
if not hash_hostname:
|
||||
salt.utils.warn_until(
|
||||
'Carbon',
|
||||
'The hash_hostname parameter is misleading as ssh-keygen can only '
|
||||
'hash the whole known hosts file, not entries for individual'
|
||||
'hosts. Please use hash_known_hosts=False instead.')
|
||||
hash_known_hosts = hash_hostname
|
||||
|
||||
if __opts__['test']:
|
||||
if key and fingerprint:
|
||||
comment = 'Specify either "key" or "fingerprint", not both.'
|
||||
@ -121,7 +140,7 @@ def present(
|
||||
port=port,
|
||||
enc=enc,
|
||||
config=config,
|
||||
hash_hostname=hash_hostname)
|
||||
hash_known_hosts=hash_known_hosts)
|
||||
if result['status'] == 'exists':
|
||||
return dict(ret,
|
||||
comment='{0} already exists in {1}'.format(name, config))
|
||||
|
@ -8,6 +8,12 @@ Provide test case states that enable easy testing of things to do with
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
always-passes-with-any-kwarg:
|
||||
test.nop:
|
||||
- name: foo
|
||||
- something: else
|
||||
- foo: bar
|
||||
|
||||
always-passes:
|
||||
test.succeed_without_changes:
|
||||
- name: foo
|
||||
@ -49,6 +55,17 @@ from salt.exceptions import SaltInvocationError
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def nop(name, **kwargs):
|
||||
'''
|
||||
A no-op state that does nothing. Useful in conjunction with the `use`
|
||||
requisite, or in templates which could otherwise be empty due to jinja
|
||||
rendering
|
||||
|
||||
.. versionadded:: 2015.5.6
|
||||
'''
|
||||
return succeed_without_changes(name)
|
||||
|
||||
|
||||
def succeed_without_changes(name):
|
||||
'''
|
||||
Returns successful.
|
||||
@ -64,9 +81,6 @@ def succeed_without_changes(name):
|
||||
'result': True,
|
||||
'comment': 'Success!'
|
||||
}
|
||||
if __opts__['test']:
|
||||
ret['result'] = True
|
||||
ret['comment'] = 'If we weren\'t testing, this would be a success!'
|
||||
return ret
|
||||
|
||||
|
||||
|
@ -33,6 +33,7 @@ DEVICE="{{name}}"
|
||||
{%endif%}{% if stp %}STP="{{stp}}"
|
||||
{%endif%}{% if delay or delay == 0 %}DELAY="{{delay}}"
|
||||
{%endif%}{% if mtu %}MTU="{{mtu}}"
|
||||
{%endif%}{% if zone %}ZONE="{{zone}}"
|
||||
{%endif%}{% if my_inner_ipaddr %}MY_INNER_IPADDR={{my_inner_ipaddr}}
|
||||
{%endif%}{% if my_outer_ipaddr %}MY_OUTER_IPADDR={{my_outer_ipaddr}}
|
||||
{%endif%}{% if bonding %}BONDING_OPTS="{%for item in bonding %}{{item}}={{bonding[item]}} {%endfor%}"
|
||||
|
@ -471,13 +471,13 @@ class SaltEvent(object):
|
||||
- 'fnmatch' : fnmatch tag event tags matching
|
||||
Default is opts['event_match_type'] or 'startswith'
|
||||
|
||||
.. versionadded:: Beryllium
|
||||
.. versionadded:: 2015.8.0
|
||||
|
||||
no_block
|
||||
Define if getting the event should be a blocking call or not.
|
||||
Defaults to False to keep backwards compatibility.
|
||||
|
||||
.. versionadded:: Beryllium
|
||||
.. versionadded:: 2015.8.0
|
||||
|
||||
Notes:
|
||||
|
||||
|
@ -313,7 +313,7 @@ def query(url,
|
||||
urllib_request.HTTPCookieProcessor(sess_cookies)
|
||||
]
|
||||
|
||||
if url.startswith('https') or port == 443:
|
||||
if url.startswith('https'):
|
||||
hostname = request.get_host()
|
||||
handlers[0] = urllib_request.HTTPSHandler(1)
|
||||
if not HAS_MATCHHOSTNAME:
|
||||
@ -323,8 +323,12 @@ def query(url,
|
||||
log.warn(('SSL certificate verification has been explicitly '
|
||||
'disabled. THIS CONNECTION MAY NOT BE SECURE!'))
|
||||
else:
|
||||
if ':' in hostname:
|
||||
hostname, port = hostname.split(':')
|
||||
else:
|
||||
port = 443
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
sock.connect((hostname, 443))
|
||||
sock.connect((hostname, int(port)))
|
||||
sockwrap = ssl.wrap_socket(
|
||||
sock,
|
||||
ca_certs=ca_bundle,
|
||||
@ -403,6 +407,9 @@ def query(url,
|
||||
if isinstance(data, dict):
|
||||
data = urllib.urlencode(data)
|
||||
|
||||
if verify_ssl:
|
||||
req_kwargs['ca_certs'] = ca_bundle
|
||||
|
||||
max_body = opts.get('http_max_body', salt.config.DEFAULT_MINION_OPTS['http_max_body'])
|
||||
timeout = opts.get('http_request_timeout', salt.config.DEFAULT_MINION_OPTS['http_request_timeout'])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user