Ceilometer client Kilo region selection

Bug #1650613 reported by Davide
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-ceilometerclient
New
Undecided
Unassigned

Bug Description

In my multiregion infrastructure with KILO version, when i use ceilometer client (1.0.13) i noticed that it works with only the first region of the keystone catalog and ignore OS_REGION_NAME parameter.

example:
export OS_REGION_NAME=avalon1

ceilometer --debug --os-region-name avalon1 meter-list
DEBUG (v2) Making authentication request to https://api.stage.domain.com/v2.0/tokens
DEBUG (client) REQ: curl -g -i -X 'GET' 'https://ceilometer.atlantis1.stage.domain.com/v2/meters'

It ignore my region definition and use the first region of my catalog.

I found the bug in /usr/lib/python2.7/dist-packages/ceilometerclient/client.py in AuthPlugin class

class AuthPlugin(auth.BaseAuthPlugin):
    opt_names = ['tenant_id', 'region_name', 'auth_token',
                 'service_type', 'endpoint_type', 'cacert',
                 'auth_url', 'insecure', 'cert_file', 'key_file',
                 'cert', 'key', 'tenant_name', 'project_name',
                 'project_id', 'user_domain_id', 'user_domain_name',
                 'password', 'username', 'endpoint']

    def __init__(self, auth_system=None, **kwargs):
        self.opt_names.extend(self.common_opt_names)
        super(AuthPlugin, self).__init__(auth_system, **kwargs)

    def _do_authenticate(self, http_client):
        token = self.opts.get('token') or self.opts.get('auth_token')
        endpoint = self.opts.get('endpoint')
        if not (token and endpoint):
            project_id = (self.opts.get('project_id') or
                          self.opts.get('tenant_id'))
            project_name = (self.opts.get('project_name') or
                            self.opts.get('tenant_name'))
            ks_kwargs = {
                'username': self.opts.get('username'),
                'password': self.opts.get('password'),
                'user_id': self.opts.get('user_id'),
                'user_domain_id': self.opts.get('user_domain_id'),
                'user_domain_name': self.opts.get('user_domain_name'),
                'project_id': project_id,
                'project_name': project_name,
               ->>>>>>> 'region_name': self.opts.get('region_name'),
                'project_domain_name': self.opts.get('project_domain_name'),
                'project_domain_id': self.opts.get('project_domain_id'),
                'auth_url': self.opts.get('auth_url'),
                'cacert': self.opts.get('cacert'),
                'cert': self.opts.get('cert'),
                'key': self.opts.get('key'),
                'insecure': strutils.bool_from_string(
                    self.opts.get('insecure')),
                'endpoint_type': self.opts.get('endpoint_type'),
            }

'region_name' argument of ks_kwargs is not define. When i added client work properly.

Anyone can confirm this behavior?
Is it fixed in latest version?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.