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

Andrey Kurilin akurilin at mirantis.com
Wed Feb 24 09:18:54 UTC 2016


Hi!

>didn't work for me in this particular case because of a bug in novaclient

Can you tell more about bug in novaclient or share a bug report?

On Wed, Feb 24, 2016 at 8:42 AM, Xav Paice <xavpaice at gmail.com> wrote:

> 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
>>
>
>
> __________________________________________________________________________
> 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
>
>


-- 
Best regards,
Andrey Kurilin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160224/6ccdf7a3/attachment.html>


More information about the OpenStack-dev mailing list