Change-Id: Idccd48636c09d6a009aa18e7ffe61f1d73724951
3.3 KiB
Extend management features of L3 metering API
Launchpad blueprint:
https://blueprints.launchpad.net/neutron/+spec/l3-metering-mgnt-ext
This blueprint aims to extend the current metering API in order to help administrators to manage the metering labels/rules.
Problem description
Currently the administrator has to associate metering label for each tenant by the hand, there is no way to add a default metering label/rules which will be automaticaly associated with all current tenants and also with the tenants that will be created.
Use cases:
- The administrator wants to get traffic counters from the public for a billing purpose for all current tenants and for the future tenants. Currently each time a tenant is added the administrator has to create a new label for it.
- The administrator wants to get traffic counters from service networks for monitoring purpose, for instance from a provider network which exposes physical resources (ex: db, storage)
Proposed change
The goal is to extend the current API to add an extra parameter for the labels creation which specifies whether the label will be shared by all tenants or not. A such label will be shared by all current tenants and also by the tenants which will be created.
Alternatives
An alternative could be to add an extra configuration file which set some metering labels/rules at the metering agent startup.
Data model impact
An extra field will be added to the MeteringLabel data model to specify whether a label is shared or not. By default a metering label will be not shared. The current labels will be unchanged.
REST API impact
A new shared attribute will be introduced to the current MeteringLabel model:
Attribute Name | Type | Access | Default Value | Validation/ Conversion | Description |
---|---|---|---|---|---|
shared | bool | RW, admin | false | N/A |
Security impact
No change, only admin users are allowed to create/delete labels/rules.
Notifications impact
None
Other end user impact
The shared parameter will be exposed to the end user through the neutron client, ex:
neutron meter-label-create testlabel --shared
Performance Impact
None
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
Sylvain Afchain <sylvain-afchain>
Work Items
The work is split up into two parts:
- API, Data model, Metering service plugin.
- Neutron client update.
Dependencies
None
Testing
For tempest test coverage, new API tests for the shared parameter will be provided.
Documentation Impact
Documentation and examples for the shared parameter will be provided.
References
None