Example #1
0
    def test_verify_networks_skips_dpdk_interface(self):
        node = self.env.nodes[0]
        node_json = {
            'uid': node.id,
            'name': node.name,
            'status': node.status,
            'networks': [],
            'excluded_networks': [],
        }
        dpdk_iface = None
        network_config = []
        for iface in node.interfaces:
            for ng in iface.assigned_networks_list:
                vlans = []
                if ng.name == consts.NETWORKS.private:
                    vlans = [1234, 1235]
                    dpdk_iface = iface
                network_config.append({'name': ng.name, 'vlans': vlans})

        dpdk_iface.interface_properties['dpdk']['enabled'] = True

        task = VerifyNetworksTask(None, network_config)
        task.get_ifaces_on_deployed_node(node, node_json, [])

        # DPDK-enabled interface should be skipped in network verification
        self.assertNotIn({'iface': dpdk_iface.name, 'vlans': [0]},
                         node_json['networks'])
        # Private vlans should be skipped for DPDK-enabled interface
        self.assertNotIn({'iface': dpdk_iface.name, 'vlans': [1234, 1235]},
                         node_json['networks'])
Example #2
0
    def test_verify_networks_skips_dpdk_interface(self):
        node = self.env.nodes[0]
        node_json = {
            'uid': node.id,
            'name': node.name,
            'status': node.status,
            'networks': [],
            'excluded_networks': [],
        }
        dpdk_iface = None
        network_config = []
        for iface in node.interfaces:
            for ng in iface.assigned_networks_list:
                vlans = []
                if ng.name == consts.NETWORKS.private:
                    vlans = [1234, 1235]
                    dpdk_iface = iface
                network_config.append({'name': ng.name, 'vlans': vlans})

        dpdk_iface.attributes['dpdk']['enabled']['value'] = True

        task = VerifyNetworksTask(None, network_config)
        task.get_ifaces_on_deployed_node(node, node_json, [])

        # DPDK-enabled interface should be skipped in network verification
        self.assertNotIn({'iface': dpdk_iface.name, 'vlans': [0]},
                         node_json['networks'])
        # Private vlans should be skipped for DPDK-enabled interface
        self.assertNotIn({'iface': dpdk_iface.name, 'vlans': [1234, 1235]},
                         node_json['networks'])
Example #3
0
    def test_skip_private_net_for_the_only_node_wo_dpdk(self):
        self.env.create_node(cluster_id=self.cluster.id,
                             pending_addition=True,
                             roles=['compute'])
        self.assertEqual(len(self.env.nodes), 2)

        dpdk_iface = None
        network_config = []
        private_ifaces = {}
        for node in self.env.nodes:
            nic_1 = node.interfaces[0]
            nic_2 = node.interfaces[1]
            default_vlans = {
                consts.NETWORKS.public: [100],
                consts.NETWORKS.storage: [101],
                consts.NETWORKS.management: [102],
                consts.NETWORKS.fuelweb_admin: [103],
                consts.NETWORKS.private: [1234, 1235]
            }

            if not dpdk_iface:
                dpdk_iface = nic_2
            nets_1 = nic_1.assigned_networks_list
            nets_2 = nic_2.assigned_networks_list

            for i, net in enumerate(nets_1):
                if net['name'] == consts.NETWORKS.private:
                    nets_2.append(nets_1.pop(i))
                    break
            objects.NIC.assign_networks(nic_1, nets_1)
            objects.NIC.assign_networks(nic_2, nets_2)

            node.status = consts.NODE_STATUSES.ready
            for iface in node.interfaces:
                for ng in iface.assigned_networks_list:
                    network_config.append({'name': ng.name,
                                           'vlans': default_vlans[ng.name]})
                    if ng.name == consts.NETWORKS.private:
                        private_ifaces[node.name] = iface.name

        dpdk_iface.interface_properties['dpdk']['enabled'] = True

        task = models.Task(
            name=consts.TASK_NAMES.check_networks,
            cluster=self.cluster
        )

        verify_task = VerifyNetworksTask(task, network_config)

        message = verify_task.get_message_body()
        for node in message['nodes']:
            self.assertNotIn(private_ifaces[node['name']],
                             (n['iface'] for n in node['networks']))
Example #4
0
    def test_skip_private_net_for_the_only_node_wo_dpdk(self):
        self.env.create_node(cluster_id=self.cluster.id,
                             pending_addition=True,
                             roles=['compute'])
        self.assertEqual(len(self.env.nodes), 2)

        dpdk_iface = None
        network_config = []
        private_ifaces = {}
        for node in self.env.nodes:
            nic_1 = node.interfaces[0]
            nic_2 = node.interfaces[1]
            default_vlans = {
                consts.NETWORKS.public: [100],
                consts.NETWORKS.storage: [101],
                consts.NETWORKS.management: [102],
                consts.NETWORKS.fuelweb_admin: [103],
                consts.NETWORKS.private: [1234, 1235]
            }

            if not dpdk_iface:
                dpdk_iface = nic_2
            nets_1 = nic_1.assigned_networks_list
            nets_2 = nic_2.assigned_networks_list

            for i, net in enumerate(nets_1):
                if net['name'] == consts.NETWORKS.private:
                    nets_2.append(nets_1.pop(i))
                    break
            objects.NIC.assign_networks(nic_1, nets_1)
            objects.NIC.assign_networks(nic_2, nets_2)

            node.status = consts.NODE_STATUSES.ready
            for iface in node.interfaces:
                for ng in iface.assigned_networks_list:
                    network_config.append({'name': ng.name,
                                           'vlans': default_vlans[ng.name]})
                    if ng.name == consts.NETWORKS.private:
                        private_ifaces[node.name] = iface.name

        dpdk_iface.attributes['dpdk']['enabled']['value'] = True

        task = models.Task(
            name=consts.TASK_NAMES.check_networks,
            cluster=self.cluster
        )

        verify_task = VerifyNetworksTask(task, network_config)

        message = verify_task.get_message_body()
        for node in message['nodes']:
            self.assertNotIn(private_ifaces[node['name']],
                             (n['iface'] for n in node['networks']))
Example #5
0
    def test_verify_networks_checks_dpdk_interface(self):
        node = self.env.nodes[0]
        node_json = {
            'uid': node.id,
            'name': node.name,
            'status': node.status,
            'networks': [],
            'excluded_networks': [],
        }
        dpdk_iface = None
        private_iface = None
        private_ng = None
        network_config = []
        for iface in node.interfaces:
            for ng in iface.assigned_networks_list:
                vlans = []
                if ng.name == consts.NETWORKS.public:
                    dpdk_iface = iface
                elif ng.name == consts.NETWORKS.private:
                    private_iface = iface
                    private_ng = ng
                    vlans = [1236, 1237]
                else:
                    continue
                network_config.append({'name': ng.name, 'vlans': vlans})

        dpdk_iface.interface_properties['dpdk'].update({
            'available': True,
            'enabled': True
        })
        private_iface.assigned_networks_list = [private_ng]

        task = VerifyNetworksTask(None, network_config)
        task.get_ifaces_on_deployed_node(node, node_json, [])

        # DPDK-enabled interface should not be skipped in network verification
        # because Private network is not assigned to it
        self.assertIn({
            'iface': dpdk_iface.name,
            'vlans': [0]
        }, node_json['networks'])
        # Private vlans should not be skipped in network verification
        self.assertIn({
            'iface': private_iface.name,
            'vlans': [1236, 1237]
        }, node_json['networks'])
Example #6
0
    def test_verify_networks_checks_dpdk_interface(self):
        node = self.env.nodes[0]
        node_json = {
            'uid': node.id,
            'name': node.name,
            'status': node.status,
            'networks': [],
            'excluded_networks': [],
        }
        dpdk_iface = None
        private_iface = None
        private_ng = None
        network_config = []
        for iface in node.interfaces:
            for ng in iface.assigned_networks_list:
                vlans = []
                if ng.name == consts.NETWORKS.public:
                    dpdk_iface = iface
                elif ng.name == consts.NETWORKS.private:
                    private_iface = iface
                    private_ng = ng
                    vlans = [1236, 1237]
                else:
                    continue
                network_config.append({'name': ng.name, 'vlans': vlans})

        dpdk_iface.interface_properties['dpdk'].update({'available': True,
                                                        'enabled': True})
        private_iface.assigned_networks_list = [private_ng]

        task = VerifyNetworksTask(None, network_config)
        task.get_ifaces_on_deployed_node(node, node_json, [])

        # DPDK-enabled interface should not be skipped in network verification
        # because Private network is not assigned to it
        self.assertIn({'iface': dpdk_iface.name, 'vlans': [0]},
                      node_json['networks'])
        # Private vlans should not be skipped in network verification
        self.assertIn({'iface': private_iface.name, 'vlans': [1236, 1237]},
                      node_json['networks'])