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
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/d03d617c09e7ba8ddf62d1e53d71685cd708e2... 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
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? On Wed, Sep 27, 2023 at 8:59 PM Stephen Finucane <stephenfin@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/d03d617c09e7ba8ddf62d1e53d71685cd708e2...
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
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
Le ven. 29 sept. 2023, 12:41, Gk Gk <ygk.kmr@gmail.com> a écrit : 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/87d4807848bb9546c1fca972da2eb2eda13eb... [3] https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/rou... [4] https://github.com/openstack/nova/blob/87d4807848bb9546c1fca972da2eb2eda13eb... [5] https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/ser...
On Wed, Sep 27, 2023 at 8:59 PM Stephen Finucane <stephenfin@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/d03d617c09e7ba8ddf62d1e53d71685cd708e2...
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
participants (3)
-
Gk Gk
-
Stephen Finucane
-
Sylvain Bauza