* added ability to set parents (will be used when the deps are loaded)
* added role caching, so roles are not reloaded needlessly (and for
use in detecting when roles have already been run)
* reworked the way metadata was stored - now individual attribute fields
instead of a dictionary blob
There is a common pattern in modules where some parameters are required
only if another parameter is present AND set to a particular value. For
instance, if a cloud server state is "present" it's important to
indicate the image to be used, but if it's "absent", the image that was
used to launch it is not necessary. Provide a check that takes as an
input a list of 3-element tuples containing parameter to depend on, the
value it should be set to, and a list of parameters which are required
if the required parameter is set to the required value.
Adds new settings for managing retry files:
* retry_files_enabled, defaults to True
* retry_files_save_path, defaults to ~/.ansible-retry
This change was adapted from PR #5515.
* moved old unittests for vault over to the new codebase
* reverted YAML error helpers and reverted the load() function
in parsing/__init__.py, pending a rewrite of a new YAML loader
class of some kind to encapsulate all of that
* fixed an error in in the module args parser regarding the shell/
command argument parsing, where some additional arguments were
being lost
The message for when an async task has finished has the hostname in it. This adds it to the polling message as well:
```
<job 390794962174.18311> finished on 107.6.24.140
<job 390794962174.31779> finished on 69.90.50.171
<job 390794962174.12328> polling on 69.90.50.172, 6840s remaining
```
* using inspect module instead of iteritems(self.__class__.__dict__, due
to the fact that the later does not include attributes from parent
classes
* added tags/when attributes to Base() class for use by all subclasses
* removed value/callable code from Attribute, as they are not used
* started moving some limited code from utils to new places in v2 tree
(vault, yaml-parsing related defs)
* re-added ability of Block.load() to create implicit blocks from tasks
* started overhaul of Role class and role-related code