def test_nuage_update_port_with_dhcp_opts_multiple_times_neg(self):
        # When specifying the the same option multiple times, it should fail
        extra_dhcp_opts = [{
            'opt_value': '19.20.30.40',
            'opt_name': 'router'
        }, {
            'opt_value': '19.20.30.41',
            'opt_name': 'router'
        }, {
            'opt_value': '19.20.30.42',
            'opt_name': 'router'
        }, {
            'opt_value': '19.20.30.43',
            'opt_name': 'router'
        }, {
            'opt_value': '19.20.30.44',
            'opt_name': 'router'
        }]

        if Topology.from_openstack('Newton') and Topology.is_ml2:
            self.assertRaises(exceptions.Conflict,
                              self._update_port_with_dhcp_opts,
                              self.os_l2_port['id'], extra_dhcp_opts)
        else:
            self.assertRaises(exceptions.BadRequest,
                              self._update_port_with_dhcp_opts,
                              self.os_l2_port['id'], extra_dhcp_opts)
コード例 #2
0
    def test_upgrade(self):
        #   ----------------------------------------------------   #
        #
        #   T H I S   I S   T H E   T E S T
        #
        #   Mind : there can be only one upgrade test!
        #   ----------------------------------------------------   #

        # Alembic migration is expected from Ussuri onwards
        self._test_upgrade(alembic_expected=Topology.from_openstack('Ussuri'))
 def setUp(self):
     super(TestNuageDomainTunnelTypeAsTenantCli, self).setUp()
     if Topology.from_openstack('liberty'):
         self.CREATE_POLICY_ERROR = "disallowed by policy"
         self.UPDATE_POLICY_ERROR = "disallowed by policy"
     else:
         self.CREATE_POLICY_ERROR = \
             "Policy doesn't allow \(rule:create_router and " \
             "rule:create_router:tunnel_type\) to be performed"
         self.UPDATE_POLICY_ERROR = \
             "Policy doesn't allow \(rule:update_router and " \
             "rule:update_router:tunnel_type\) to be performed"
コード例 #4
0
    def test_cli_create_external_fip_subnet_with_vsd_managed_subnet_neg(self):
        """test_cli_create_external_fip_subnet_with_vsd_managed_subnet_neg

        Create external fip subnet using a VSD managed subnet

        Should fail, as PAT is only for OS managed networks
        """
        self._as_admin()
        name = data_utils.rand_name('vsd-l2domain-')
        cidr = IPNetwork('10.10.100.0/24')
        params = {
            'DHCPManaged': True,
            'address': str(cidr.ip),
            'netmask': str(cidr.netmask),
            'gateway': '10.10.100.1'
        }
        # Create VSD managed subnet
        vsd_l2dom_template = self.nuage_client.create_l2domaintemplate(
            name=name + '-template', extra_params=params)
        template_id = vsd_l2dom_template[0]['ID']
        vsd_l2domain = self.nuage_client.create_l2domain(
            name=name, templateId=template_id)
        self.assertEqual(vsd_l2domain[0]['name'], name)
        # Try to create subnet on OS with nuagenet param set to l2domain UUID
        # Must fails with message = exp+message
        network_name = data_utils.rand_name('ext-pat-network')
        network = self.create_network_with_args(network_name,
                                                ' --router:external')
        if Topology.from_openstack('Newton') and Topology.is_ml2:
            exp_message = "Bad request: " \
                          "router:external in network must be False"
        else:
            exp_message = "Bad request: " \
                          "VSD-Managed Subnet create not allowed on " \
                          "external network"

        self.assertCommandFailed(
            exp_message, self.create_subnet_with_args, network['name'],
            str(cidr.cidr), '--name subnet-VSD-managed '
            '--net-partition', Topology.def_netpartition, '--nuagenet',
            vsd_l2domain[0]['ID'], '--underlay=True')
        # Delete the VSD manged subnet
        self.nuage_client.delete_l2domain(vsd_l2domain[0]['ID'])
        self.nuage_client.delete_l2domaintemplate(vsd_l2dom_template[0]['ID'])
コード例 #5
0
    def test_nuage_external_network_update_to_internal(self):
        """test_nuage_external_network_update_to_internal

        Releases below Rocky: OPENSTACK-2340
        Releases from Rocky: Check that external network with subnets can not
        be updated to internal
        """
        if Topology.from_openstack('ROCKY'):
            kwargs = {'router:external': True}
            n1 = self.create_network(manager=self.admin_manager, **kwargs)
            self.create_subnet(n1,
                               cidr=data_utils.gimme_a_cidr(),
                               mask_bits=24,
                               manager=self.admin_manager)
            kwargs = {'router:external': False}
            msg = ('External network with subnets can not be '
                   'changed to non-external network')
            self.assertRaisesRegex(exceptions.BadRequest, msg,
                                   self.update_network, n1['id'],
                                   self.admin_manager, **kwargs)
コード例 #6
0
 def skip_checks(cls):
     super(NuageFloatingIPProprietaryQosTest, cls).skip_checks()
     if Topology.from_openstack('Wallaby'):
         raise cls.skipException('VRS-54954: FIP rate limiting in VRS seems'
                                 ' broken on CentOS 8 Stream')
コード例 #7
0
# Copyright 2020 Nokia
# All Rights Reserved.
import json
import testtools

from tempest.common import utils

from nuage_tempest_plugin.lib.cli import client_testcase
from nuage_tempest_plugin.lib.topology import Topology

LOG = Topology.get_logger(__name__)


@testtools.skipIf(Topology.from_openstack('stein'),
                  'Fwaas v1 is removed from stein onwards')
class TestNuageFWaaSCli(client_testcase.CLIClientTestCase):

    @classmethod
    def resource_setup(cls):
        super(TestNuageFWaaSCli, cls).resource_setup()
        if not utils.is_extension_enabled('fwaas', 'network'):
            msg = "FWaaS Extension not enabled."
            raise cls.skipException(msg)

    def test_cli_create_ipv6_icmp_rule(self):
        self._as_admin()
        name = utils.data_utils.rand_name('test-create-firwall-rule-')

        fw_rule = self.create_firewall_rule_cli(
            '--protocol icmp', '--action deny', '--ip-version 6',
            '--name ', name, '-f json', '--insecure')