首先,Neutron对最基本的三个资源:Network, Port 和 Subnet 的基本调用都已经定义好了API接口。如果你的插件也需要用到这些资源,最好直接实现它们的接口。API接口的定义可以再 neutron/neutron_plugin_base_v2.py 这个文件中找到,其中每个参数的作用也有比较详细的介绍。对于用不着的资源,直接放任不管就好了,最多下次不小心调用了会发出“该接口没有被实现”的错误,不会有其他影响。这里是一个 Network API 实现的范例,其实它什么也没有做,但是确实是一个有效的接口实现:
from neutron import neutron_plugin_base_v2
class MyPlugin(neutron_plugin_base_v2.NeutronPluginBaseV2):
def __init__(self):
pass
def create_network(self, context, network):
# Create a network by using data from network dictionary
# Send back a dictionary to display created network's info
return network
def update_network(self, context, id, network):
# Update a created network matched by id with
# data in the network dictionary. Send back a
# dictionary to display the network's updated info
return network
def get_network(self, context, id, fields=None):
network = {}
# List information of a specific network matched by id