参考: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使用数据库相关推荐

  1. 云计算之openstack(N版)neutron网络服务最佳实践

    2.6网络服务 2.6.1neutron的概况 网络服务提供网络,子网以及路由这些对象的抽象概念.每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络之间进行路由转 ...

  2. OpenStack newton版安装教程(4)——Neutron部分

    Neutron涉及到了网络配置,是OpenStack平台中最复杂的一个组件,配置文件最多.Neutron本身支持多种plugin,每种plugin又有多种agent可以使用,而每一种agent的配置方 ...

  3. 【neutron】Neutron的基本原理与代码实现

    分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...

  4. 【neutron】OpenStack Neutron -- 学习资料

    OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...

  5. Neutron 理解 (6): 如何实现虚拟三层网络

    Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...

  6. OpenStack T版—Neutron组件部署详解

    目录 一.OpenStack网络 1.1.OpenStack网络概述 1.2.Linux虚拟网络 1.3.OpenStack网络基础服务 1.4.Neutron主要插件.代理与服务 1.5.小结 二. ...

  7. openstack neutron基本原理

    分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...

  8. Openstack Neutron 集成 SDN控制器

    Neutron 集成SDN控制器   一.Neutron的组成元素 Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的REST API ...

  9. Neutron 网络服务

    ​ 项目介绍​Openstack Networking(neutron)管理所有虚拟网络,包括网络基础设施(VNI)和访问层方面的物理网络(PNI).它允许租户创建高级的虚拟网络拓扑结构,包括的服务有 ...

  10. Neutron源码结构

    一 Neutron源码目录结构 --bin -包括下面两个工具,基于oslo.rootwrap提供利用root权限执行命令的接口|--neutron-rootwrap|--neutron-rootwr ...

最新文章

  1. 网站SEO优化之如何提升访客量?
  2. 【字符串】字符串查找 ( Rabin-Karp 算法 )
  3. kafka 集群_10分钟搭建单机Kafka集群
  4. java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
  5. 463. 岛屿的周长
  6. (六)使用ResNet50迁移学习进行COVID-19诊断:从头开始构建深度学习网络
  7. 流拍后,Cerberus 银行木马源代码在黑市免费公开
  8. 试题6 算法训练 数据交换(指针)
  9. 2018-12-20 第二章Java 预习作业
  10. matlab 神经网络设计与应用,MATLAB 神经网络设计与应用(最新版)
  11. OCR-CTPN 文字检测
  12. vs html复选框,组合框和复选框
  13. Reviewboard使用介绍
  14. 2021SC@SDUSC Zxing开源代码(十)Data Matrix二维码(三)
  15. Postman团队协作
  16. sql中的iif语句详解
  17. div+css制作哆啦A梦
  18. 微信订阅公众号如何开通文章留言评论功能?经验分享!怎样获取微信订阅公众号留言管理功能?
  19. 简简单单使用Github
  20. solidity代码

热门文章

  1. java security md5_java自带的加密--java.security.MessageDigest(md5加密)
  2. 经济学实证论文写作经验分享
  3. 易康(eCognition)对象几何特征--2:几何(Geometry)_ 形状(Shape)
  4. 研究生跟了一个很棒的导师是种怎样的体验?
  5. Java swing组件介绍
  6. ArcGIS中进行影像裁剪的几种方法汇总
  7. No base URI; hope URI is absolute: http://
  8. multisim仿真高通滤波器——光谱分析仪的使用
  9. 算法——霍夫曼编码压缩算法
  10. Intel SGX开发者参考书(五)—— Intel SGX SDK示例代码(二)