Unfortunately, I wasn't able to fix a bug in the VaultAES in which during
the test_decrypt_1_0 and test_rekey_migration in which VaultAES wasn't successfully
writing the writing the encrypted key to out_file (BytesIO).
Added skipping vault_editor tests test_decrypt_1_0 and test_rekey_migration in python3
since I wasn't able to successfully backport VaultAES without weird bugs.
In mod_args we were checking `isinstance(thing, NoneType)` when
thing is None works the same since NoneType can't be subclassed in
python 2 or 3 and it removes the need for the NoneType import.
* Elminates a lot of logic in the AnsibleComposer class.
* Update tests with new column offsets. The rule should now be
consistently: Column is the start of the entry's value (so for
strings, the first non-space after the entry beginning, for dicts, the
first character of the first key)
* Changes AnsibleConstructor so that only unicode strings are returned
(no str type)
* Tracks line, column numbers for strings
* Adds unittests for AnsibleLoader (generic for all the yaml parsing)
* Do backslash escape parsing in parse_kv() [was being done in the copy
module purely for newlines in the copy module's content param before]
* Make parse_kv always return unicode
* Add bandaid to transform args to unicode until we can fix things
calling parse_kv to always send it unicode.
* Make split_args deal with unicode internally. Warning, no bandaid for
things calling split_args without giving it unicode (shouldn't matter
as dealt with str internally before)
* Fix copy and unarchive action plugins to not use setdefaultencoding
* Remove escaping from copy (it was broken and made content into latin-1
sometimes). escaping is now in parse_kv.
* Expect that content is now a unicode string so transform to bytes just
before writing to the file.
* Add initial unittests for split_args and parse_kv. 4 failing
tests.because split_args is injecting extra newlines.
Dynamic task includes still need some work, this is a rough first version.
* doesn't work with handler sections of playbooks yet
* when using include + with*, the insertion order is backwards
* fix potential for task lists to be unsynchronized when using the linear
strategy, as the include conditional could be predicated on an inventory
variable
Also reworking tests to cut down on the number of patches required
by sub-classing the DataLoader() class and reworking the base object's
structure a bit to allow its use
* 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
* 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