virtual interface test cases added

Change-Id: I1fa3dfeda781b020fd11a70c336b4d7ab4145b3d
This commit is contained in:
Basavaraj Lamani 2018-11-16 18:32:01 +05:30
parent 1e1793559e
commit 2825fb2d55
2 changed files with 546 additions and 0 deletions

View File

@ -0,0 +1,546 @@
"""
Copyright 2018 Rackspace
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 cafe.drivers.unittest.decorators import tags
from cloudcafe.networking.networks.common.constants \
import NeutronResponseCodes
from cloudroast.networking.networks.fixtures import NetworkingComputeFixture
class TestCreateInterface(NetworkingComputeFixture):
NAMES_PREFIX = "virtual_interface"
@tags('smoke', 'positive')
def test_add_public_network_interface_with_isolated(self):
"""
Add public interface to server with only isolated network.
"""
public_id = self.public_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
self.delete_networks.append(network.id)
network_ids = [network.id]
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, public_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching public {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
public_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with isolated, and public {3} '
'networks').format(len(interface_list), 2, server.id, public_id)
self.assertEquals(len(interface_list), 2, msg)
@tags('positive')
def test_add_public_network_interface_with_private(self):
"""
Add public interface to server with only private network.
"""
public_id = self.public_network_id
private_id = self.service_network_id
network_ids = [private_id]
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, public_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching public {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
public_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with private, and public {3} '
'networks').format(len(interface_list), 2, server.id, public_id)
self.assertEquals(len(interface_list), 2, msg)
@tags('smoke', 'positive')
def test_add_private_network_interface_with_isolated(self):
"""
Add private interface to server with only isolated network.
"""
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
self.delete_networks.append(network.id)
network_ids = [network.id]
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, private_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching private {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
private_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with isolated, and private {3} '
'networks').format(
len(interface_list), 2, server.id, private_id)
self.assertEquals(len(interface_list), 2, msg)
@tags('smoke', 'positive')
def test_add_private_network_interface_with_public(self):
"""
Add private interface to server with only public network.
"""
private_id = self.service_network_id
public_id = self.public_network_id
network_ids = [public_id]
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, private_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching private {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
private_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with public, and private {3} '
'networks').format(
len(interface_list), 2, server.id, private_id)
self.assertEquals(len(interface_list), 2, msg)
@tags('smoke', 'positive')
def test_add_isolated_network_interface_with_public(self):
"""
Add isolated interface to server with only public network.
"""
public_id = self.public_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids = [public_id]
self.delete_networks.append(network.id)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, network.id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching isolated {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
network.id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with public, and isolated {3} '
'networks').format(
len(interface_list), 2, server.id, network.id)
self.assertEquals(len(interface_list), 2, msg)
@tags('positive')
def test_add_isolated_network_interface_with_private(self):
"""
Add isolated interface to server with only private network.
"""
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids = [private_id]
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, network.id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching isolated {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
network.id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with private, and isolated {3} '
'networks').format(
len(interface_list), 2, server.id, network.id)
self.assertEquals(len(interface_list), 2, msg)
@tags('smoke', 'positive')
def test_add_isolated_network_interface_with_public_and_private(self):
"""
Add isolated interface to server with public and private networks
"""
public_id = self.public_network_id
private_id = self.service_network_id
network_ids = [public_id, private_id]
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
self.delete_networks.append(network.id)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with Public and Private networks').format(
len(interface_list), 2, server.id)
self.assertEquals(len(interface_list), 2, msg)
response = self.compute.servers.client.create_virtual_interface(
server.id, network.id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching isolated {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
network.id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with Public, Private, and isolated {3} '
'networks').format(
len(interface_list), 3, server.id, network.id)
self.assertEquals(len(interface_list), 3, msg)
@tags('positive')
def test_add_public_network_interface_with_isolated_and_private(self):
"""
Add public interface to server with isolated and private network.
"""
public_id = self.public_network_id
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids = [network.id, private_id]
self.delete_networks.append(network.id)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with Isolated and Private '
'networks').format(len(interface_list), 2, server.id)
self.assertEquals(len(interface_list), 2, msg)
response = self.compute.servers.client.create_virtual_interface(
server.id, public_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching public {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
public_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with Private, isolated, and public {3} '
'networks').format(
len(interface_list), 3, server.id, public_id)
self.assertEquals(len(interface_list), 3, msg)
@tags('positive')
def test_add_private_network_interface_with_isolated_and_public(self):
"""
Add private interface to server with isolated and public network.
"""
public_id = self.public_network_id
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids = [network.id, public_id]
self.delete_networks.append(network.id)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with Public and Isolated '
'networks').format(len(interface_list), 2, server.id)
self.assertEquals(len(interface_list), 2, msg)
response = self.compute.servers.client.create_virtual_interface(
server.id, private_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching private {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
private_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with isolated, public, and private {3} '
'networks').format(
len(interface_list), 3, server.id, private_id)
self.assertEquals(len(interface_list), 3, msg)
@tags('positive')
def test_add_isolated_network_interface_with_five_networks(self):
"""
Add isolated interface to server with 5 networks, public, and private
"""
public_id = self.public_network_id
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
isolated_network = self.create_server_network(
name=network_name, ipv4=True)
required_networks = 5
network_ids = []
for i in range(1, required_networks+1):
network_name = 'network_{}_{i}'.format(self.NAMES_PREFIX, i=i)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids.append(network.id)
network_ids.append(public_id)
network_ids.append(private_id)
self.delete_networks.extend(network_ids)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, isolated_network.id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching isolated {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
isolated_network.id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with private, public, and isolated {3} '
'networks').format(
len(interface_list), 8, server.id, isolated_network.id)
self.assertEquals(len(interface_list), 8, msg)
@tags('positive')
def test_add_private_network_interface_with_six_networks(self):
"""
Add private interface to server with 6 networks and public
"""
public_id = self.public_network_id
private_id = self.service_network_id
required_networks = 6
network_ids = []
for i in range(1, required_networks+1):
network_name = 'network_{}_{i}'.format(self.NAMES_PREFIX, i=i)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids.append(network.id)
network_ids.append(public_id)
self.delete_networks.extend(network_ids)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, private_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching private {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
private_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with isolated, public, and private {3} '
'networks').format(
len(interface_list), 8, server.id, private_id)
self.assertEquals(len(interface_list), 8, msg)
@tags('positive')
def test_add_public_network_interface_with_six_networks(self):
"""
Add public interface to server with 6 networks and private
"""
public_id = self.public_network_id
private_id = self.service_network_id
required_networks = 6
network_ids = []
for i in range(1, required_networks+1):
network_name = 'network_{}_{i}'.format(self.NAMES_PREFIX, i=i)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids.append(network.id)
network_ids.append(private_id)
self.delete_networks.extend(network_ids)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, public_id)
msg = ('Unexpected Virtual Interface Create Response HTTP {0} instead '
'of HTTP {1} attaching public {2} network interface '
'at server {3}').format(
response.status_code, NeutronResponseCodes.CREATE_INTERFACE,
public_id, server.id)
self.assertEquals(response.status_code,
NeutronResponseCodes.CREATE_INTERFACE, msg)
response = self.compute.servers.client.list_virtual_interfaces(
server.id)
interface_list = response.entity
msg = ('Unexpected Virtual Interface Count {0} instead of {1}. '
'Expecting server {2} with isolated, private, and public {3} '
'networks').format(
len(interface_list), 8, server.id, private_id)
self.assertEquals(len(interface_list), 8, msg)
@tags('negative')
def test_add_existing_interfaces(self):
public_id = self.public_network_id
private_id = self.service_network_id
network_name = 'network_{0}'.format(self.NAMES_PREFIX)
network = self.create_server_network(name=network_name, ipv4=True)
network_ids = [public_id, private_id, network.id]
self.delete_networks.append(network.id)
keypair_name = 'key_{0}'.format(self.NAMES_PREFIX)
keypair = self.create_keypair(name=keypair_name)
self.delete_keypairs.append(keypair.name)
svr_name = 'svr_{0}'.format(self.NAMES_PREFIX)
server = self.create_test_server(
name=svr_name, key_name=keypair.name,
network_ids=network_ids, active_server=True)
self.delete_servers.append(server.id)
response = self.compute.servers.client.create_virtual_interface(
server.id, public_id)
self.assertEquals(response.status_code, 400,
'Existing public interface was allowed to be added')
response = self.compute.servers.client.create_virtual_interface(
server.id, private_id)
self.assertEquals(response.status_code, 400,
'Existing private interface was allowed to be added')
response = self.compute.servers.client.create_virtual_interface(
server.id, network.id)
self.assertEquals(
response.status_code, 400,
'Existing isolated interface was allowed to be added')