Commit Graph

184 Commits (49009879b9888f2420007cd4ef21571160009c07)

Author SHA1 Message Date
Brian Coca fc71cde7d3
Yaml inventory more tolerant (#48883)
* make yaml inv more tolerant to comments
* add tests for bad inventory processing

fixes #47254
2018-11-30 22:04:39 -05:00
Alicia Cozine 031e961c58
removes talk of hardcoded loading from plugin docs (#49383) 2018-11-30 14:37:55 -06:00
Alan Rominger 729c3a6767 Fix error where pod has error and no containers (#49154)
k8s: Fix error where pod has error and no containers
2018-11-29 09:17:04 +00:00
vmpr 46a3c0cf2e changed documented default value for url (#49097)
the Default Value for url is 3000, so there was a mistake in the documentation
2018-11-28 15:16:36 -06:00
Lars Kellogg-Stedman bafc1f8a41 fix constructed functionality in openstack inventory plugin (#48833)
* test for openstack inventory constructed functionality

this adds unit tests for the compose, groups, and keyed_var features
of the openstack inventory plugin

* fix constructed functionality in openstack inventory plugin

The compose, groups, and keyed_groups functionality of the openstack
inventory plugin was broken:

- the plugin was not passing the correct variables to the
  Constructable methods for compose and groups
- the plugin was simply never calling the appropriate method for
  implementing keyed_groups

This commit fixes both issues.
2018-11-27 13:01:56 -05:00
Rémy Léone 959395f4b4 Fix getheaders regression with open_url in Scaleway dynamic inventory (#48671)
* Fix regression

* Improve changelog fragment
2018-11-21 09:06:21 -06:00
Matt Martz 9773a1f289
Add a Singleton metaclass, use it with Display (#48935)
* Add a Singleton class, use it with Display

* update six import

* Move remaining failes to display singleton

* Fix rebase issues

* Singleton improvements

* Add code-smell for 'from __main__ import display'. ci_complete

* s/self/cls/g

* Add docs for no-main-display

* Address linting issues

* Add changelog fragment. ci_complete

* Implement reentrant lock for class instantiation in Singleton

* Add Display singleton porting guide
2018-11-20 17:06:51 -06:00
Pilou 5271f771f0 YAML inventory doc: add info about 'all' group, remove unused option (#25408)
* YAML inventory: add note about 'all' group, update
2018-11-16 15:53:03 -06:00
Brian Coca 05246f7db8 inventory now errors for invalid group/host names (#45499)
* inventory now errors for invalid group/host names

also made yaml inventory slightly smarte

fixes #45493

* add some 'YAML protection' to ini plugin

* better msg

* avoid ranges as positive match

* pepe

* expand inherited instead of total override
2018-11-15 16:29:40 -05:00
nikkytub f3583cebd6 Added config-context in hostvars (#47394)
* Added config-contexts in hostvars

* Changed config-contexts to config-context in hostvars
2018-11-12 15:57:29 -05:00
Matt Martz b908a348a6 Remove TOML warning on emit (#48385) 2018-11-09 12:07:42 +10:00
Brian Coca 8ccb44aa63 clarify insane ini typing (#48169)
* clarify how variables are interpreted in the ini inventory plugin
2018-11-07 14:19:23 -06:00
Matt Martz 9949629e5a
Add toml inventory plugin (#41593)
* First pass at a toml inventory

* Make EXAMPLES yaml

* Remove unnecessary comment

* Small formatting changes

* Add ansible-inventory option to list as TOML

* TOML inventory improvements, to allow a more simple inventory, specifically related to children

* changelog

* Simplify logic

* Dedupe _expand_hostpattern, making it available to all inventory plugins

* Don't make the TOML inventory dependent on the YAML inventory

* Quote IP address values

* Add more TOML examples

* Further cleanups

* Enable the toml inventory to run by default

* Create toml specific dumper

* 2.8

* Clean up imports

* No toml pygments lexer

* Don't raise an exception early when toml isn't present, and move toml to the end, since it requires an external dep

* Require toml>=0.10.0

* Further clean up of empty data

* Don't require toml>=0.10.0, but prefer it, add code for fallback in older versions

* Ensure we actually pass an encoder to toml.dumps

* Simplify recursive data converter

* Appease tests, since we haven't limited controller testing to 2.7+

* Update docstring for convert_yaml_objects_to_native

* remove outdated catching of AttributeError

* We don't need to catch ImportError when import ansible.plugins.inventory.toml

* Add note about what self.dump_funcs.update is doing

* Address some things

* A little extra comment

* Fix toml availability check

* Don't create an intermediate list

* Require toml file extension

* Add metadata

* Remove TOML docs from intro_inventory to prevent people from getting the wrong idea

* It's in defaults, remove note

* core supported, indicate very clearly that this is preview status
2018-11-06 10:02:36 -06:00
Gaël Lambert 0c95453a70 Doc: k8s_raw_module fixing typo K8S_AUTH_HOST -> K8S_AUTH_KEY_FILE (#46947)
The current doc of k8s_raw_module contain a copy paste of the env var name :

```
host   :
Provide a URL for accessing the API. Can also be specified via K8S_AUTH_HOST environment variable.
key_file  : Path to a key file used to authenticate with the API. Can also be specified via K8S_AUTH_HOST environment variable.
```
2018-11-05 12:13:57 -05:00
B-Art fc1cbddd3d exprpessions into expressions (#47967)
* exprpessions into expressions, JInja2 into Jinja2
2018-11-02 13:39:21 -05:00
Brian Coca d590f10d32 remove redundant md5 hashing 2018-10-31 13:54:52 -07:00
Gonéri Le Bouder 30b6bb34cd openstack: drop some reference to shade (#47359)
shade is not used anymore by the `os_*` modules.

PR #40532 replaces `shade` library by `openstacksdk`. This commit clean
up some references to the old library. It's similiar to what has been
done in PR #40784.
2018-10-30 15:29:11 -05:00
Rémy Léone 7837497b0b Fix netbox url with urljoin (#47655) 2018-10-29 13:17:06 +00:00
Johann Queuniet 74ce8ce935 Add API pagination support to Scaleway inventory (#46117)
* Add Scaleway API pagination to server inventory call

* Move Link parsing to helper module

* Correct some PEP8 errors

* Replace AnsibleError with ScalewayException in module_utils since the former doesn't work

* Simplify the regexes to match the intended purpose

* Cleanup helper to conform to review

* Cleanup Scaleway inventory to conform to review

* Flatten the conditional branches structure

* fix a regexp typo
2018-10-24 17:53:46 +01:00
FragmentedPacket f83fa2ac93 Netbox inventory: Fix NoneType issue if query_filters is not in netbox_inventory.yml (#46793)
* Added if state to refresh_url to avoid failure at NoneType when guesry_filters is undefined in netbox_inventory.yml
2018-10-24 16:52:20 +01:00
Jonathan Oddy 7ba09adee1 Fix AWS EC2 inventory plugin caching of groups (#46961)
* Fix AWS EC2 inventory plugin caching of groups

* Added changelog fragment for aws_ec2 caching fix

* Store the AWS query results

The underlying inventory object contains inventory from other sources,
so caching it as ours would be wrong.
It seems easiest and safest to just cache the boto query results
instead.

* Remove unused functions
2018-10-22 09:15:27 -04:00
nikkytub 539f0fee09 Fixed the ssl-certs in netbox plugin (#46543)
* Fixed the ssl-certs in netbox plugin

* Added validate_certs parameter and updated the example
2018-10-17 21:30:47 +01:00
Rémy Léone 8a7a819040 Add support for platform grouping (#45733) 2018-10-17 21:28:20 +01:00
Brian Coca 9e0c2a658f
better information for user from inventory plugins (#46766)
* better information for user from inventory plugins

 - use foreman as example
2018-10-12 11:27:29 -04:00
Rémy Léone faf262977e Add virtualization devices in the inventory (#45728) 2018-10-11 18:09:01 +01:00
Rémy Léone a8925484c9 Use constructable with NetBox dynamic inventory (#45913) 2018-10-11 18:01:29 +01:00
Sloane Hertel f3d5ebb355 add more consistent extension matching for inventory plugins (#46786)
* Add consistent extension matching for inventory plugins that support YAML configuration files

* Document extension matching expectations
2018-10-11 11:06:52 -05:00
lwm 8d0f823de0 Add a Linode v4 dynamic inventory plugin. (#45902)
* Add a Linode v4 dynamic inventory plugin.

Closes https://github.com/ansible/ansible/issues/44721.

* Use the latest API for accessing host variables.

References:

  * https://github.com/linode/linode_api4-python/issues/141

* Minor docs formating
2018-10-09 12:54:31 +01:00
Matt Clay a11f631ee4 Python 3.8 collections compatibility fixes.
Includes a new pylint blacklist plugin to prevent regressions.
2018-10-08 11:26:37 -07:00
Rémy Léone 9ff25c1383 Add tags grouping (#45741) 2018-10-06 11:06:39 -04:00
Pilou 15d46ce428 k8s/oc plugins: fix 'ResourceField' is not JSON serializable (#46145)
Fixes #44408
2018-09-27 18:43:29 -04:00
Abhijeet Kasurde 8ecc6be85c Misc typo fix (#46199)
jinaj2 to jinja2

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-09-27 12:51:48 +02:00
Pilou 2fd18c77ae openshift inventory plugin: fix exception when auth fails (#45826)
* openshift inventory: fix exception when auth fails

Fix 'ForbiddenError' object has no attribute 'message':

    [WARNING]:  * Failed to parse test.yml with openshift plugin: 'ForbiddenError' object has no attribute 'message'
     File "ansible/lib/ansible/inventory/manager.py", line 270, in parse_source
       plugin.parse(self._inventory, self._loader, source, cache=cache)
     File "ansible/lib/ansible/plugins/inventory/openshift.py", line 122, in parse
       self.setup(config_data, cache, cache_key)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 58, in setup
       self.fetch_objects(connections)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 250, in fetch_objects
       super(OpenShiftInventoryHelper, self).fetch_objects(connections)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 81, in fetch_objects
       namespaces = self.get_available_namespaces(client)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 95, in get_available_namespaces
       raise K8sInventoryException('Error fetching Namespace list: {0}'.format(exc.message))

Don't try to get 'message' attribute from:
- K8sInventoryException instances
- Exception instances
- KubernetesException instances (because KubernetesException can be
  Exception)

* move k8s/OpenShift inventory plugin dedicated code

inventory plugin specific code should not be located in
lib/ansible/module_utils directory. Then ansible.utils methods can be
reused (for example Display).

* Remove unused class variables 'helper'

unused since 4d77878654.
2018-09-26 18:16:54 -04:00
Anthony Ruhier 5803d73400 Bugfixes in Netbox inventory (#45731)
* Fix headers and params in netbox queries

Fix token authentication
Remove unused variables regarding api params and headers

* Fix python 3 incompatibility in netbox inventory

* Cleaning BOTMETA entry
2018-09-26 11:52:24 +01:00
Rémy Léone f6154bb2e3 Refactor attribute lookup to make it multithreaded (#45786) 2018-09-24 10:23:23 -04:00
Brian Coca a47671aad1 allow openstack invetnory to work cacheless
fixes #45431
2018-09-21 12:33:24 -04:00
Rémy Léone 574ed8dc7f Add documentation about the query filters (#45835) 2018-09-21 12:09:35 -04:00
Yanis Guenane a7bf505474 inventory/tower: authors -< author so Doc can pick it up (#45936) 2018-09-20 16:44:22 -05:00
Rémy Léone 66f03827d6 Add a netbox dynamic inventory plugin (#45347) 2018-09-16 15:13:56 +01:00
Matt Martz 263b9fade8
Don't pass file_name to DataLoader.load in script inventory plugin (#45428)
* Don't pass file_name to DataLoader.load in script inventory plugin. Fixes #34164

* Add changelog fragment
2018-09-10 14:37:18 -05:00
Bob Lee 9a1191cbe5 Update documentation for gcp_compute (#43791)
Added examples on how to use "keyed_groups", "hostnames", and "compose"

The compose example shows how to set the ansible_host var for a host to either the public or private ip. This is necessary when you set your hostname by name instead of ip
2018-09-05 13:45:56 -05:00
Rémy Léone f465a251e1 Add a dynamic inventory plugin for Online (#44720) 2018-09-03 02:33:15 -04:00
Matt Davis 2822fd8d9b
initial commit of azure_rm inventory plugin (#44944)
* crusty refactor of azure_rm to support auth from non-modules
2018-08-31 01:33:23 -07:00
Pilou c07ba82d3e Scaleway inventory: allows to connect via private IP (#44342)
* scaleway inventory: remove useless duplicate

* scaleway inventory: allows to connect using private ip

ansible_host was hardcoded and it was not possible to connect using
private addresses.
This allows to define multiple host variables, values are templates
which can use hosts details send by API. For example this config file
use private address and defines two variables:

    plugin: scaleway
    hostnames:
      - hostname
    variables:
      ansible_host: private_ip
      state: state
      image: image.name
    regions:
      - ams1

inventory will looks like:

    {
        "_meta": {
            "hostvars": {
                "testhost": {
                    "ansible_host": "10.1.1.1",
                    "arch": "x86_64",
                    "commercial_type": "START1-M",
                    "hostname": "testhost",
                    "id": "af669464-0c74-4c89-8573-9fe763028448",
                    "image": "CentOS 7.4",
                    "organization": "2cc9a115-380d-4ac0-ba4b-8947eee71325",
                    "public_ipv4": "163.172.1.1",
                    "public_ipv6": "2001:bc8::1",
                    "state": "running",
                    "tags": [
                        "testtag"
                    ]
                }
            }
        },
        [...]
    }
2018-08-29 12:14:12 -04:00
Rémy Léone 70adbb87d9 Added private_ipv4 to the hostvars in Scaleway dynamic inventory (#44122) 2018-08-28 16:35:38 -04:00
Rémy Léone ea0f722d74 Fix verify_file check in Scaleway dynamic inventory (#44384) 2018-08-28 16:34:13 -04:00
Yanis Guenane 9869f378fd inventory/vultr: Few minor improvements (#44622) 2018-08-24 15:35:29 +02:00
Sloane Hertel b152515fcb RDS inventory plugin (#41919)
Comments out uses of rds_instance in the integration tests and replace with AWS CLI until rds_instance has been merged
2018-08-23 19:42:32 -04:00
Yanis Guenane 72d4880b85 Vultr: Introduce the Vultr inventory plugin (#44400)
This commit introduce the Vultr inventory plugin.
2018-08-23 23:14:26 +02:00
Yunfan Zhang 18f361ecdd Added Ansible Tower inventory plugin. (#41816)
Signed-off-by: Yunfan Zhang <yz322@duke.edu>
2018-08-21 14:41:26 -04:00