Providers

CloudProvider

class cloudbridge.interfaces.provider.CloudProvider(config)[source]

Base interface for a cloud provider

__init__(config)[source]

Create a new provider instance given a dictionary of configuration attributes.

Parameters:config (dict) – A dictionary object containing provider initialization values. Alternatively, this can be an iterable of key/value pairs (as tuples or other iterables of length two). See specific provider implementation for the required fields.
Return type:CloudProvider
Returns:a concrete provider instance
authenticate()[source]

Checks whether a provider can be successfully authenticated with the configured settings. Clients are not required to call this method prior to accessing provider services, as most cloud connections are initialized lazily. The authenticate() method will return True if cloudbridge can establish a successful connection to the provider. It will raise an exception with the appropriate error details otherwise.

Example:

try:
    if provider.authenticate():
       print("Provider connection successful")
except ProviderConnectionException as e:
    print("Could not authenticate with provider: %s" % (e, ))
Return type:bool
Returns:True if authentication is successful.
compute

Provides access to all compute related services in this provider.

Example:

regions = provider.compute.regions.list()
vm_types = provider.compute.vm_types.list()
instances = provider.compute.instances.list()
images = provider.compute.images.list()

# Alternatively
for instance in provider.compute.instances:
   print(instance.name)
Return type:ComputeService
Returns:a ComputeService object
config

Returns the config object associated with this provider. This object is a subclass of dict and will contain the properties provided at initialization time, grouped under cloud_properties and credentials keys. In addition, it also contains extra provider-wide properties such as the default result limit for list() queries.

Example:

config = { 'aws_access_key' : '<my_key>' }
provider = factory.create_provider(ProviderList.AWS, config)
print(provider.config['credentials'].get('aws_access_key'))
print(provider.config.default_result_limit))
# change provider result limit
provider.config.default_result_limit = 100
Return type:Configuration
Returns:An object of class Configuration, which contains the values used to initialize the provider, as well as other global configuration properties.
has_service(service_type)[source]

Checks whether this provider supports a given service.

Example:

if provider.has_service(CloudServiceType.BUCKET):
   print("Provider supports object store services")
   provider.storage.buckets.list()
Parameters:service_type (CloudServiceType) – Type of service to check support for.
Return type:bool
Returns:True if the service type is supported.
middleware

Returns the middleware manager associated with this provider. The middleware manager can be used to add or remove middleware from cloudbridge. Refer to pyeventsystem documentation for more information on how the middleware manager works.

Return type:MiddlewareManager
Returns:An object of class MiddlewareManager, which can be used to

add or remove middleware from cloudbridge.

networking

Provide access to all network related services in this provider.

Example:

networks = provider.networking.networks.list()
subnets = provider.networking.subnets.list()
routers = provider.networking.routers.list()
Return type:NetworkingService
Returns:a NetworkingService object
region_name

Returns the region that this provider is connected to. All provider operations will take place within this region.

Return type:str
Returns:a zone id
security

Provides access to key pair management and firewall control

Example:

keypairs = provider.security.keypairs.list()
vm_firewalls = provider.security.vm_firewalls.list()
Return type:object of SecurityService
Returns:a SecurityService object
storage

Provides access to storage related services in this provider. This includes the volume, snapshot and bucket services,

Example:

volumes = provider.storage.volumes.list()
snapshots = provider.storage.snapshots.list()
if provider.has_service(CloudServiceType.BUCKET):
   print("Provider supports object store services")
   print(provider.storage.buckets.list())
Return type:StorageService
Returns:a StorageService object
zone_name

Returns the placement zone that this provider is connected to. All provider operations will take place within this zone. Placement zone must be within the provider default region.

Return type:str
Returns:a zone id

ContainerProvider

class cloudbridge.interfaces.provider.ContainerProvider[source]

Represents a container instance, such as Docker or LXC