Skip to content

Instantly share code, notes, and snippets.

@stephenfin
Created July 27, 2023 18:04
Show Gist options
  • Save stephenfin/b72c65b53bcdc0695db7e38316e86713 to your computer and use it in GitHub Desktop.
Save stephenfin/b72c65b53bcdc0695db7e38316e86713 to your computer and use it in GitHub Desktop.
Create an openstacksdk connection using oslo.config CONF object

Create an openstacksdk connection using oslo.config CONF object

A demo of using this more esoteric mechanism for creating a Connection object.

python create-connection.py --config-file neutron.conf
#!/usr/bin/env python3
from keystoneauth1 import loading as ks_loading
from oslo_config import cfg
from openstack import connection
CONF = cfg.CONF
group = cfg.OptGroup(
'neutron',
title='Neutron Options',
)
ks_loading.register_session_conf_options(CONF, group)
ks_loading.register_auth_conf_options(CONF, group)
ks_loading.register_adapter_conf_options(CONF, group)
CONF()
auth = ks_loading.load_auth_from_conf_options(CONF, 'neutron')
sess = ks_loading.load_session_from_conf_options(CONF, 'neutron', auth=auth)
conn = connection.Connection(
session=sess,
oslo_conf=CONF,
)
print(list(conn.network.networks()))
[neutron]
region_name = RegionOne
auth_strategy = keystone
project_domain_name = Default
project_name = ###
user_domain_name = Default
password = ###
username = ###
auth_url = ###
auth_type = password
service_metadata_proxy = True
default_floating_pool = public
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment