126 lines
4.7 KiB
Python
126 lines
4.7 KiB
Python
# 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 kuryr.tests.fullstack import kuryr_base
|
|
from kuryr import utils
|
|
|
|
|
|
class NetworkTest(kuryr_base.KuryrBaseTest):
|
|
"""Test Networks operation
|
|
|
|
Test networks creation/deletion from docker to Neutron
|
|
"""
|
|
def test_create_delete_network_with_kuryr_driver(self):
|
|
"""Create and Delete docker network with Kuryr
|
|
|
|
This method creates a docker network with Kuryr driver
|
|
and tests it was created in Neutron.
|
|
It then deletes the docker network and tests that it was
|
|
deleted from Neutron.
|
|
"""
|
|
fake_ipam = {
|
|
"Driver": "kuryr",
|
|
"Options": {},
|
|
"Config": [
|
|
{
|
|
"Subnet": "10.0.0.0/16",
|
|
"IPRange": "10.0.0.0/24",
|
|
"Gateway": "10.0.0.1"
|
|
}
|
|
]
|
|
}
|
|
net_name = utils.get_random_string(8)
|
|
res = self.docker_client.create_network(name=net_name, driver='kuryr',
|
|
ipam=fake_ipam)
|
|
net_id = res['Id']
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id))
|
|
self.assertEqual(1, len(network['networks']))
|
|
self.docker_client.remove_network(net_id)
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id))
|
|
self.assertEqual(0, len(network['networks']))
|
|
|
|
def test_create_delete_network_without_kuryr_driver(self):
|
|
"""Create and Delete docker network without Kuryr
|
|
|
|
This method create a docker network with the default
|
|
docker driver, It tests that it was created correctly, but
|
|
not added to Neutron
|
|
"""
|
|
net_name = utils.get_random_string(8)
|
|
res = self.docker_client.create_network(name=net_name)
|
|
net_id = res['Id']
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id))
|
|
self.assertEqual(0, len(network['networks']))
|
|
docker_networks = self.docker_client.networks()
|
|
network_found = False
|
|
for docker_net in docker_networks:
|
|
if docker_net['Id'] == net_id:
|
|
network_found = True
|
|
self.assertTrue(network_found)
|
|
self.docker_client.remove_network(net_id)
|
|
|
|
def test_create_network_with_same_name(self):
|
|
"""Create docker network with same name
|
|
|
|
Create two docker networks with same name,
|
|
delete them and see that neutron networks are
|
|
deleted as well
|
|
"""
|
|
fake_ipam_1 = {
|
|
"Driver": "kuryr",
|
|
"Options": {},
|
|
"Config": [
|
|
{
|
|
"Subnet": "10.1.0.0/16",
|
|
"IPRange": "10.1.0.0/24",
|
|
"Gateway": "10.1.0.1"
|
|
}
|
|
]
|
|
}
|
|
fake_ipam_2 = {
|
|
"Driver": "kuryr",
|
|
"Options": {},
|
|
"Config": [
|
|
{
|
|
"Subnet": "10.2.0.0/16",
|
|
"IPRange": "10.2.0.0/24",
|
|
"Gateway": "10.2.0.1"
|
|
}
|
|
]
|
|
}
|
|
net_name = utils.get_random_string(8)
|
|
res = self.docker_client.create_network(name=net_name, driver='kuryr',
|
|
ipam=fake_ipam_1)
|
|
net_id1 = res['Id']
|
|
|
|
res = self.docker_client.create_network(name=net_name, driver='kuryr',
|
|
ipam=fake_ipam_2)
|
|
net_id2 = res['Id']
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id1))
|
|
self.assertEqual(1, len(network['networks']))
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id2))
|
|
self.assertEqual(1, len(network['networks']))
|
|
self.docker_client.remove_network(net_id1)
|
|
self.docker_client.remove_network(net_id2)
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id1))
|
|
self.assertEqual(0, len(network['networks']))
|
|
network = self.neutron_client.list_networks(
|
|
tags=utils.make_net_tags(net_id2))
|
|
self.assertEqual(0, len(network['networks']))
|