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.
* 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
The two detection methods currently implemented do not cover all cases.
For example qemu guests invoked like this:
qemu -machine pc-i440fx-1.4,accel=kvm -cpu SandyBridge
return this information:
product_name: Standard PC (i440FX + PIIX, 1996)
cpuinfo: model name : Intel Xeon E312xx (Sandy Bridge)