QoS service plugin stub

This patch introduces the QoS service plugin which implements
a stub of the API extension.

This is patch is a basic step to be able to create an experimental
job enabling this service so we can do api tests.

Change-Id: Ib583e98c232ca628ba2a4bd48527eb84584c6212
This commit is contained in:
Miguel Angel Ajo 2015-06-19 16:45:13 +02:00
parent 96d1cb1ae2
commit 2ff19be1db
6 changed files with 91 additions and 3 deletions

View File

View File

@ -75,7 +75,7 @@
# of its entrypoint name.
#
# service_plugins =
# Example: service_plugins = router,firewall,lbaas,vpnaas,metering
# Example: service_plugins = router,firewall,lbaas,vpnaas,metering,qos
# Paste configuration file
# api_paste_config = api-paste.ini

View File

@ -32,12 +32,13 @@ EXT_TO_SERVICE_MAPPING = {
'fwaas': FIREWALL,
'vpnaas': VPN,
'metering': METERING,
'router': L3_ROUTER_NAT
'router': L3_ROUTER_NAT,
'qos': QOS,
}
# TODO(salvatore-orlando): Move these (or derive them) from conf file
ALLOWED_SERVICES = [CORE, DUMMY, LOADBALANCER, FIREWALL, VPN, METERING,
L3_ROUTER_NAT, LOADBALANCERV2]
L3_ROUTER_NAT, LOADBALANCERV2, QOS]
COMMON_PREFIXES = {
CORE: "",
@ -48,6 +49,7 @@ COMMON_PREFIXES = {
VPN: "/vpn",
METERING: "/metering",
L3_ROUTER_NAT: "",
QOS: "/qos",
}
# Service operation status constants

View File

View File

@ -0,0 +1,85 @@
# 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.
from neutron.extensions import qos
class QoSPlugin(qos.QoSPluginBase):
"""Implementation of the Neutron QoS Service Plugin.
This class implements a Quality of Service plugin that
provides quality of service parameters over ports and
networks.
"""
supported_extension_aliases = ['qos']
def __init__(self):
super(QoSPlugin, self).__init__()
#self.register_rpc()
#self.register_port_callbacks()
#self.register_net_callbacks()
def register_rpc(self):
# RPC support
# TODO(ajo): register ourselves to the generic RPC framework
# so we will provide QoS information for ports and
# networks.
pass
def register_port_callbacks(self):
# TODO(qos): Register the callbacks to properly manage
# extension of resources
pass
def register_net_callbacks(self):
# TODO(qos): Register the callbacks to properly manage
# extension of resources
pass
def create_qos_policy(self, context, qos_policy):
pass
def update_qos_policy(self, context, qos_policy_id, qos_policy):
pass
def delete_qos_policy(self, context, qos_policy_id):
pass
def get_qos_policy(self, context, qos_policy_id, fields=None):
pass
def get_qos_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
pass
def create_qos_bandwidth_limit_rule(self, context,
qos_bandwidthlimit_rule):
pass
def update_qos_bandwidth_limit_rule(self, context, rule_id, rule):
pass
def get_qos_bandwidth_limit_rule(self, context, rule_id, fields=None):
pass
def delete_qos_bandwith_limit_rule(self, context, rule_id):
pass
def get_qos_bandwith_limit_rules(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
pass

View File

@ -143,6 +143,7 @@ neutron.service_plugins =
neutron.services.loadbalancer.plugin.LoadBalancerPlugin = neutron_lbaas.services.loadbalancer.plugin:LoadBalancerPlugin
neutron.services.vpn.plugin.VPNDriverPlugin = neutron_vpnaas.services.vpn.plugin:VPNDriverPlugin
ibm_l3 = neutron.services.l3_router.l3_sdnve:SdnveL3ServicePlugin
qos = neutron.services.qos.qos_plugin:QoSPlugin
neutron.service_providers =
# These are for backwards compat with Juno firewall service provider configuration values
neutron.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver = neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas:IptablesFwaasDriver