Components
Libcloud is composed of multiple components, currently those are:
- Compute - libcloud.compute.*
- Storage - libcloud.storage.*
- Load balancers - libcloud.loadbalancer.*
- DNS - libcloud.dns.*
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_
.