示例#1
0
    def test_update_port_with_qospolicy(self):
        network = objects.NetworkTestObj(self.neutron, self.nb_api)
        self.addCleanup(network.close)
        network_id = network.create()
        self.assertTrue(network.exists())

        qospolicy = objects.QosPolicyTestObj(self.neutron, self.nb_api)
        self.addCleanup(qospolicy.close)
        qos_policy_id = qospolicy.create()
        self.assertTrue(qospolicy.exists())

        port = objects.PortTestObj(self.neutron, self.nb_api, network_id)
        self.addCleanup(port.close)
        port.create()
        self.assertTrue(port.exists())

        port_param = {
            'admin_state_up': True,
            'name': 'port1',
            'qos_policy_id': qos_policy_id
        }
        port.update(port_param)
        self.assertEqual(qos_policy_id, port.get_logical_port().qos_policy.id)

        port.close()
        self.assertFalse(port.exists())
        network.close()
        self.assertFalse(network.exists())
        qospolicy.close()
        self.assertFalse(qospolicy.exists())
示例#2
0
    def test_update_port_with_qospolicy(self):
        if cfg.CONF.core_plugin == DF_PLUGIN:
            return

        network = self.store(objects.NetworkTestObj(self.neutron, self.nb_api))
        network_id = network.create()
        self.assertTrue(network.exists())

        qospolicy = self.store(
            objects.QosPolicyTestObj(self.neutron, self.nb_api))
        qos_policy_id = qospolicy.create()
        self.assertTrue(qospolicy.exists())

        port = self.store(
            objects.PortTestObj(self.neutron, self.nb_api, network_id))
        port.create()
        self.assertTrue(port.exists())

        port_param = {
            'admin_state_up': True,
            'name': 'port1',
            'qos_policy_id': qos_policy_id
        }
        port.update(port_param)
        self.assertEqual(qos_policy_id,
                         port.get_logical_port().get_qos_policy_id())

        port.close()
        self.assertFalse(port.exists())
        network.close()
        self.assertFalse(network.exists())
        qospolicy.close()
        self.assertFalse(qospolicy.exists())
示例#3
0
 def test_create_delete_qos_policy(self):
     qospolicy = objects.QosPolicyTestObj(self.neutron, self.nb_api)
     self.addCleanup(qospolicy.close)
     policy_id = qospolicy.create()
     self.assertTrue(qospolicy.exists())
     rule = {'max_kbps': '1000', 'max_burst_kbps': '100'}
     qospolicy.create_rule(policy_id, rule, 'bandwidth_limit')
     self.assertTrue(qospolicy.exists())
     qospolicy.close()
     self.assertFalse(qospolicy.exists())
示例#4
0
    def test_create_delete_qos_policy(self):
        if cfg.CONF.core_plugin == DF_PLUGIN:
            return

        qospolicy = self.store(
            objects.QosPolicyTestObj(self.neutron, self.nb_api))
        policy_id = qospolicy.create()
        self.assertTrue(qospolicy.exists())
        rule = {'max_kbps': '1000', 'max_burst_kbps': '100'}
        qospolicy.create_rule(policy_id, rule)
        self.assertTrue(qospolicy.exists())
        qospolicy.close()
        self.assertFalse(qospolicy.exists())
示例#5
0
    def test_qospolicy_version(self):
        qospolicy = objects.QosPolicyTestObj(self.neutron, self.nb_api)
        self.addCleanup(qospolicy.close)
        policy_id = qospolicy.create()
        self.assertTrue(qospolicy.exists())
        version = self.nb_api.get(qos.QosPolicy(id=policy_id)).version

        rule = {'max_kbps': '1000', 'max_burst_kbps': '100'}
        qospolicy.create_rule(policy_id, rule, 'bandwidth_limit')
        self.assertTrue(qospolicy.exists())
        new_version = self.nb_api.get(qos.QosPolicy(id=policy_id)).version
        self.assertGreater(new_version, version)

        qospolicy.close()
        self.assertFalse(qospolicy.exists())
示例#6
0
    def test_qospolicy_version(self):
        if cfg.CONF.core_plugin == DF_PLUGIN:
            return

        qospolicy = self.store(
            objects.QosPolicyTestObj(self.neutron, self.nb_api))
        policy_id = qospolicy.create()
        self.assertTrue(qospolicy.exists())
        version = self.nb_api.get_qos_policy(policy_id).get_version()

        rule = {'max_kbps': '1000', 'max_burst_kbps': '100'}
        qospolicy.create_rule(policy_id, rule)
        self.assertTrue(qospolicy.exists())
        new_version = self.nb_api.get_qos_policy(policy_id).get_version()
        self.assertGreater(new_version, version)

        qospolicy.close()
        self.assertFalse(qospolicy.exists())
示例#7
0
    def test_port_with_qospolicy(self):
        network = self.store(objects.NetworkTestObj(self.neutron, self.nb_api))
        network_id = network.create()
        self.assertTrue(network.exists())

        subnet = self.store(
            objects.SubnetTestObj(self.neutron,
                                  self.nb_api,
                                  network_id=network_id))
        subnet.create()
        self.assertTrue(subnet.exists())

        vm = self.store(objects.VMTestObj(self, self.neutron))
        vm_id = vm.create(network=network)

        vm_port_id = self.vswitch_api.get_port_id_by_vm_id(vm_id)
        self.assertIsNotNone(vm_port_id)
        port = objects.PortTestObj(self.neutron, self.nb_api, network_id,
                                   vm_port_id)

        qospolicy = self.store(
            objects.QosPolicyTestObj(self.neutron, self.nb_api))
        qos_policy_id = qospolicy.create()
        time.sleep(const.DEFAULT_CMD_TIMEOUT)
        self.assertTrue(qospolicy.exists())

        qospolicy.create_rule(qos_policy_id, {
            'max_kbps': '1000',
            'max_burst_kbps': '100'
        }, 'bandwidth_limit')
        qospolicy.create_rule(qos_policy_id, {'dscp_mark': '10'},
                              'dscp_marking')
        port_param = {'qos_policy_id': qos_policy_id}
        port.update(port_param)
        time.sleep(const.DEFAULT_CMD_TIMEOUT)

        logical_port = port.get_logical_port()
        self.assertEqual(qos_policy_id, logical_port.qos_policy.id)

        check_columns = {'ingress_policing_rate', 'ingress_policing_burst'}
        interface = \
            self.vswitch_api.get_interface_by_id_with_specified_columns(
                vm_port_id, check_columns)
        self.assertIsNotNone(interface)
        self.assertEqual(1000, interface.get('ingress_policing_rate'))
        self.assertEqual(100, interface.get('ingress_policing_burst'))

        queue = self.vswitch_api.get_queue_info_by_port_id(vm_port_id)
        self.assertIsNotNone(queue)
        self.assertEqual(queue['other_config']['max-rate'], '1024000')
        self.assertEqual(queue['other_config']['min-rate'], '1024000')
        self.assertEqual(queue['dscp'], 10)

        qos = self.vswitch_api.get_qos_info_by_port_id(vm_port_id)
        self.assertIsNotNone(qos)
        self.assertEqual(qos['queues'][0].uuid, queue['_uuid'])

        ovs_port = self.vswitch_api.get_ovs_port_by_id_with_specified_columns(
            vm_port_id, {'qos'})
        self.assertIsNotNone(ovs_port)
        self.assertEqual(ovs_port['qos'], qos['_uuid'])

        vm.close()
        time.sleep(const.DEFAULT_CMD_TIMEOUT)

        queue = self.vswitch_api.get_queue_info_by_port_id(vm_port_id)
        self.assertIsNone(queue)

        qos = self.vswitch_api.get_qos_info_by_port_id(vm_port_id)
        self.assertIsNone(qos)