1
# Copyright 2015 Hewlett-Packard Development Company, L.P.dsvsv
2
# Copyright 2015 OpenStack Foundation
5
# Licensed under the Apache License, Version 2.0 (the "License"); you may
6
# not use this file except in compliance with the License. You may obtain
7
# a copy of the License at
9
# http://www.apache.org/licenses/LICENSE-2.0
11
# Unless required by applicable law or agreed to in writing, software
12
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
# License for the specific language governing permissions and limitations
17
from neutron.tests.api import base
18
from neutron.tests.tempest import config
19
from neutron.tests.tempest import test
20
from tempest_lib.common.utils import data_utils
25
class SharedNetworksTest(base.BaseAdminNetworkTest):
28
def resource_setup(cls):
29
super(SharedNetworksTest, cls).resource_setup()
30
cls.shared_network = cls.create_shared_network()
32
@test.idempotent_id('6661d219-b96d-4597-ad10-55766ce4abf7')
33
def test_create_update_shared_network(self):
34
shared_network = self.create_shared_network()
35
net_id = shared_network['id']
36
self.assertEqual('ACTIVE', shared_network['status'])
37
self.assertIsNotNone(shared_network['id'])
38
self.assertTrue(self.shared_network['shared'])
39
new_name = "New_shared_network"
40
body = self.admin_client.update_network(net_id, name=new_name,
43
updated_net = body['network']
44
self.assertEqual(new_name, updated_net['name'])
45
self.assertFalse(updated_net['shared'])
46
self.assertFalse(updated_net['admin_state_up'])
48
@test.idempotent_id('9c31fabb-0181-464f-9ace-95144fe9ca77')
49
def test_create_port_shared_network_as_non_admin_tenant(self):
50
# create a port as non admin
51
body = self.client.create_port(network_id=self.shared_network['id'])
53
self.addCleanup(self.admin_client.delete_port, port['id'])
54
# verify the tenant id of admin network and non admin port
55
self.assertNotEqual(self.shared_network['tenant_id'],
58
@test.idempotent_id('3e39c4a6-9caf-4710-88f1-d20073c6dd76')
59
def test_create_bulk_shared_network(self):
60
# Creates 2 networks in one request
61
net_nm = [data_utils.rand_name('network'),
62
data_utils.rand_name('network')]
63
body = self.admin_client.create_bulk_network(net_nm, shared=True)
64
created_networks = body['networks']
65
for net in created_networks:
66
self.addCleanup(self.admin_client.delete_network, net['id'])
67
self.assertIsNotNone(net['id'])
68
self.assertTrue(net['shared'])
70
def _list_shared_networks(self, user):
71
body = user.list_networks(shared=True)
72
networks_list = [net['id'] for net in body['networks']]
73
self.assertIn(self.shared_network['id'], networks_list)
74
self.assertTrue(self.shared_network['shared'])
76
@test.idempotent_id('a064a9fd-e02f-474a-8159-f828cd636a28')
77
def test_list_shared_networks(self):
78
# List the shared networks and confirm that
79
# shared network extension attribute is returned for those networks
80
# that are created as shared
81
self._list_shared_networks(self.admin_client)
82
self._list_shared_networks(self.client)
84
def _show_shared_network(self, user):
85
body = user.show_network(self.shared_network['id'])
86
show_shared_net = body['network']
87
self.assertEqual(self.shared_network['name'], show_shared_net['name'])
88
self.assertEqual(self.shared_network['id'], show_shared_net['id'])
89
self.assertTrue(show_shared_net['shared'])
91
@test.idempotent_id('e03c92a2-638d-4bfa-b50a-b1f66f087e58')
92
def test_show_shared_networks_attribute(self):
93
# Show a shared network and confirm that
94
# shared network extension attribute is returned.
95
self._show_shared_network(self.admin_client)
96
self._show_shared_network(self.client)