neutron使用数据库
参考:https://blog.csdn.net/energysober/article/details/80289478
https://blog.csdn.net/happyAnger6/article/details/54586463
一、给neutron添加数据库中的表:
1.先运行(一行代码):
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /opt/stack/neutron/neutron/db/migration/alembic.ini revision -m "upgrade" --expand
它的意思是添加一个新的操作版本,相当于在生成的py文件中写新的数据库操作。(openstack几乎每个模块都有版本的定义,neutron也不例外 )
在版本目录下形成的py文件相当于是链表形式,以版本号为顺序,遇到报错:
Multiple heads are present; please specify the head revision on which the new revision should be based, or perform a merge.
可能是有多个前版本,需要改下版本链表中的顺序.
其中"upgrade"是要生成py文档名称中的一部分,不固定。
其中 /opt/stack/neutron/neutron/db/migration/alembic.ini 是根据你alembic.ini 文件的位置来写的,一般都在安装neutron/db/migration的文件夹下
2.在生成的py文件中的函数def upgrade():下添加表,类似如下(添加的表名为test_new)。
op.create_table('test_new',sa.Column('admin_id', sa.String(length=12), nullable=False),sa.Column('admin_name', sa.String(5), nullable=True))#生成表
2.然后在命令行运行以下代码进行更新:
neutron-db-manage upgrade --expand
PS:每一个版本的更新只能运行一次,如果要新处理表需要,从1重新开始。
二、添加extension。
在参考代码的时候,在第六步重启neutron-server服务,获取token的代码中,下面的http后面的url填的是自己openstack的keystone的地址(是后面跟着文件夹的IP,包括文件夹,即如果有/identity要写上),name和passowrd都是自己openstack登录的信息,“methods”: [ “password” ]不用改。
curl -X POST -d ‘{ “auth”: { “identity”: { “methods”: [ “password” ],
“password”: {“user”: {“name”: “admin”, “domain”: {“name”: “Default”},
“password”: “admin” }}}}}’ -H “Content-type: application/json”
http://url/identity/v3/auth/tokens | python -m json.tool
如果post没有获取到tonken的值的话,通过openstack token issue查看Token的列表,填入下面(url只是IP地址)。
curl -g -X GET http://192.168.0.27:9696/v2.0/tests/ -H “User-Agent: openstacksdk/0.9.13 keystoneauth1/2.18.0 python-requests/2.11.1 CPython/2.7.5” -H “Accept: application/json” -H “X-Auth-Token: token的值”
那个代码里面也有很多要改的地方。
extension/test.py中
1.29行的test改为"test";
2.35行的GROUPS改为TESTS。
model/test.py中
groups定义的是表名;
在extension/test.py里面定义的数据项中’allow_post’:False, ‘allow_put’:False代表是否可以用post和put方法
PS:设置为主键primary key的列不能在model/test.py中在进行设置.
重启服务
sudo systemctl restart devstack@q-svc.service
重启keystone服务:
systemctl restart devstack@keystone.service
PS:1.每一次更新数据库版本都有运行:neutron-db-manage upgrade --expand
2.如果更新有多个表,运行出错时要把前面所有的表删除掉,再更新;
3.如果报错
alembic.script.revision.MultipleHeads: Multiple heads are present for given argument ‘expand@head’; a79ef7038c23, ccba657dc191
代表有多个以上编号的数据表,在/opt/stack/neutron/neutron/db/migration/alembic_migrations/versions/pike/expand中删除重复的。
neutron使用数据库相关推荐
- 云计算之openstack(N版)neutron网络服务最佳实践
2.6网络服务 2.6.1neutron的概况 网络服务提供网络,子网以及路由这些对象的抽象概念.每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络之间进行路由转 ...
- OpenStack newton版安装教程(4)——Neutron部分
Neutron涉及到了网络配置,是OpenStack平台中最复杂的一个组件,配置文件最多.Neutron本身支持多种plugin,每种plugin又有多种agent可以使用,而每一种agent的配置方 ...
- 【neutron】Neutron的基本原理与代码实现
分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...
- 【neutron】OpenStack Neutron -- 学习资料
OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...
- Neutron 理解 (6): 如何实现虚拟三层网络
Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...
- OpenStack T版—Neutron组件部署详解
目录 一.OpenStack网络 1.1.OpenStack网络概述 1.2.Linux虚拟网络 1.3.OpenStack网络基础服务 1.4.Neutron主要插件.代理与服务 1.5.小结 二. ...
- openstack neutron基本原理
分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...
- Openstack Neutron 集成 SDN控制器
Neutron 集成SDN控制器 一.Neutron的组成元素 Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的REST API ...
- Neutron 网络服务
项目介绍Openstack Networking(neutron)管理所有虚拟网络,包括网络基础设施(VNI)和访问层方面的物理网络(PNI).它允许租户创建高级的虚拟网络拓扑结构,包括的服务有 ...
- Neutron源码结构
一 Neutron源码目录结构 --bin -包括下面两个工具,基于oslo.rootwrap提供利用root权限执行命令的接口|--neutron-rootwrap|--neutron-rootwr ...
最新文章
- 网站SEO优化之如何提升访客量?
- 【字符串】字符串查找 ( Rabin-Karp 算法 )
- kafka 集群_10分钟搭建单机Kafka集群
- java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
- 463. 岛屿的周长
- (六)使用ResNet50迁移学习进行COVID-19诊断:从头开始构建深度学习网络
- 流拍后,Cerberus 银行木马源代码在黑市免费公开
- 试题6 算法训练 数据交换(指针)
- 2018-12-20 第二章Java 预习作业
- matlab 神经网络设计与应用,MATLAB 神经网络设计与应用(最新版)
- OCR-CTPN 文字检测
- vs html复选框,组合框和复选框
- Reviewboard使用介绍
- 2021SC@SDUSC Zxing开源代码(十)Data Matrix二维码(三)
- Postman团队协作
- sql中的iif语句详解
- div+css制作哆啦A梦
- 微信订阅公众号如何开通文章留言评论功能?经验分享!怎样获取微信订阅公众号留言管理功能?
- 简简单单使用Github
- solidity代码
热门文章
- java security md5_java自带的加密--java.security.MessageDigest(md5加密)
- 经济学实证论文写作经验分享
- 易康(eCognition)对象几何特征--2:几何(Geometry)_ 形状(Shape)
- 研究生跟了一个很棒的导师是种怎样的体验?
- Java swing组件介绍
- ArcGIS中进行影像裁剪的几种方法汇总
- No base URI; hope URI is absolute: http://
- multisim仿真高通滤波器——光谱分析仪的使用
- 算法——霍夫曼编码压缩算法
- Intel SGX开发者参考书(五)—— Intel SGX SDK示例代码(二)