[openstack-dev] what is the code organization of nova

Roman Podolyaka rpodolyaka at mirantis.com
Wed Oct 9 11:43:44 UTC 2013


Hello Aparna,

I would suggest to start from Nova Developer Guide [1] to understand what
Nova is in general, what services it consists of and so on.

There are different approaches how to learn new stuff. I personally prefer
the 'top-bottom' one, i.e. when you start from high-level concepts
and gradually proceed to concrete details. If you like this approach, you
could install devstack [2], boot a few VMs and start learning Nova by
checking logs of its services: API, scheduler, compute, etc. So you could
follow the booting of a new VM from a request to Nova API to a qemu process
running on the compute node.

When you are familiar with the basic concepts of how Nova works, it might
be about the time to actually check the code. Basically, it looks like this
(I described a few important subsystems):

rpodolyaka at rpodolyaka-pc:~/sandbox/nova/nova$ tree -L 1 -d

├── api                    - OpenStack Compute/EC2 APIs are defined here;
mapping of HTTP requests to functions, which handle them, is done here too
├── CA
├── cells
├── cert
├── cloudpipe
├── cmd                  - executables of Nova (nova-api, scheduler,
compute, etc) are defined here
├── compute            - implemetantion of nova-compute service
├── conductor           - implementation of nova-conductor service
├── console
├── consoleauth
├── db                    - DB access layer (also known as DBAPI)
├── hacking
├── image
├── ipv6
├── keymgr
├── locale
├── network             - implementation of nova-network + Neutron bindings
├── objects
├── objectstore
├── openstack          - common code for all OpenStack projects (utils,
logs, DB, RPC, etc)
├── pci
├── scheduler           - implementation of Nova scheduler
├── servicegroup
├── spice
├── storage
├── tests                  - tests (mostly unit) of Nova live here
├── virt                    - bindings to supported hypervisors (libvirt,
xen, etc)
├── vnc
└── volume

I hope, this will help you.

Thanks,
Roman

[1] http://docs.openstack.org/developer/nova/devref/
[2] http://devstack.org/


On Wed, Oct 9, 2013 at 4:58 AM, Aparna Datt <aparna.cloud at gmail.com> wrote:

> hi.... i was going through code of nova on github...but there are no
> readme files available regarding code organization of nova. Can anyone
> provide me with a link from where i can begin reading the code ? or if
> anyone can help me by indicators on from which files / folders the nova
> begins its processing?
>
> Regards,
>
> Aparna
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131009/c22f1be3/attachment.html>


More information about the OpenStack-dev mailing list