diff --git a/contrib/inventory/openstack_inventory.py b/contrib/inventory/openstack_inventory.py index 1bb5e17de95..81237a7bf22 100755 --- a/contrib/inventory/openstack_inventory.py +++ b/contrib/inventory/openstack_inventory.py @@ -57,6 +57,7 @@ import os import sys import time from distutils.version import StrictVersion +from io import StringIO try: import json @@ -81,7 +82,8 @@ def get_groups_from_server(server_vars, namegroup=True): groups.append(cloud) # Create a group on region - groups.append(region) + if region: + groups.append(region) # And one by cloud_region groups.append("%s_%s" % (cloud, region)) @@ -235,6 +237,8 @@ def parse_args(): def main(): args = parse_args() try: + # openstacksdk library may write to stdout, so redirect this + sys.stdout = StringIO() config_files = cloud_config.CONFIG_FILES + CONFIG_FILES sdk.enable_logging(debug=args.debug) inventory_args = dict( @@ -255,6 +259,7 @@ def main(): inventory = sdk_inventory.OpenStackInventory(**inventory_args) + sys.stdout = sys.__stdout__ if args.list: output = get_host_groups(inventory, refresh=args.refresh, cloud=args.cloud) elif args.host: