That's just what I was after - thanks for that! On 23 February 2016 at 03:02, Monty Taylor <mord...@inaugust.com> wrote:
> On 02/21/2016 11:40 PM, Andrey Kurilin wrote: > >> Hi! >> `novaclient.client.Client` entry-point supports almost the same >> arguments as `novaclient.v2.client.Client`. The difference is only in >> api_version, so you can set up region via `novaclient.client.Client` in >> the same way as `novaclient.v2.client.Client`. >> > > The easiest way to get a properly constructed nova Client is with > os-client-config: > > import os_client_config > > OS_PROJECT_NAME="d8af8a8f-a573-48e6-898a-af333b970a2d" > OS_USERNAME="0b8c435b-cc4d-4e05-8a47-a2ada0539af1" > OS_PASSWORD="REDACTED" > OS_AUTH_URL="http://auth.vexxhost.net" > OS_REGION_NAME="ca-ymq-1" > > client = os_client_config.make_client( > 'compute', > auth_url=OS_AUTH_URL, username=OS_USERNAME, > password=OS_PASSWORD, project_name=OS_PROJECT_NAME, > region_name=OS_REGION_NAME) > > The upside is that the constructor interface is the same for all of the > rest of the client libs too (just change the first argument) - and it will > also read in OS_ env vars or named clouds from clouds.yaml if you have them > set. > > (The 'simplest' way is to put your auth and region information into a > clouds.yaml file like this: > > > http://docs.openstack.org/developer/os-client-config/#site-specific-file-locations > > Such as: > > # ~/.config/openstack/clouds.yaml > clouds: > vexxhost: > profile: vexxhost > auth: > project_name: d8af8a8f-a573-48e6-898a-af333b970a2d > username: 0b8c435b-cc4d-4e05-8a47-a2ada0539af1 > password: REDACTED > region_name: ca-ymq-1 > > > And do: > > client = os_client_config.make_client('compute', cloud='vexxhost') > > > If you don't want to do that for some reason but you'd like to construct a > novaclient Client object by hand: > > > from keystoneauth1 import loading > from keystoneauth1 import session as ksa_session > from novaclient import client as nova_client > > OS_PROJECT_NAME="d8af8a8f-a573-48e6-898a-af333b970a2d" > OS_USERNAME="0b8c435b-cc4d-4e05-8a47-a2ada0539af1" > OS_PASSWORD="REDACTED" > OS_AUTH_URL="http://auth.vexxhost.net" > OS_REGION_NAME="ca-ymq-1" > > # Get the auth loader for the password auth plugin > loader = loading.get_plugin_loader('password') > # Construct the auth plugin > auth_plugin = loader.load_from_options( > auth_url=OS_AUTH_URL, username=OS_USERNAME, password=OS_PASSWORD, > project_name=OS_PROJECT_NAME) > > # Construct a keystone session > # Other arguments that are potentially useful here are: > # verify - bool, whether or not to verify SSL connection validity > # cert - SSL cert information > # timout - time in seconds to use for connection level TCP timeouts > session = ksa_session.Session(auth_plugin) > > # Now make the client > # Other arguments you may be interested in: > # service_name - if you need to specify a service name for finding the > # right service in the catalog > # service_type - if the cloud in question has given a different > # service type (should be 'compute' for nova - but > # novaclient sets it, so it's safe to omit in most cases > # endpoint_override - if you want to tell it to use a different URL > # than what the keystone catalog returns > # endpoint_type - if you need to specify admin or internal > # endpoints rather than the default 'public' > # Note that in glance and barbican, this key is called > # 'interface' > client = nova_client.Client( > version='2.0', # or set the specific microversion you want > session=session, region_name=OS_REGION_NAME) > > It might be clear why I prefer the os_client_config factory function > instead - but what I prefer and what you prefer might not be the same > thing. :) > > On Mon, Feb 22, 2016 at 6:11 AM, Xav Paice <xavpa...@gmail.com >> <mailto:xavpa...@gmail.com>> wrote: >> >> Hi, >> >> In http://docs.openstack.org/developer/python-novaclient/api.html >> it's got some pretty clear instructions not to >> use novaclient.v2.client.Client but I can't see another way to >> specify the region - there's more than one in my installation, and >> no param for region in novaclient.client.Client >> >> Shall I hunt down/write a blueprint for that? >> >> >> __________________________________________________________________________ >> OpenStack Development Mailing List (not for usage questions) >> Unsubscribe: >> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >> <http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >> > >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> >> >> >> -- >> Best regards, >> Andrey Kurilin. >> >> >> __________________________________________________________________________ >> OpenStack Development Mailing List (not for usage questions) >> Unsubscribe: >> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev