自己动手写OpenStack的QoS功能(3)
来源:互联网 发布:统计地图软件 编辑:程序博客网 时间:2024/06/02 04:01
本文地址:http://blog.csdn.net/spch2008/article/details/9281779
创建数据库以及相应的操作:
/usr/share/pyshared/quantum/plugins/openvswitch/ 下创建ovs_qos_db.py,
然后将其连接到/usr/lib/python2.7/dist-packages/quantum/plugins/openvswitch下,可参见Quantum 数据库增加新表
ovs_qos_db.py
import sqlalchemy as safrom sqlalchemy import ormfrom sqlalchemy.orm import excfrom quantum.db import model_basefrom quantum.db import models_v2from quantum.openstack.common import log as loggingfrom quantum.plugins.openvswitch.extensions import ovsqosLOG = logging.getLogger(__name__)class QualityOfServicePortBinding(model_base.BASEV2): __tablename__ = 'ovs_qos_port_bindings' port_id = sa.Column(sa.String(255), primary_key=True) rule_id = sa.Column(sa.String(255))class QualityOfServiceRule(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant): __tablename__ = 'ovs_qos_rules' name = sa.Column(sa.String(255)) rate = sa.Column(sa.Integer) burst = sa.Column(sa.Integer)class QualityOfServiceDbMixin(ovsqos.OVSPluginBase): __native_bulk_support = True def create_ovsqos(self, context, ovsqos): qos_rule = ovsqos['ovsqos'] with context.session.begin(subtransactions=True): qos = QualityOfServiceRule( name=qos_rule.get('name'), rate=qos_rule.get('rate'), burst=qos_rule.get('burst'), tenant_id=qos_rule.get('tenant_id')) context.session.add(qos) return self._make_qos_rule_dict(qos) def get_ovsqoss(self, context, filters, fields): return self._get_collection(context, QualityOfServiceRule, self._make_qos_rule_dict, filters=filters, fields=fields) def get_ovsqos(self, context, rule_id, fields=None): return self._make_qos_rule_dict( self._get_ovsqos(context, rule_id), fields) def _get_ovsqos(self, context, rule_id): try: return self._get_by_id(context, QualityOfServiceRule, rule_id) except exc.NoResultFound: return None def delete_ovsqos(self, context, rule_id): qos = self._get_ovsqos(context, rule_id) with context.session.begin(subtransactions=True): context.session.delete(qos) def update_ovsqos(self, context, rule_id, ovsqos): rule = ovsqos['ovsqos'] with context.session.begin(subtransactions=True): qos = self._get_ovsqos(context, rule_id) qos.update(rule) return self._make_qos_rule_dict(qos) def _make_qos_rule_dict(self, qos, fields=None): res = {'id': qos.id, 'name': qos.name, 'rate': qos.rate, 'burst': qos.burst, 'tenant_id':qos.tenant_id} return self._fields(res, fields)
数据库很简陋,只有一些基本功能。
- 自己动手写OpenStack的QoS功能(3)
- 自己动手写OpenStack的QoS功能(1)
- 自己动手写OpenStack的QoS功能(2)
- 自己动手写OpenStack的QoS功能(4)
- 自己动手写OpenStack的QoS功能(5)
- 自己动手写OpenStack的QoS功能(6)
- 自己动手写OpenStack的QoS功能(7)
- 自己动手写OpenStack的QoS功能
- Openstack中的网络QoS功能
- Openstack中的网络QoS功能
- Openstack CPU/Disk/network QoS 功能
- 路由器的qos功能
- OpenStack QoS
- (四)Openstack学习之WSGI:自己动手写例子
- OpenStack网络QoS
- 【交换机】配置QOS的功能原理是什么?
- 自己动手写的内存管理程序
- 自己动手写的内存管理程序
- i2c tools usage
- windows7 编译boost1.54
- Hadoop Hbase 升级
- hadoop学习系列1之第一个MAPREDUCE程序
- windbg+vmware双机调试连接不上的可能原因&&解决方法
- 自己动手写OpenStack的QoS功能(3)
- el操作通过key获取map中的值
- linux网络编程之socket(十三):epoll 系列函数简介、与select、poll 的区别
- java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys
- C字节对齐
- Linux进程的分析和执行过程
- AD7689
- IOS学习笔记(六)inputAccessoryView,inputView
- 通俗易懂的讲解iphone视图控制器的生命周期