Extension Service的类图
除了Core Service(network、subnet、subnetpool、port)以外,Neutron把其余的Service都称为extensions,不过我们还是习惯称为Extension Services。
通过Neutron接口“/v2.0/extensions”,可以查看所有的Extension Service的信息,如下图:
Extension Service的类,如下图:
Extension Service的类,都必须继承自class ExtensionDescriptor(在github上搜索neutron_lib),而且必须实现它的四个抽象接口:get_name、get_alias、get_description、get_updated。从这个接口/v2.0/extensions的response可见一斑。如下图:
换句话说,每个Extension Service的name、links、alias、description等属性,也只有它自己知道,所以每个Extension Service的class必须实现4个抽象接口。