meter_id contains postfix \n

Bug #1271530 reported by ZhiQiang Fan
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ceilometer
Fix Released
Low
Liusheng

Bug Description

# zypper pa | grep ceilometer-api
v | Havana | openstack-ceilometer-api | 2013.2.2.dev6.g16eb199-1.1 | x86_64

# ceilometer --debug meter-list -q resource=7e4efa20-a852-4995-b8f0-cdb104cadcaf

[{"user_id": "30aee73695744a6096e35fdab25b6766", "name": "volume.size", "resource_id": "7e4efa20-a852-4995-b8f0-cdb104cadcaf", "source": "openstack", "meter_id": "N2U0ZWZhMjAtYTg1Mi00OTk1LWI4ZjAtY2RiMTA0Y2FkY2FmK3ZvbHVtZS5zaXpl\n", "project_id": "313a8bc21b994e60b93d6fff7c1e0c1b", "type": "gauge", "unit": "GB"}, {"user_id": "30aee73695744a6096e35fdab25b6766", "name": "volume", "resource_id": "7e4efa20-a852-4995-b8f0-cdb104cadcaf", "source": "openstack", "meter_id": "N2U0ZWZhMjAtYTg1Mi00OTk1LWI4ZjAtY2RiMTA0Y2FkY2FmK3ZvbHVtZQ==\n", "project_id": "313a8bc21b994e60b93d6fff7c1e0c1b", "type": "gauge", "unit": "volume"}]

+-------------+-------+--------+--------------------------------------+----------------------------------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID |
+-------------+-------+--------+--------------------------------------+----------------------------------+----------------------------------+
| volume | gauge | volume | 7e4efa20-a852-4995-b8f0-cdb104cadcaf | 30aee73695744a6096e35fdab25b6766 | 313a8bc21b994e60b93d6fff7c1e0c1b |
| volume.size | gauge | GB | 7e4efa20-a852-4995-b8f0-cdb104cadcaf | 30aee73695744a6096e35fdab25b6766 | 313a8bc21b994e60b93d6fff7c1e0c1b |
+-------------+-------+--------+--------------------------------------+----------------------------------+----------------------------------+

ZhiQiang Fan (aji-zqfan)
Changed in ceilometer:
assignee: nobody → ZhiQiang Fan (aji-zqfan)
Revision history for this message
ZhiQiang Fan (aji-zqfan) wrote :

see: https://github.com/openstack/ceilometer/blob/master/ceilometer/api/controllers/v2.py#L857

        meter_id = base64.encodestring('%s+%s' % (kwargs['resource_id'],
                                                  kwargs['name']))
        kwargs['meter_id'] = meter_id
        super(Meter, self).__init__(**kwargs)

and here is a test:

    # python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06)
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import base64
    >>> base64.encodestring('test')
    'dGVzdA==\n'
    >>>

so problem is base64.encodestring always return a string with a postfix '\n',
see: http://docs.python.org/2/library/base64.html#base64.encodestring

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ceilometer (master)

Fix proposed to branch: master
Review: https://review.openstack.org/69333

Changed in ceilometer:
status: New → In Progress
ZhiQiang Fan (aji-zqfan)
Changed in ceilometer:
assignee: ZhiQiang Fan (aji-zqfan) → nobody
gordon chung (chungg)
Changed in ceilometer:
importance: Undecided → Low
status: In Progress → Triaged
Slawomir Gonet (sgonet)
Changed in ceilometer:
assignee: nobody → Slawomir Gonet (sgonet)
gordon chung (chungg)
Changed in ceilometer:
assignee: Slawomir Gonet (sgonet) → nobody
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/220901

Changed in ceilometer:
assignee: nobody → Liusheng (liusheng)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ceilometer (master)

Reviewed: https://review.openstack.org/220901
Committed: https://git.openstack.org/cgit/openstack/ceilometer/commit/?id=c8f4e4bef6b633d7c42ac24ed1ef7926fa4d3ac0
Submitter: Jenkins
Branch: master

commit c8f4e4bef6b633d7c42ac24ed1ef7926fa4d3ac0
Author: liu-sheng <email address hidden>
Date: Mon Sep 7 15:37:03 2015 +0800

    Use b64encode to replace of encodestring

    The encodestring() method is used to encode a string, and return a string
    containing one or more lines of base64-encoded data. For meter_id, the
    return is same as b64encode() method except an extra trailing newline
    ('\n').

    Change-Id: Ia14747ff0b4c643b33ed99da7fa422480f0f8095
    Closes-Bug: #1271530

Changed in ceilometer:
status: In Progress → Fix Committed
gordon chung (chungg)
Changed in ceilometer:
milestone: none → liberty-rc1
Thierry Carrez (ttx)
Changed in ceilometer:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ceilometer:
milestone: liberty-rc1 → 5.0.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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