Exemple #1
0
    def test_create_delete_policy_rule(self):
        qos_obj = self._test_create_policy()
        qos_rule = {'max_burst_kbps': 1000,
                    'max_kbps': 100}
        qos_rule_obj = self.qos_plugin.create_policy_rule(
            self.context, rule.QosBandwidthLimitRule,
            qos_obj['id'], {'bandwidth_limit_rule': qos_rule})
        qos_rule_obj.pop('qos_policy_id', None)
        new_qos_obj = self.qos_plugin.get_policy(self.context, qos_obj['id'])
        self.assertGreater(new_qos_obj['revision_number'],
                           qos_obj['revision_number'])
        self.qos_driver.nb_api.update.assert_called_with(qos.QosPolicy(
            id=qos_obj['id'],
            topic='project1',
            name='policy1',
            rules=[qos_rule_obj],
            version=new_qos_obj['revision_number']))

        self.qos_plugin.delete_policy_rule(self.context,
                                           rule.QosBandwidthLimitRule,
                                           qos_rule_obj['id'],
                                           qos_obj['id'])
        newer_qos_obj = self.qos_plugin.get_policy(self.context, qos_obj['id'])
        self.assertGreater(newer_qos_obj['revision_number'],
                           new_qos_obj['revision_number'])
        self.qos_driver.nb_api.update.assert_called_with(qos.QosPolicy(
            id=qos_obj['id'],
            topic='project1',
            name='policy1',
            rules=[],
            version=newer_qos_obj['revision_number']))
Exemple #2
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())
Exemple #3
0
 def _test_create_policy(self):
     qos_policy = {'policy': {'name': "policy1", 'project_id': 'project1'}}
     qos_obj = self.qos_plugin.create_policy(self.context, qos_policy)
     self.assertEqual(qos_obj['revision_number'], 0)
     self.qos_driver.nb_api.create.assert_called_with(qos.QosPolicy(
         id=qos_obj['id'],
         topic='project1',
         name='policy1',
         rules=[],
         version=qos_obj['revision_number']))
     return qos_obj
Exemple #4
0
 def test_update_policy(self):
     qos_obj = self._test_create_policy()
     new_qos_obj = self.qos_plugin.update_policy(
         self.context, qos_obj['id'], {'policy': {'name': 'policy2'}})
     self.assertGreater(new_qos_obj['revision_number'],
                        qos_obj['revision_number'])
     self.qos_driver.nb_api.update.assert_called_with(qos.QosPolicy(
         id=qos_obj['id'],
         topic='project1',
         name='policy2',
         rules=[],
         version=new_qos_obj['revision_number']))
Exemple #5
0
 def get_port_qos(self, port_id):
     port_qoses = self.ovsdb.db_find(
         'QoS', ('external_ids', '=', {'iface-id': port_id}),
         columns=['external_ids', '_uuid']).execute()
     if port_qoses:
         ovsdb_qos = port_qoses[0]
         external_ids = ovsdb_qos['external_ids']
         return qos.QosPolicy(
             id=external_ids.get('qos-id'),
             topic=external_ids.get('qos-topic'),
             version=external_ids.get('version'),
         )
Exemple #6
0
def qos_policy_from_neutron_qos_policy(policy):
    policy_dict = {
        'id': policy['id'],
        'topic': policy['project_id'],
        'name': policy['name'],
        'version': policy['revision_number'],
    }
    rules = policy.get('rules')
    if rules:
        policy_dict['rules'] = [
            qos_rule_from_neutron_qos_rule(rule) for rule in rules
        ]
    return qos.QosPolicy(**policy_dict)
Exemple #7
0
 def delete_policy(self, context, policy):
     policy_id = policy['id']
     self.nb_api.delete(qos.QosPolicy(id=policy_id))
Exemple #8
0
 def test_delete_policy(self):
     qos_obj = self._test_create_policy()
     self.qos_plugin.delete_policy(self.context, qos_obj['id'])
     self.qos_driver.nb_api.delete.assert_called_with(qos.QosPolicy(
         id=qos_obj['id']))
Exemple #9
0
 def exists(self):
     qospolicy = self.nb_api.get(qos.QosPolicy(id=self.policy_id))
     if qospolicy:
         return True
     return False