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

Xav Paice xavpaice at gmail.com
Thu Feb 25 09:19:36 UTC 2016


On 24 February 2016 at 22:18, Andrey Kurilin <akurilin at mirantis.com> wrote:

> 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?
>
>
Sure - https://bugs.launchpad.net/python-novaclient/+bug/1494116


> 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.
>
> __________________________________________________________________________
> 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/20160225/cffe55b6/attachment.html>


More information about the OpenStack-dev mailing list