b5990a7bd7
The cfg API is now available via the oslo-config library, so switch to it and remove the copied-and-pasted version. Add the 2013.1b3 tarball to tools/pip-requires - this will be changed to 'oslo-config>=2013.1' when oslo-config is published to pypi. This will happen in time for grizzly final. Remove the 'deps = pep8' from tox.ini as it means all the other deps get installed with easy_install which can't install oslo-config from the URL. Retain dummy cfg.py file until keystoneclient middleware has been updated (I18c450174277c8e2d15ed93879da6cd92074c27a). Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
86 lines
3.4 KiB
Python
86 lines
3.4 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
# Copyright 2013 NEC Corporation
|
|
# 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.
|
|
#
|
|
# @author: Akihiro Motoki, NEC Corporation
|
|
#
|
|
|
|
import contextlib
|
|
|
|
from oslo.config import cfg
|
|
|
|
from quantum import context
|
|
from quantum.extensions import portbindings
|
|
from quantum.manager import QuantumManager
|
|
from quantum.tests.unit import test_db_plugin
|
|
|
|
|
|
class PortBindingsTestCase(test_db_plugin.QuantumDbPluginV2TestCase):
|
|
|
|
# VIF_TYPE must be overridden according to plugin vif_type
|
|
VIF_TYPE = portbindings.VIF_TYPE_OTHER
|
|
# The plugin supports the port security feature such as
|
|
# security groups and anti spoofing.
|
|
HAS_PORT_FILTER = False
|
|
|
|
def _check_response_portbindings(self, port):
|
|
self.assertEqual(port['binding:vif_type'], self.VIF_TYPE)
|
|
port_cap = port[portbindings.CAPABILITIES]
|
|
self.assertEqual(port_cap[portbindings.CAP_PORT_FILTER],
|
|
self.HAS_PORT_FILTER)
|
|
|
|
def _check_response_no_portbindings(self, port):
|
|
self.assertTrue('status' in port)
|
|
self.assertFalse(portbindings.VIF_TYPE in port)
|
|
self.assertFalse(portbindings.CAPABILITIES in port)
|
|
|
|
def test_port_vif_details(self):
|
|
plugin = QuantumManager.get_plugin()
|
|
with self.port(name='name') as port:
|
|
port_id = port['port']['id']
|
|
# Check a response of create_port
|
|
self._check_response_portbindings(port['port'])
|
|
# Check a response of get_port
|
|
ctx = context.get_admin_context()
|
|
port = plugin.get_port(ctx, port_id)
|
|
self._check_response_portbindings(port)
|
|
# By default user is admin - now test non admin user
|
|
ctx = context.Context(user_id=None,
|
|
tenant_id=self._tenant_id,
|
|
is_admin=False,
|
|
read_deleted="no")
|
|
non_admin_port = plugin.get_port(ctx, port_id)
|
|
self._check_response_no_portbindings(non_admin_port)
|
|
|
|
def test_ports_vif_details(self):
|
|
plugin = QuantumManager.get_plugin()
|
|
cfg.CONF.set_default('allow_overlapping_ips', True)
|
|
with contextlib.nested(self.port(), self.port()):
|
|
ctx = context.get_admin_context()
|
|
ports = plugin.get_ports(ctx)
|
|
self.assertEqual(len(ports), 2)
|
|
for port in ports:
|
|
self._check_response_portbindings(port)
|
|
# By default user is admin - now test non admin user
|
|
ctx = context.Context(user_id=None,
|
|
tenant_id=self._tenant_id,
|
|
is_admin=False,
|
|
read_deleted="no")
|
|
ports = plugin.get_ports(ctx)
|
|
self.assertEqual(len(ports), 2)
|
|
for non_admin_port in ports:
|
|
self._check_response_no_portbindings(non_admin_port)
|