264a609526
Nuage networks’ openstack networking plugin enables integration of openstack with Nuage Networks’ Virtual Service Platform (VSP) Change-Id: If20b385b78a350cb9aae2c70b6a44888e74c23bc Implements: blueprint nuage-networks-plugin
94 lines
3.3 KiB
Python
94 lines
3.3 KiB
Python
# Copyright 2014 Alcatel-Lucent USA Inc.
|
|
#
|
|
# 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: Ronak Shah, Nuage Networks, Alcatel-Lucent USA Inc.
|
|
|
|
import contextlib
|
|
import uuid
|
|
import webob.exc
|
|
|
|
from neutron.plugins.nuage.extensions import netpartition as netpart_ext
|
|
from neutron.tests.unit.nuage import test_nuage_plugin
|
|
from neutron.tests.unit import test_extensions
|
|
|
|
|
|
class NetPartitionTestExtensionManager(object):
|
|
def get_resources(self):
|
|
return netpart_ext.Netpartition.get_resources()
|
|
|
|
def get_actions(self):
|
|
return []
|
|
|
|
def get_request_extensions(self):
|
|
return []
|
|
|
|
|
|
class NetPartitionTestCase(test_nuage_plugin.NuagePluginV2TestCase):
|
|
def setUp(self):
|
|
ext_mgr = NetPartitionTestExtensionManager()
|
|
super(NetPartitionTestCase, self).setUp()
|
|
self.ext_api = test_extensions.setup_extensions_middleware(ext_mgr)
|
|
|
|
def _make_netpartition(self, fmt, name):
|
|
data = {
|
|
'net_partition': {
|
|
'name': name,
|
|
'tenant_id': uuid.uuid4()
|
|
}
|
|
}
|
|
netpart_req = self.new_create_request('net-partitions', data, fmt)
|
|
resp = netpart_req.get_response(self.ext_api)
|
|
if resp.status_int >= webob.exc.HTTPClientError.code:
|
|
raise webob.exc.HTTPClientError(code=resp.status_int)
|
|
return self.deserialize(fmt, resp)
|
|
|
|
def _del_netpartition(self, id):
|
|
self._delete('net-partitions', id)
|
|
|
|
@contextlib.contextmanager
|
|
def netpartition(self, name='netpartition1',
|
|
do_delete=True,
|
|
fmt=None,
|
|
**kwargs):
|
|
netpart = self._make_netpartition(fmt or self.fmt, name)
|
|
|
|
try:
|
|
yield netpart
|
|
finally:
|
|
if do_delete:
|
|
self._del_netpartition(netpart['net_partition']['id'])
|
|
|
|
def test_create_netpartition(self):
|
|
name = 'netpart1'
|
|
keys = [('name', name)]
|
|
with self.netpartition(name=name) as netpart:
|
|
for k, v in keys:
|
|
self.assertEqual(netpart['net_partition'][k], v)
|
|
|
|
def test_delete_netpartition(self):
|
|
name = 'netpart1'
|
|
netpart = self._make_netpartition(self.fmt, name)
|
|
req = self.new_delete_request('net-partitions',
|
|
netpart['net_partition']['id'])
|
|
res = req.get_response(self.ext_api)
|
|
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code)
|
|
|
|
def test_show_netpartition(self):
|
|
with self.netpartition(name='netpart1') as npart:
|
|
req = self.new_show_request('net-partitions',
|
|
npart['net_partition']['id'])
|
|
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
|
|
self.assertEqual(res['net_partition']['name'],
|
|
npart['net_partition']['name'])
|