Split get_hostvars_from_server into two

There are really two different things going on here. One is figuring
out essential information "what IP do I use to talk to this server"
The other is fleshing out some additional information that is useful
for ansible inventories. The ansible inventory info is expensive when
that's not what you're doing and when you're not using shade-level
caching.

A follow-on patch will make the create/get/list server calls use the
new function always.

Change-Id: Ia1de78d26c708ce6fe3205a9484cb16a92360890
This commit is contained in:
Monty Taylor
2015-10-05 15:40:30 +01:00
parent eb9ce61915
commit cf4effb5f2

View File

@@ -223,7 +223,8 @@ def get_groups_from_server(cloud, server, server_vars):
return groups
def get_hostvars_from_server(cloud, server, mounts=None):
def expand_server_vars(cloud, server):
"""Add clean up the server dict with information that is essential."""
server_vars = server
server_vars.pop('links', None)
@@ -257,6 +258,16 @@ def get_hostvars_from_server(cloud, server, mounts=None):
server_vars['region'] = cloud.region_name
server_vars['cloud'] = cloud.name
az = server_vars.get('OS-EXT-AZ:availability_zone', None)
if az:
server_vars['az'] = az
return server_vars
def get_hostvars_from_server(cloud, server, mounts=None):
"""Expand additional server information useful for ansible inventory."""
server_vars = expand_server_vars(cloud, server)
flavor_id = server['flavor']['id']
flavor_name = cloud.get_flavor_name(flavor_id)
if flavor_name:
@@ -292,10 +303,6 @@ def get_hostvars_from_server(cloud, server, mounts=None):
if 'mount' in mount:
vol['mount'] = mount['mount']
az = server_vars.get('OS-EXT-AZ:availability_zone', None)
if az:
server_vars['az'] = az
return server_vars