openstack plugin 之(五)怎样写 OpenStack Neutron 的 Extension
来源:互联网 发布:香港购物网络 编辑:程序博客网 时间:2024/06/05 13:22
接着之前一篇文章,再来谈谈 Extension 的具体实现问题。我使用的是本地数据库加远程API调用的方法,所以先要定义一下数据库中 myextension 如何存储。首先,我们可以在自己的 plugin 根目录下新建一个 db 文件夹,以及三个文件:
- neutron/
- plugins/
- myplugin/
- __init__.py
- plugin.py
- extensions/
- db/
- __init__.py
- db.py
- models.py
db.py 用来存放数据库的 wrapper,提供一些读写数据库的方法;而 models.py 直接定义 myextension 的那些属性如何在数据库中存储。下面是 models.py 的一个例子:
import sqlalchemy as safrom neutron.db import model_basefrom neutron.db import models_v2class MyExtension(model_base.BASEV2, models_v2.HasId, model_v2.HasTenant): ''' Defines the data model for my extension ''' name = sa.Column(sa.String(255), nullable=False)
db.py 的实现可以参照 db_base_plugin_v2.py 中的实现方式。然后在自己的 plugin.py 中实现 myextension 的五个操作: CREATE, UPDATE, GET, SHOW, 和 DELETE。到这里,myextension 的后台操作就全了。
但是这样还不够,因为我们还需要一些方式来从前台发布关于 myextension 的命令,使后台的 plugin controller 可以接收到,并进行相应的操作。这就需要修改 neutronclient 的相应代码,实现通过 CLI 的交互。这部分内容会在下一篇文章中进行介绍。
阅读全文
0 0
- openstack plugin 之(五)怎样写 OpenStack Neutron 的 Extension
- openstack plugin 之(三)怎样写 OpenStack Neutron 的 Extension
- openstack plugin 之(六)怎样写 OpenStack Neutron 的 Extension
- openstack plugin 之(七)怎怎样写 OpenStack Neutron 的 Extension
- 怎样写 OpenStack Neutron 的 Extension 和plugin
- openstack plugin 之(一)怎样写 OpenStack Neutron 的 Plugin
- openstack plugin 之(二)怎样写 OpenStack Neutron 的 Plugin
- 怎样写 OpenStack Neutron 的 Plugin
- 怎样写 OpenStack Neutron 的 Plugin (一)
- openstack plugin 之(四)如何区分 OpenStack Neutron Extension 和 Plugin
- openstack plugin 之(八)怎样修改 Openstack Horizon(Dashboard)的显示界面
- openstack plugin 之(九)怎样修改 Openstack Horizon(Dashboard)的显示界面
- Openstack 网络服务Neutron [五]
- OpenStack多节点安装(五):Neutron
- Openstack之neutron简介
- Openstack之neutron入门
- Openstack之安装neutron
- 浅谈openstack的neutron
- DFS BFS 搜索基础
- 使用sqlite3所遇到的问题
- 安卓App私有目录修改浅谈
- nyoj 39 水仙花数
- Git for windows安装
- openstack plugin 之(五)怎样写 OpenStack Neutron 的 Extension
- 写给大忙人看的 Java SE 8 第一章练习 答案 <函数式编程>
- GameObject的OnGUI用处
- 实施TPM-营销费用管控系统的意义
- mybatis 自定义类处理器typehandlers
- 上线Android项目SQLite出现database disk image is malformed(11)的处理
- 【网络编程】——WebSocket打开和关闭通道,消息发送
- vkEnumerateInstanceExtensionProperties failed to find
- 牛逼的AlphaGo,怎样用DIV+CSS画棋盘