neutron/neutron/extensions/metering_source_and_destination_fields.py
Rafael Weingärtner 10091f9346 Add source_ip_prefix and destination_ip_prefix to metering label rules
As proposed in the RFE and then approved in the spec, we are adding to
the neutron metering rules two new parameters. The source IP prefix, and
destination IP prefix.

Partially-Implements: https://bugs.launchpad.net/neutron/+bug/1889431
RFE: https://bugs.launchpad.net/neutron/+bug/1889431

Depends-On: https://review.opendev.org/#/c/746203/
Depends-On: https://review.opendev.org/#/c/744702/
Depends-On: https://review.opendev.org/#/c/743828/
Depends-On: https://review.opendev.org/#/c/746142/

Change-Id: I38991de2b4937becd0f1f14f3a32dc39c590e0d9
2020-09-29 09:06:03 -03:00

43 lines
1.6 KiB
Python

# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib.api.definitions import metering_source_and_destination_filters
from neutron_lib.api import extensions
class Metering_source_and_destination_fields(
extensions.APIExtensionDescriptor):
api_definition = metering_source_and_destination_filters
@classmethod
def get_extended_resources(cls, version):
sub_resource_map = super(Metering_source_and_destination_fields, cls
).get_extended_resources(version)
processed_sub_resource_map = {}
for value in sub_resource_map.values():
parent_def = value['parent']
collection_name = parent_def['collection_name']
member_name = parent_def['member_name']
if collection_name == member_name:
processed_sub_resource_map[
collection_name] = value['parameters']
else:
processed_sub_resource_map[
collection_name] = {member_name: value['parameters']}
return processed_sub_resource_map