Wsgi in openstack

Sylvain Bauza sbauza at redhat.com
Sat Sep 30 12:26:59 UTC 2023


Le ven. 29 sept. 2023, 12:41, Gk Gk <ygk.kmr at gmail.com> a écrit :

> Thanks for the response. But this is not the answer I was looking for. I
> am asking how wsgi is implemented in the nova-api server. How to understand
> these python classes ?
>
> How does the flow of control go from one module to another ? Specifically
> wsgi related. Is there any design doc which talks about this ? Are there
> any resources on the internet along these lines?
>
>>
>>
Short answer : nova-api is a WSGI app. We use pastedeploy [1] for providing
WSGI pipelines [2]. Each of the pipelines verify WSGI middlewares one after
the other, and eventually it goes to the Nova APIRouterV21 WSGI middleware
[3]
The APIRouterV21 then calls the right HTTP controller related to the link,
as you can see in [4].

For example, the call of POST /servers in
https://docs.openstack.org/api-ref/compute/#create-server is then
eventually calling [5], depending on the microversion of course.

HTH,
-Sylvain

[1] https://pastedeploy.readthedocs.io
[2]
https://github.com/openstack/nova/blob/87d4807848bb9546c1fca972da2eb2eda13eb08d/etc/nova/api-paste.ini#L18-L43
[3]
https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/routes.py
[4]
https://github.com/openstack/nova/blob/87d4807848bb9546c1fca972da2eb2eda13eb08d/nova/api/openstack/compute/routes.py#L369C4-L842
[5]
https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L683


>> On Wed, Sep 27, 2023 at 8:59 PM Stephen Finucane <stephenfin at redhat.com>
> wrote:
>
>> On Wed, 2023-09-27 at 19:41 +0530, Gk Gk wrote:
>>
>> Hi All,
>>
>> I am new to python coding and trying to understand how wsgi is
>> implemented in nova or glance api servers. What would be the best way to
>> understand the design here ? Are there any useful documents available over
>> the internet to understand these ?  I understand the WSGI standard. I can't
>> figure out where the start_response functions are coded in nova-api wsgi
>> implementation. Any useful tips are highly appreciated.  Thanks so much for
>> your time.
>>
>> Thanks
>> Y.G
>>
>>
>> Script for WSGI "entry points" are automatically generated by pbr,
>> similar to how standard setuptools builds scripts for console scripts:
>>
>>
>> https://github.com/openstack/pbr/blob/d03d617c09e7ba8ddf62d1e53d71685cd708e2da/pbr/packaging.py#L332-L384
>>
>> If you build an sdist or wheel and extract it, you'll see the generated
>> scripts in there. You'll also see then in `bin` if you install e.g. nova
>> and look at the `nova-api` script.
>>
>> Stephen
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230930/ea5574e1/attachment.htm>


More information about the openstack-discuss mailing list