Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:
Go to file
Erik Johnson fd1d89d385 Reduce unnecessary file downloading in archive/file states
The file.managed state, which is used by the archive.extracted state to
download the source archive, at some point recently was modified to
clear the file from the minion cache. This caused unnecessary
re-downloading on subsequent runs, which slows down states considerably
when dealing with larger archives.

This commit makes the following changes to improve this:

1. The fileclient now accepts a `source_hash` argument, which will cause
   the client's get_url function to skip downloading http(s) and ftp
   files if the file is already cached, and its hash matches the passed
   hash. This argument has also been added to the `cp.get_url` and
   `cp.cache_file` function.

2. We no longer try to download the file when it's an http(s) or ftp URL
   when running `file.source_list`.

3. Where `cp.cache_file` is used, we pass the `source_hash` if it is
   available.

4. A `cache_source` argument has been added to the `file.managed` state,
   defaulting to `True`. This is now used to control whether or not the
   source file is cleared from the minion cache when the state
   completes.

5. Two new states (`file.cached` and `file.not_cached`) have been added
   to managed files in the minion cache.

In addition, the `archive.extracted` state has been modified in the
following ways:

1. For consistency with `file.managed`, a `cache_source` argument has
   been added. This also deprecates `keep`. If `keep` is used,
   `cache_source` assumes its value, and a warning is added to the state
   return to let the user know to update their SLS.

2. The variable name `cached_source` (used internally in the
   `archive.extracted` state) has been renamed to `cached` to reduce
   confusion with the new `cache_source` argument.

3. The new `file.cached` and `file.not_cached` states are now used to
   manage the source tarball instead of `file.managed`. This improves
   disk usage and reduces unnecessary complexity in the state as we no
   longer keep a copy of the archive in a separate location within the
   cachedir. We now only use the copy downloaded using `cp.cache_file`
   within the `file.cached` state. This change has also necessitated a
   new home for hash files tracked by the `source_hash_update` argument,
   in a subdirectory of the minion cachedir called `archive_hash`.
2017-09-21 12:04:52 -05:00
.github Reduce the number of days an issue is stale by 30 2017-09-11 12:12:33 -04:00
conf digitalocean should be one word. 2017-09-19 12:47:16 -06:00
doc Add autodoc file for new purefa execution module 2017-09-21 11:51:15 -04:00
pkg Merge branch '2017.7' into 'develop' 2017-09-13 15:15:04 -04:00
requirements nacl updates 2017-07-24 10:11:32 -04:00
salt Reduce unnecessary file downloading in archive/file states 2017-09-21 12:04:52 -05:00
scripts Use explicit unicode strings + break up salt.utils 2017-08-08 13:33:43 -05:00
templates Fix and adapt the salt-extend templates to the LoaderModuleMockMixin 2017-03-28 19:04:05 +01:00
tests Merge pull request #43588 from gtmanfred/do 2017-09-21 09:25:38 -04:00
.codeclimate.yml Configuration file for Code Climate static code analysis. 2015-05-05 13:49:46 -03:00
.editorconfig Added .editorconfig for easier editing. 2015-10-04 21:35:51 -04:00
.gitignore Revert "Fix integration tests launching - remove redundant "config_dir" argument in call to ShellTestCase.run_run from SaltDaemonScriptBase._wait_until_running" 2016-10-20 19:48:59 +09:00
.mention-bot Always notify tkwilliams when changes occur on boto files 2017-08-25 19:34:29 -04:00
.pylintrc Merge branch '2016.11' into 'nitrogen' 2017-05-24 16:32:59 -06:00
.testing.pylintrc Merge branch '2016.11' into 'nitrogen' 2017-05-24 16:32:59 -06:00
AUTHORS Merge pull request #39841 from rafaelcaricio/telegram-beacon 2017-03-14 13:30:37 -06:00
CODE_OF_CONDUCT.md Rename conduct file to code_of_conduct to be more clear 2017-06-09 09:39:14 -06:00
COPYING Update Salt's licensing information to include cptestcase 2016-09-01 18:46:13 +09:00
HACKING.rst Merge branch '2016.11' into 'develop' 2017-01-03 10:17:18 -05:00
LICENSE Updated copyright to 2016 2016-01-01 01:31:48 +00:00
MANIFEST.in move requirements files into requirements dir 2014-12-27 17:29:03 -07:00
README.rst Remove references to SaltConf16 and generalize related README 2017-08-27 17:33:40 -04:00
setup.py Adding back in the salt-spm-reactor-dir 2017-09-15 08:40:38 -07:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==================
What is SaltStack?
==================

SaltStack makes software for complex systems management at scale.
SaltStack is the company that created and maintains the Salt Open
project and develops and sells SaltStack Enterprise software, services
and support. Easy enough to get running in minutes, scalable enough to
manage tens of thousands of servers, and fast enough to communicate with
them in *seconds*.

Salt is a new approach to infrastructure management built on a dynamic
communication bus. Salt can be used for data-driven orchestration,
remote execution for any infrastructure, configuration management for
any app stack, and much more.

Download Salt Open
==================

Salt Open is tested and packaged to run on CentOS, Debian, RHEL, Ubuntu,
Windows. Download Salt Open and get started now.

`<https://repo.saltstack.com/>`_

`Installation Instructions <https://docs.saltstack.com/en/latest/topics/installation/index.html>`_

SaltStack Documentation
=======================

Installation instructions, getting started guides, and in-depth API
documentation.

`<https://docs.saltstack.com/en/getstarted/>`_

`<https://docs.saltstack.com/en/latest/>`_

Get SaltStack Support and Help
==============================

**IRC Chat** - Join the vibrant, helpful and positive SaltStack chat room in
Freenode at #salt. There is no need to introduce yourself, or ask permission to
join in, just help and be helped! Make sure to wait for an answer, sometimes it
may take a few moments for someone to reply.

`<http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83>`_

**Mailing List** - The SaltStack community users mailing list is hosted by
Google groups. Anyone can post to ask questions about SaltStack products and
anyone can help answer. Join the conversation!

`<https://groups.google.com/forum/#!forum/salt-users>`_

You may subscribe to the list without a Google account by emailing
salt-users+subscribe@googlegroups.com and you may post to the list by emailing
salt-users@googlegroups.com

**Reporting Issues** - To report an issue with Salt, please follow the
guidelines for filing bug reports:
`<https://docs.saltstack.com/en/develop/topics/development/reporting_bugs.html>`_

**SaltStack Support** - If you need dedicated, prioritized support, please
consider a SaltStack Support package that fits your needs:
`<http://www.saltstack.com/support>`_

Engage SaltStack
================

`SaltConf`_, **User Groups and Meetups** - SaltStack has a vibrant and `global
community`_ of customers, users, developers and enthusiasts. Connect with other
Salted folks in your area of the world, or join `SaltConf`_, the SaltStack
annual user conference held in Salt Lake City. Please visit the `SaltConf`_ site
for details of our next conference. Also, please let us know if you would like
to start a user group or if we should add your existing SaltStack user group to
this list by emailing: info@saltstack.com

**SaltStack Training** - Get access to proprietary `SaltStack education
offerings`_ through instructor-led training offered on-site, virtually or at
SaltStack headquarters in Salt Lake City. SaltStack Enterprise training helps
increase the value and effectiveness of SaltStack software for any customer and
is a prerequisite for coveted `SaltStack Certified Engineer (SSCE)`_ status.
SaltStack training is also available through several `SaltStack professional
services`_ offerings.

**Follow SaltStack on -**

* YouTube - `<http://www.youtube.com/saltstack>`_
* Twitter - `<http://www.twitter.com/saltstack>`_
* Facebook - `<https://www.facebook.com/SaltStack/>`_
* LinkedIn - `<https://www.linkedin.com/company/salt-stack-inc>`_
* LinkedIn Group - `<https://www.linkedin.com/groups/4877160>`_
* Google+ - `<https://plus.google.com/b/112856352920437801867/+SaltStackInc/posts>`_

.. _global community: http://www.meetup.com/pro/saltstack/
.. _SaltConf: http://saltconf.com/
.. _SaltStack education offerings: http://saltstack.com/training/
.. _SaltStack Certified Engineer (SSCE): http://saltstack.com/certification/
.. _SaltStack professional services: http://saltstack.com/services/

Developing Salt
===============

The Salt development team is welcoming, positive, and dedicated to
helping people get new code and fixes into SaltStack projects. Log into
GitHub and get started with one of the largest developer communities in
the world. The following links should get you started:

`<https://github.com/saltstack>`_

`<https://docs.saltstack.com/en/latest/topics/development/index.html>`_

`<https://docs.saltstack.com/en/develop/topics/development/pull_requests.html>`_