9d69822e43
This patch implements the "default" behaviour for QoS policies. If this flag is enabled for a QoS policy in a project, all new networks created will have this QoS policy assigned by default. If a new QoS policy is created or updated with this flag and another QoS policy in the same project is set as the default policy, the new one won't be created or updated. To set another QoS policy as default, the current one must be unset. DocImpact: A "default" flag is introduced for QoS policies. If this flag is enabled in a QoS policy (attached to a project), then all networks created in this project would have this QoS policy assigned, unless an explicit policy is specified. APIImpact Closes-Bug: #1639220 Change-Id: If5ff2b00fa828f93aa089e275ddbd1ff542b79d4
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
# Copyright (c) 2015 Red Hat Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
|
|
import abc
|
|
|
|
import six
|
|
|
|
|
|
NETWORK = 'network'
|
|
PORT = 'port'
|
|
EVENT_CREATE = 'create'
|
|
EVENT_UPDATE = 'update'
|
|
|
|
|
|
CORE_RESOURCES = [NETWORK, PORT]
|
|
|
|
|
|
@six.add_metaclass(abc.ABCMeta)
|
|
class CoreResourceExtension(object):
|
|
|
|
@abc.abstractmethod
|
|
def process_fields(self, context, resource_type, event_type,
|
|
requested_resource, actual_resource):
|
|
"""Process extension fields.
|
|
|
|
:param context: neutron api request context
|
|
:param resource_type: core resource type (one of CORE_RESOURCES)
|
|
:param event_type: kind of event triggering this action (update,
|
|
create)
|
|
:param requested_resource: resource dict that contains extension fields
|
|
:param actual_resource: actual resource dict known to plugin
|
|
"""
|
|
|
|
@abc.abstractmethod
|
|
def extract_fields(self, resource_type, resource):
|
|
"""Extract extension fields.
|
|
|
|
:param resource_type: core resource type (one of CORE_RESOURCES)
|
|
:param resource: resource dict that contains extension fields
|
|
"""
|