diff options
Diffstat (limited to 'networking_sfc/services/flowclassifier/common')
4 files changed, 95 insertions, 0 deletions
diff --git a/networking_sfc/services/flowclassifier/common/__init__.py b/networking_sfc/services/flowclassifier/common/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/networking_sfc/services/flowclassifier/common/__init__.py diff --git a/networking_sfc/services/flowclassifier/common/config.py b/networking_sfc/services/flowclassifier/common/config.py new file mode 100644 index 0000000..ed2496f --- /dev/null +++ b/networking_sfc/services/flowclassifier/common/config.py @@ -0,0 +1,27 @@ +# Copyright 2015 Futurewei. 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 oslo_config import cfg + + +FLOWCLASSIFIER_DRIVER_OPTS = [ + cfg.ListOpt('drivers', + default=['dummy'], + help=_("An ordered list of flow classifier drivers " + "entrypoints to be loaded from the " + "networking_sfc.flowclassifier.drivers namespace.")), +] + + +cfg.CONF.register_opts(FLOWCLASSIFIER_DRIVER_OPTS, "flowclassifier") diff --git a/networking_sfc/services/flowclassifier/common/context.py b/networking_sfc/services/flowclassifier/common/context.py new file mode 100644 index 0000000..d873077 --- /dev/null +++ b/networking_sfc/services/flowclassifier/common/context.py @@ -0,0 +1,37 @@ +# Copyright 2015 Futurewei. 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. + + +class FlowClassifierPluginContext(object): + """Flow Classifier context base class.""" + def __init__(self, plugin, plugin_context): + self._plugin = plugin + self._plugin_context = plugin_context + + +class FlowClassifierContext(FlowClassifierPluginContext): + + def __init__(self, plugin, plugin_context, flowclassifier, + original_flowclassifier=None): + super(FlowClassifierContext, self).__init__(plugin, plugin_context) + self._flowclassifier = flowclassifier + self._original_flowclassifier = original_flowclassifier + + @property + def current(self): + return self._flowclassifier + + @property + def original(self): + return self._original_flowclassifier diff --git a/networking_sfc/services/flowclassifier/common/exceptions.py b/networking_sfc/services/flowclassifier/common/exceptions.py new file mode 100644 index 0000000..9f186c0 --- /dev/null +++ b/networking_sfc/services/flowclassifier/common/exceptions.py @@ -0,0 +1,31 @@ +# Copyright 2015 Futurewei. 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. +"""Exceptions used by FlowClassifier plugin and drivers.""" + +from neutron.common import exceptions + + +class FlowClassifierDriverError(exceptions.NeutronException): + """flow classifier driver call failed.""" + message = _("%(method)s failed.") + + +class FlowClassifierException(exceptions.NeutronException): + """Base for flow classifier driver exceptions returned to user.""" + pass + + +class FlowClassifierBadRequest(exceptions.BadRequest, FlowClassifierException): + """Base for flow classifier driver bad request exceptions.""" + pass |