# 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 |
+-------------+-------+--------+--------------------------------------+----------------------------------+----------------------------------+
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 encodestring( 'test')
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.
'dGVzdA==\n'
>>>
so problem is base64.encodestring always return a string with a postfix '\n', docs.python. org/2/library/ base64. html#base64. encodestring
see: http://