Ubuntu 22.04
Sponsored Link

OpenStack Bobcat : How to use CloudKitty2023/10/10

 
This is how to use OpenStack Rating Service (CloudKitty).
This example is based on the environment like follows.
------------+--------------------------+--------------------------+------------
            |                          |                          |
        eth0|10.0.0.30             eth0|10.0.0.50             eth0|10.0.0.51
+-----------+-----------+  +-----------+-----------+  +-----------+-----------+
|   [ dlp.srv.world ]   |  | [ network.srv.world ] |  |  [ node01.srv.world ] |
|     (Control Node)    |  |     (Network Node)    |  |     (Compute Node)    |
|                       |  |                       |  |                       |
|  MariaDB    RabbitMQ  |  |      Open vSwitch     |  |        Libvirt        |
|  Memcached  Nginx     |  |     Neutron Server    |  |      Nova Compute     |
|  Keystone   httpd     |  |      OVN-Northd       |  |      Open vSwitch     |
|  Glance     Nova API  |  |  Nginx  iSCSI Target  |  |   OVN Metadata Agent  |
|  Cinder API           |  |     Cinder Volume     |  |     OVN-Controller    |
|                       |  |     Gnocchi httpd     |  |   Ceilometer Compute  |
|                       |  |   Ceilometer Central  |  |                       |
|                       |  |     CloudKitty API    |  |                       |
+-----------------------+  +-----------------------+  +-----------------------+

[1] Add [cloudkitty] user in [rating] role for each project that you like to rate.
root@dlp ~(keystone)#
openstack project list

+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 04b6d7802d9043cbb09ceb31fd68987b | service   |
| 39e8c6d7a2d14ee581902f0703a53b66 | admin     |
| f30cd546632e484cb24414d83207694b | hiroshima |
+----------------------------------+-----------+

root@dlp ~(keystone)#
openstack role add --user cloudkitty --project hiroshima rating

[2] Enable [Hashmap] module.
root@dlp ~(keystone)#
openstack rating module list

+-----------+---------+----------+
| Module    | Enabled | Priority |
+-----------+---------+----------+
| hashmap   | False   |        1 |
| noop      | True    |        1 |
| pyscripts | False   |        1 |
+-----------+---------+----------+

root@dlp ~(keystone)#
openstack rating module enable hashmap

+---------+---------+----------+
| Module  | Enabled | Priority |
+---------+---------+----------+
| hashmap | True    |        1 |
+---------+---------+----------+

root@dlp ~(keystone)#
openstack rating module list

+-----------+---------+----------+
| Module    | Enabled | Priority |
+-----------+---------+----------+
| hashmap   | True    |        1 |
| noop      | True    |        1 |
| pyscripts | False   |        1 |
+-----------+---------+----------+
[3] Set rate to Instance Uptime.
When users in the project set on [1] create and start instances with [flavor_id] you set, target project is charged at the rate you set every interval of the [period] you set in [cloudkitty.conf].
# add service matching rule

root@dlp ~(keystone)#
openstack rating hashmap service create instance

+----------+--------------------------------------+
| Name     | Service ID                           |
+----------+--------------------------------------+
| instance | f60a859f-bb07-47db-abc5-8b22107a592b |
+----------+--------------------------------------+

# add field matching rule

root@dlp ~(keystone)#
openstack rating hashmap field create f60a859f-bb07-47db-abc5-8b22107a592b flavor_id

+-----------+--------------------------------------+--------------------------------------+
| Name      | Field ID                             | Service ID                           |
+-----------+--------------------------------------+--------------------------------------+
| flavor_id | 5a7250d8-8ed5-4c11-8557-4528f4d5eb03 | f60a859f-bb07-47db-abc5-8b22107a592b |
+-----------+--------------------------------------+--------------------------------------+

root@dlp ~(keystone)#
openstack flavor list

+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.small  | 2048 |   10 |         0 |     1 | True      |
| 2  | m1.medium | 4096 |   10 |         0 |     2 | True      |
| 3  | m1.large  | 8192 |   10 |         0 |     4 | True      |
| 4  | m2.large  | 8192 |   20 |         0 |     4 | True      |
+----+-----------+------+------+-----------+-------+-----------+

# add mapping rule
# set a cost of [0.5] to instances with [flavor_id] = [2]
root@dlp ~(keystone)# openstack rating hashmap mapping create 0.5 \
--field-id 5a7250d8-8ed5-4c11-8557-4528f4d5eb03 \
--value 2 -t flat 
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
| Mapping ID                           | Value | Cost                           | Type | Field ID                             | Service ID | Group ID | Project ID |
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
| c5af95aa-1e83-40fe-b57b-67cd5c052c5d | 2     | 0.5000000000000000000000000000 | flat | 5a7250d8-8ed5-4c11-8557-4528f4d5eb03 | None       | None     | None       |
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
[4] Verify settings with an user who is in the project you set on [1] to create or start an instance.
ubuntu@dlp ~(keystone)$
openstack server list

+--------------------------------------+-------------+---------+------------------------------------+------------+-----------+
| ID                                   | Name        | Status  | Networks                           | Image      | Flavor    |
+--------------------------------------+-------------+---------+------------------------------------+------------+-----------+
| 530698ed-413e-4bda-b02e-8f6f60380bd1 | Ubuntu-2204 | SHUTOFF | private=10.0.0.222, 192.168.100.79 | Ubuntu2204 | m1.medium |
+--------------------------------------+-------------+---------+------------------------------------+------------+-----------+
ubuntu@dlp ~(keystone)$
openstack server start Ubuntu-2204
# after a certain period of time, costs are charged

ubuntu@dlp ~(keystone)$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| f30cd546632e484cb24414d83207694b | ALL           | 0.5  | 2023-10-01T00:00:00 | 2023-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

# if the instance continues to run, costs are charged every [period] of time

ubuntu@dlp ~(keystone)$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| f30cd546632e484cb24414d83207694b | ALL           | 1.0  | 2023-10-01T00:00:00 | 2023-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

# display data frames

ubuntu@dlp ~(keystone)$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------
| Begin               | End                 | Project ID                       
+---------------------+---------------------+----------------------------------
| 2023-10-10T00:10:00 | 2023-10-10T00:20:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:30:00 | 2023-10-10T00:40:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:50:00 | 2023-10-10T01:00:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:00:00 | 2023-10-10T01:10:00 | f30cd546632e484cb24414d83207694b 
+---------------------+---------------------+----------------------------------
+-------------------------------------------------------------------------------------------------------------
| Resources                                                                                                   
+-------------------------------------------------------------------------------------------------------------
| [{'rating': '0.0', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': ''
| [{'rating': '0.0', 'service': 'volume.size', 'desc': {'volume_type': '05118a15-3b8d-44cd-aa39-d85c1611a863',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': ''
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': ''
+-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
                                                                                                 
-------------------------------------------------------------------------------------------------
, 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b',
 'id': '26cfb920-601e-458d-b09c-c207a1852f8b', 'project_id': 'f30cd546632e484cb24414d83207694b', 
, 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b',
, 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b',
-------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------+
                                                                                                                                            |
--------------------------------------------------------------------------------------------------------------------------------------------+
 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.0000'}]   |
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
--------------------------------------------------------------------------------------------------------------------------------------------+
[5] Set rate to Volume Size.
When users in the project set on [1] create cinder volumes, target project is charged at the rate you set per gigabyte.
# add service matching rule

root@dlp ~(keystone)#
openstack rating hashmap service create volume.size

+-------------+--------------------------------------+
| Name        | Service ID                           |
+-------------+--------------------------------------+
| volume.size | a4a3ce1d-bea0-44d3-b9e2-467f441d7d7c |
+-------------+--------------------------------------+

# add mapping rule
# set a cost of [1.5] per gigabyte
root@dlp ~(keystone)# openstack rating hashmap mapping create 1.5 \
-s a4a3ce1d-bea0-44d3-b9e2-467f441d7d7c \
-t flat 
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| Mapping ID                           | Value | Cost                           | Type | Field ID | Service ID                           | Group ID | Project ID |
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| 4fb844b7-513c-4303-b090-bb4f345b5dfc | None  | 1.5000000000000000000000000000 | flat | None     | a4a3ce1d-bea0-44d3-b9e2-467f441d7d7c | None     | None       |
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+

# set a 10% discount on over 30 GB volumes
root@dlp ~(keystone)# openstack rating hashmap threshold create 30 0.90 \
-s a4a3ce1d-bea0-44d3-b9e2-467f441d7d7c \
-t rate 
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| Threshold ID                         | Level       | Cost                           | Type | Field ID | Service ID                           | Group ID | Project ID |
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| a7c75b4d-f44f-40d3-b4e6-e50e0e3c4312 | 30.00000000 | 0.9000000000000000222044604925 | rate | None     | a4a3ce1d-bea0-44d3-b9e2-467f441d7d7c | None     | None       |
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
[6] Verify settings with an user who is in the project you set on [1] to create volumes.
ubuntu@dlp ~(keystone)$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| f30cd546632e484cb24414d83207694b | ALL           | 2.0  | 2023-10-01T00:00:00 | 2023-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

ubuntu@dlp ~(keystone)$ openstack volume create --size 10 disk01 

ubuntu@dlp ~(keystone)$
openstack volume list

+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 2acf2d5c-6eb5-4518-9866-68cf963a4438 | disk01 | available |   10 |             |
+--------------------------------------+--------+-----------+------+-------------+

# after a certain period of time, costs are charged

ubuntu@dlp ~(keystone)$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| f30cd546632e484cb24414d83207694b | ALL           | 17.0 | 2023-10-01T00:00:00 | 2023-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

ubuntu@dlp ~(keystone)$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------
| Begin               | End                 | Project ID                       
+---------------------+---------------------+----------------------------------
| 2023-10-10T00:10:00 | 2023-10-10T00:20:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:30:00 | 2023-10-10T00:40:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:50:00 | 2023-10-10T01:00:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:00:00 | 2023-10-10T01:10:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:10:00 | 2023-10-10T01:20:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:20:00 | 2023-10-10T01:30:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:30:00 | 2023-10-10T01:40:00 | f30cd546632e484cb24414d83207694b 
+---------------------+---------------------+----------------------------------
+--------------------------------------------------------------------------------------------------------------
| Resources                                                                                                    
+--------------------------------------------------------------------------------------------------------------
| [{'rating': '0.0', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': '',
| [{'rating': '0.0', 'service': 'volume.size', 'desc': {'volume_type': '05118a15-3b8d-44cd-aa39-d85c1611a863', 
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 'flavor_id': '2', 'vcpus': '',
| [{'rating': '15.0', 'service': 'volume.size', 'desc': {'volume_type': '__DEFAULT__', 'id': '2acf2d5c-6eb5-451
+--------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
                                                                                                 
-------------------------------------------------------------------------------------------------
 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b', 
'id': '26cfb920-601e-458d-b09c-c207a1852f8b', 'project_id': 'f30cd546632e484cb24414d83207694b', '
 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b', 
 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b', 
 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b', 
 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id': 'f30cd546632e484cb24414d83207694b', 
8-9866-68cf963a4438', 'project_id': 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------+
                                                                                                                                           |
-------------------------------------------------------------------------------------------------------------------------------------------+
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.0000'}]   |
user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
bbea8fb5ecca6381f72', 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1E+1', 'rate_value': '1.5000'}]                         |
-------------------------------------------------------------------------------------------------------------------------------------------+

ubuntu@dlp ~(keystone)$
openstack volume create --size 30 disk02

ubuntu@dlp ~(keystone)$
openstack volume list

+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| cf06eba5-67ad-4a5a-bafe-07e0c1e023ab | disk02 | available |   30 |             |
| 2acf2d5c-6eb5-4518-9866-68cf963a4438 | disk01 | available |   10 |             |
+--------------------------------------+--------+-----------+------+-------------+

# after a certain period of time, costs are charged
# 1.5 x 30 x 0.9 = 40.5

ubuntu@dlp ~(keystone)$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| f30cd546632e484cb24414d83207694b | ALL           | 57.5 | 2023-10-01T00:00:00 | 2023-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

ubuntu@dlp ~(keystone)$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------
| Begin               | End                 | Project ID                       
+---------------------+---------------------+----------------------------------
| 2023-10-10T00:10:00 | 2023-10-10T00:20:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:30:00 | 2023-10-10T00:40:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T00:50:00 | 2023-10-10T01:00:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:00:00 | 2023-10-10T01:10:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:10:00 | 2023-10-10T01:20:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:20:00 | 2023-10-10T01:30:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:30:00 | 2023-10-10T01:40:00 | f30cd546632e484cb24414d83207694b 
| 2023-10-10T01:50:00 | 2023-10-10T02:00:00 | f30cd546632e484cb24414d83207694b 
+---------------------+---------------------+----------------------------------
+--------------------------------------------------------------------------------
| Resources                                                                      
+--------------------------------------------------------------------------------
| [{'rating': '0.0', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 
| [{'rating': '0.0', 'service': 'volume.size', 'desc': {'volume_type': '05118a15-
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.medium', 
| [{'rating': '15.0', 'service': 'volume.size', 'desc': {'volume_type': '__DEFAUL
| [{'rating': '40.5', 'service': 'volume.size', 'desc': {'volume_type': '__DEFAUL
+--------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
                                                                                          
------------------------------------------------------------------------------------------
'flavor_id': '2', 'vcpus': '', 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id':
3b8d-44cd-aa39-d85c1611a863', 'id': '26cfb920-601e-458d-b09c-c207a1852f8b', 'project_id': 
'flavor_id': '2', 'vcpus': '', 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id':
'flavor_id': '2', 'vcpus': '', 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id':
'flavor_id': '2', 'vcpus': '', 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id':
'flavor_id': '2', 'vcpus': '', 'id': '530698ed-413e-4bda-b02e-8f6f60380bd1', 'project_id':
T__', 'id': '2acf2d5c-6eb5-4518-9866-68cf963a4438', 'project_id': 'f30cd546632e484cb24414d
T__', 'id': 'cf06eba5-67ad-4a5a-bafe-07e0c1e023ab', 'project_id': 'f30cd546632e484cb24414d
------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
                                                                                   
-----------------------------------------------------------------------------------
 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72',
'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 
 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72',
 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72',
 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72',
 'f30cd546632e484cb24414d83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72',
83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd54663
83207694b', 'user_id': '470c9323dad64bbea8fb5ecca6381f72', 'tenant_id': 'f30cd54663
-----------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
                                                                                             |
---------------------------------------------------------------------------------------------+
 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.0000'}]   |
'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
 'tenant_id': 'f30cd546632e484cb24414d83207694b'}, 'volume': '1', 'rate_value': '0.5000'}]   |
2e484cb24414d83207694b'}, 'volume': '1E+1', 'rate_value': '1.5000'}]                         |
2e484cb24414d83207694b'}, 'volume': '3E+1', 'rate_value': '1.3500'}]                         |
---------------------------------------------------------------------------------------------+
Matched Content