Merge pull request #8801 from danfaizer/devel
Corrected VM metadata obtention between Abiquo versions
This commit is contained in:
commit
eb8de9646c
2 changed files with 34 additions and 4 deletions
|
@ -1,23 +1,48 @@
|
||||||
# Ansible external inventory script settings for Abiquo
|
# Ansible external inventory script settings for Abiquo
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Define an Abiquo user with access to Abiquo API which will be used to
|
||||||
|
# perform required queries to obtain infromation to generate the Ansible
|
||||||
|
# inventory output.
|
||||||
|
#
|
||||||
[auth]
|
[auth]
|
||||||
apiuser = admin
|
apiuser = admin
|
||||||
apipass = xabiquo
|
apipass = xabiquo
|
||||||
|
|
||||||
|
|
||||||
|
# Specify Abiquo API version in major.minor format and the access URI to
|
||||||
|
# API endpoint. Tested versions are: 2.6 , 3.0 and 3.1
|
||||||
|
# To confirm that your box haves access to Abiquo API you can perform a
|
||||||
|
# curl command, replacing with suitable values, similar to this:
|
||||||
|
# curl -X GET https://192.168.2.100/api/login -u admin:xabiquo
|
||||||
|
#
|
||||||
[api]
|
[api]
|
||||||
uri = http://192.168.2.211:80/api
|
version = 3.0
|
||||||
|
uri = https://192.168.2.100/api
|
||||||
# You probably won't need to modify login preferences, but just in case
|
# You probably won't need to modify login preferences, but just in case
|
||||||
login_path = /login
|
login_path = /login
|
||||||
login_type = application/vnd.abiquo.user+json
|
login_type = application/vnd.abiquo.user+json
|
||||||
|
|
||||||
|
|
||||||
|
# To avoid performing excessive calls to Abiquo API you can define a
|
||||||
|
# cache for the plugin output. Within the time defined in seconds, latest
|
||||||
|
# output will be reused. After that time, the cache will be refreshed.
|
||||||
|
#
|
||||||
[cache]
|
[cache]
|
||||||
cache_max_age = 30
|
cache_max_age = 30
|
||||||
cache_dir = /var/tmp
|
cache_dir = /tmp
|
||||||
|
|
||||||
|
|
||||||
[defaults]
|
[defaults]
|
||||||
|
# Depending in your Abiquo environment, you may want to use only public IP
|
||||||
|
# addresses (if using public cloud providers) or also private IP addresses.
|
||||||
|
# You can set this with public_ip_only configuration.
|
||||||
public_ip_only = false
|
public_ip_only = false
|
||||||
# default_net_interface only is used if public_ip_only = false
|
# default_net_interface only is used if public_ip_only = false
|
||||||
|
# If public_ip_only is set to false, you can choose default nic to obtain
|
||||||
|
# IP address to define the host.
|
||||||
default_net_interface = nic0
|
default_net_interface = nic0
|
||||||
# Only deployed VM are added to output
|
# Only deployed VM are displayed in the plugin output.
|
||||||
deployed_only = true
|
deployed_only = true
|
||||||
|
# Define if VM metadata is obtained from Abiquo API.
|
||||||
get_metadata = false
|
get_metadata = false
|
||||||
|
|
|
@ -167,7 +167,12 @@ def generate_inv_from_api(enterprise_entity,config):
|
||||||
meta_entity = next(link for link in (vmcollection['links']) if (link['rel']=='metadata'))
|
meta_entity = next(link for link in (vmcollection['links']) if (link['rel']=='metadata'))
|
||||||
try:
|
try:
|
||||||
metadata = api_get(meta_entity,config)
|
metadata = api_get(meta_entity,config)
|
||||||
inventory['_meta']['hostvars'][vm_nic] = metadata['metadata']['metadata']
|
if (config.getfloat("api","version") >= 3.0):
|
||||||
|
vm_metadata = metadata['metadata']
|
||||||
|
else:
|
||||||
|
vm_metadata = metadata['metadata']['metadata']
|
||||||
|
if not vm_metadata is None:
|
||||||
|
inventory['_meta']['hostvars'][vm_nic] = vm_metadata
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue