Components

Libcloud is composed of multiple components, currently those are:

Each component is relatively self-sustainable and exposes a simple and easy to use base API which works across all the supported providers.

In places where it makes sense a component is also aware of other components. Good example of this is a balancer_attach_node method in the load balancer API. This method takes Node object from the compute API as an argument and automatically reads its first public IP address before adding a member to the load balancer.

Besides the Base API some drivers also implement driver-specific or so called extension methods and arguments. Those methods implement functionality which is specific to a provider or a subset of providers. They can be easily recognized because they are prefixed with an ex_.