[openstack-dev] [nova] python-novaclient region setting

Xav Paice xavpaice at gmail.com
Wed Feb 24 06:42:32 UTC 2016


fwiw, the second part of Monty's message is in the docs, sans region - it
would be a fairly swift change to add that and I'll probably submit a
gerrit for it soon.

Regards os_client_config,
http://docs.openstack.org/developer/os-client-config/ is great.
Unfortunately it didn't work for me in this particular case because of a
bug in novaclient, but that's beside the point - os_client_config is doing
exactly the right thing and I'm really happy with that approach in most
cases (and am changing some of our tooling to reflect that).

On 24 February 2016 at 05:05, Matt Riedemann <mriedem at linux.vnet.ibm.com>
wrote:

>
>
> On 2/22/2016 8:02 AM, Monty Taylor 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 <xavpaice at gmail.com
>>> <mailto:xavpaice at 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-request at lists.openstack.org?subject:unsubscribe
>>>
>>> <http://OpenStack-dev-request@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-request at 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-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
> <cough> would be good to capture this in the docs for novaclient so we
> could just link to it </cough>
>
> :)
>
> --
>
> Thanks,
>
> Matt Riedemann
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160224/3730c27c/attachment.html>


More information about the OpenStack-dev mailing list