公司最初开发用的openstack版本是Kilo版,在neutron中开发的extension迁移到最新的Newton版本中就不适用了,需要做一些调整。
原先开发的内容是要实现虚实结合,即在代码层面实现物理机和虚拟机通信,大体思路就是增加neutron的extension来添加一个restful
接口,通过调用接口来控制SDN交换机与各个节点间建立vxlan的tunnel,然后用另一个微服务管理物理机的注册和删除等等步骤,下面
来记录下怎样写extension和迁移的问题。
一、编写neutron的extension
1.在neutron/extensions代码目录下有许多neutron自带的extension,可以借鉴这些entension来写自己的extension,
比如在apitest.py中有如下代码:
原先开发的内容是要实现虚实结合,即在代码层面实现物理机和虚拟机通信,大体思路就是增加neutron的extension来添加一个restful
接口,通过调用接口来控制SDN交换机与各个节点间建立vxlan的tunnel,然后用另一个微服务管理物理机的注册和删除等等步骤,下面
来记录下怎样写extension和迁移的问题。
一、编写neutron的extension
1.在neutron/extensions代码目录下有许多neutron自带的extension,可以借鉴这些entension来写自己的extension,
比如在apitest.py中有如下代码:
from neutron.api import extensions
from neutron.api.v2 import attributes as attr
from neutron.api.v2 import base
from neutron import manager
# Attribute Map
RESOURCE_NAME = 'apitest'
RESOURCE_ATTRIBUTE_MAP = {
RESOURCE_NAME + 's': {
'id': {'allow_post': False, 'allow_put': False,
'validate': {'type:uuid': None},
'is_visible': True},
'name': {'allow_post': True, 'allow_put': True,
'validate': {'type:string': None},
'default': '',
'is_visible': True},
'tenant_id': {'allow_post': True, 'allow_put': False,
'is_visible': False},
'address': {'allow_post': True, 'allow_put': False,
'defa