Commit Graph

479 Commits (ae5d8e5ebbecbbdb57e44974a865f4193fec39a0)

Author SHA1 Message Date
Brian Coca a9942353fe revert ocalhost getting 'all' vars (#31425)
back to previous implicit localhost behaviour

fixes #31420
7 years ago
Brian Coca dbae704d3c correctd inventory_file to return full path
fixes #31294
7 years ago
Brian Coca 852d457549 turn all inventory cache 'off by default' 7 years ago
Brian Coca cf3414d7d7 set _hosts on access if None (#31111)
set _hosts on access if None to bpyass srlz10n issues to fix #30903
7 years ago
Brian Coca 3f9a885b83 use set to quicken group host membership 7 years ago
jctanner 5aebcd4f7f Remove redundant check for group membership in add_host (#30530) 7 years ago
Brian Coca fc9b44e021 clear correct cache when reconcile is invoked
moved it to ensure all callers get the correct hosts after
7 years ago
Brian Coca f87d0b3502 typo fix 7 years ago
Brian Coca 0571014f2f bypass get_hosts and use dictionary directly
removed redundant consistency fallback
inventory reconciliation already takes care of this a priori
removed unused imports
7 years ago
Brian Coca de6ba4daff add toggle to controle inventory parse as error (#28729)
* add toggle to controle inventory parse as error

also rearranged new inventory options into it's own ini section

* updated with inventory features

also minor fixes/consolidation on deprecated/removed modules

* tweaked settings
7 years ago
Brian Coca 95eaa246aa added keyed_group construction (#28578)
* added keyed_group construction

also added strict config to allow skipping bad templating
more precise error msgs
to_native better than to_text
fixed truthyness
added safe names

* allow keyed expressions to return lists

* PEPE should eat less, he is getting fat
7 years ago
Brian Coca f921369445 Ansible Config part2 (#27448)
* Ansible Config part2

- made dump_me nicer, added note this is not prod
- moved internal key removal function to vars
- carry tracebacks in errors we can now show tracebacks for plugins on vvv
- show inventory plugin tracebacks on vvv
- minor fixes to cg groups plugin
- draft config from plugin docs
- made search path warning 'saner' (top level dirs only)
- correctly display config entries and others
- removed unneeded code
- commented out some conn plugin specific from base.yml
- also deprecated sudo/su
- updated ssh conn docs
- shared get option method for connection plugins
- note about needing eval for defaults
- tailored yaml ext
- updated strategy entry
- for connection pliugins, options load on plugin load
- allow for long types in definitions
- better display in ansible-doc
- cleaned up/updated source docs and base.yml
- added many descriptions
- deprecated include toggles as include is
- draft backwards compat get_config
- fixes to ansible-config, added --only-changed
- some code reoorg
- small license headers
- show default in doc type
- pushed module utils details to 5vs
- work w/o config file
- PEPE ATE!
- moved loader to it's own file
- fixed rhn_register test
- fixed boto requirement in make tests
- I ate Pepe
- fixed dynamic eval of defaults
- better doc code

skip ipaddr filter tests when missing netaddr
removed devnull string from config
better becoem resolution

* killed extra space with extreeme prejudice

cause its an affront against all that is holy that 2 spaces touch each other!

shippable timing out on some images, but merging as it passes most
7 years ago
Brian Coca 3a1b84153c ensure all groups inherit from 'all' 7 years ago
Brian Coca 661b2c5beb allow implicit host to be grouped (#26614)
* allow implicit host to be grouped

also optimized patternmatching

fixes #24156

* resolved a great crime
7 years ago
Matt Martz b6ee9163e3 Ensure hosts aren't duplicated in groups 8 years ago
Matt Martz 392934f1b9 Fix pep8 issue in lib/ansible/inventory/manager.py (#25562) 8 years ago
Brian Coca cc66bd4ad0 moved general pattern cache into object
no real reason this is a class global
8 years ago
Brian Coca 9831e1597f minor protection against bad config 8 years ago
Dag Wieers 5553b20828 Collated PEP8 fixes (#25293)
- Make PEP8 compliant
8 years ago
Brian Coca bc403934ef properlly report plugin name 8 years ago
Brian Coca e19109fb3d made inventory plugins list to keep config order 8 years ago
Brian Coca 8f97aef1a3 Transition inventory into plugins (#23001)
* draft new inventory plugin arch, yaml sample

 - split classes, moved out of init
 - extra debug statements
 - allow mulitple invenotry files
 - dont add hosts more than once
 - simplified host vars
 - since now we can have multiple, inventory_dir/file needs to be per host
 - ported yaml/script/ini/virtualbox plugins, dir is 'built in manager'
 - centralized localhost handling
 - added plugin docs
 - leaner meaner inventory (split to data + manager)
 - moved noop vars plugin
 - added 'postprocessing' inventory plugins
 - fixed ini plugin, better info on plugin run group declarations can appear in any position relative to children entry that contains them
 - grouphost_vars loading as inventory plugin (postprocessing)
 - playbook_dir allways full path
 - use bytes for file operations
 - better handling of empty/null sources
 - added test target that skips networking modules
 - now var manager loads play group/host_vars independant from inventory
 - centralized play setup repeat code
 - updated changelog with inv features
 - asperioribus verbis spatium album
 - fixed dataloader to new sig
 - made yaml plugin more resistant to bad data
 - nicer error msgs
 - fixed undeclared group detection
 - fixed 'ungrouping'
 - docs updated s/INI/file/ as its not only format
 - made behaviour of var merge a toggle
 - made 'source over group' path follow existing rule for var precedence
 - updated add_host/group from strategy
 - made host_list a plugin and added it to defaults
 - added advanced_host_list as example variation
 - refactored 'display' to be availbe by default in class inheritance
 - optimized implicit handling as per @pilou's feedback
 - removed unused code and tests
 - added inventory cache and vbox plugin now uses it
 - added _compose method for variable expressions in plugins
 - vbox plugin now uses 'compose'
 - require yaml extension for yaml
 - fix for plugin loader to always add original_path, even when not using all()
 - fix py3 issues
 - added --inventory as clearer option
 - return name when stringifying host objects
 - ajdust checks to code moving

* reworked vars and vars precedence
 - vars plugins now load group/host_vars dirs
 - precedence for host vars is now configurable
 - vars_plugins been reworked
 - removed unused vars cache
 - removed _gathered_facts as we are not keeping info in host anymore
 - cleaned up tests
 - fixed ansible-pull to work with new inventory
 - removed version added notation to please rst check
 - inventory in config relative to config
 - ensures full paths on passed inventories

* implicit localhost connection local
8 years ago
Brian Coca 0d5d5f2bf6 correctly get all hosts in 'all' 8 years ago
Pierre-Alexandre 283a88444f BUGFIX : using yaml hosts inventory, hosts in groups weren't added to the group 'all' 8 years ago
Mike Hume a4ae329465 Update __init__.py
Just guessin, but is this how it is supposed to read?
8 years ago
Toshio Kuratomi 2fff690caa Update module_utils.six to latest (#22855)
* Update module_utils.six to latest

We've been held back on the version of six we could use on the module
side to 1.4.x because of python-2.4 compatibility.  Now that our minimum
is Python-2.6, we can update to the latest version of six in
module_utils and get rid of the second copy in lib/ansible/compat.
8 years ago
Toshio Kuratomi c7c8481181 No need to specialcase comment characters
If the # is inside of quotes, it's a string.  If it's outside of quotes
then an exception will be raised which we'll catch and then send to the
to_text() call at the end of the function anyhow.

Fixes #22868
8 years ago
Matt Martz 3164e8b561 E501 fixes (#22879) 8 years ago
Brian Coca 052be86605 fix for loosing ungrouped hosts in ini
fixes #22861
8 years ago
Brian Coca 4319ddd5de allow users to control group var merge order (#22580)
* allow users to control group var merge order

With ansible_group_priority var at each group will determine merge order with siblings,
falling back to sorted names when priority is equal as it did before.

Parent/children relationships still work as they did and have higher precedence than priority

* move priority setting to groups, sourc indep

* now both inventory and play group follow priority

* removed double exception handling
8 years ago
Brian Coca 6b46cc5c73 added new 'order' directive to sort hosts in play
fixes #10964
8 years ago
Brian Coca eb0b1e149d warn when failed to match host pattern
fixes #11934
8 years ago
Brian Coca 39ba55e5ac corrected host group ancestor management 8 years ago
Brian Coca 273786d0bd simplified pattern matching, fixed ungrouped (#22523)
* simplified pattern matching, fixed ungrouped

ungrouped was ignored for patterns, now it is usable again

* even simpler
8 years ago
Brian Coca 0897ec9938 warn when name is overloaded as both host and group
added small optimization to base group comparisson
fixes #6545
8 years ago
Brian Coca 2d9bf88897 deal with other 'ungrouped' corner cases 8 years ago
Brian Coca 78e116077a readd all.add_host as for loop uses diff data 8 years ago
Brian Coca 385f1d82dc ensure all hosts in all
fixes #20252
8 years ago
Brian Coca c4cff44e77 fix 'ungrouped' issue with some inventory formats 8 years ago
James Cammarata 4cbe610263 Use a custom id generator over uuid4
>>> timeit.timeit("uuid.uuid4()", setup="import uuid")
9.518647909164429
>>> timeit.timeit("get_unique_id()", setup="from __main__ import get_unique_id")
0.40436601638793945

This will mainly be beneficial when a very large inventory is being
used, however it may also help with some very large playbooks.
8 years ago
Toshio Kuratomi 98541b7c8b Fix to bytes surrogate and nonencodable chars (#21180)
* Add a surrogate_then_replace error strategy to keep to_bytes from tracebacking by default
* Port all code that explicitly used surrogate_or_replace to surrogate_then_replace
8 years ago
Ryan S. Brown d12e9f5748 Convert error to the native text type before writing to stderr
Fixes #20588
8 years ago
Matt Clay d913f69ba1 PEP 8 W291 whitespace cleanup. 8 years ago
Toshio Kuratomi 05879d331a Fix linenos being wrong in inventory errors
Fixes #20356
8 years ago
TaoBeier 6ec0369c26 fix indent (#20071) 8 years ago
Brian Coca 6f5ecb7efd warn when examined group_vars is not dir 8 years ago
Carlos E. Garcia 0b8011436d minor spelling changes 8 years ago
James Cammarata a83b00bbc0 Properly sort groups by name as well as depth when getting vars
Fixes #17243
8 years ago
Adrian Likins dd0189839e Fix bug (#18355) where encrypted inventories fail 18355 (#18373)
* Fix bug (#18355) where encrypted inventories fail

This is first part of fix for #18355
* Make DataLoader._get_file_contents return bytes

The issue #18355 is caused by a change to inventory to
stop using _get_file_contents so that it can handle text
encoding itself to better protect against harmless text
encoding errors in ini files (invalid unicode text in
comment fields).

So this makes _get_file_contents return bytes so it and other
callers can handle the to_text().

The data returned by _get_file_contents() is now a bytes object
instead of a text object. The callers of _get_file_contents() have
been updated to call to_text() themselves on the results.

Previously, the ini parser attempted to work around
ini files that potentially include non-vailid unicode
in comment lines. To do this, it stopped using
DataLoader._get_file_contents() which does the decryption of
files if vault encrypted. It didn't use that because _get_file_contents
previously did to_text() on the read data itself.

_get_file_contents() returns a bytestring now, so ini.py
can call it and still special case ini file comments when
converting to_text(). That also means encrypted inventory files
are decrypted first.

Fixes #18355
8 years ago
Brian Coca 8217c1c39c resolve inventory path on init
This allows meta refresh_inventory to work with relative paths
Added option to unfrackpath to not resolv symlinks
fixes #16857
8 years ago