API Layer for Neutron WSGI/HTTP¶
This section will cover the internals of Neutron’s HTTP API, and the classes in Neutron that can be used to create Extensions to the Neutron API.
Python web applications interface with webservers through the Python Web Server Gateway Interface (WSGI) - defined in PEP 333
Startup¶
Neutron’s WSGI server is started from then module pointed in the
neutron-api-uwsgi.ini file. By default is neutron.wsgi.api:application
and starts in the API server.
WSGI Application¶
During the building of the NeutronApiService, the api_server function creates a WSGI application using the load_paste_app function inside config.py - which parses api-paste.ini - in order to create a WSGI app using Paste’s deploy.
The api-paste.ini file defines the WSGI applications and routes - using the Paste INI file format.
The INI file directs paste to instantiate the APIRouter class of Neutron, which contains several methods that map Neutron resources (such as Ports, Networks, Subnets) to URLs, and the controller for each resource.