Providers¶
CloudProvider¶
- class cloudbridge.interfaces.provider.CloudProvider(config)[source]¶
Base interface for a cloud provider
- abstract __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
- Returns
a concrete provider instance
- abstract 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.
- abstract clone(zone=None)[source]¶
Create a clone of this provider. An optional zone parameter can be used to clone the provider to use a different zone. As each cloudbridge provider is restricted to a particular zone, this is useful when performing cross-zonal operations.
Example:
# list instances in all availability zones all_instances = [] for zone in provider.compute.regions.current.zones: new_provider = provider.clone(zone=zone) all_instances.append(list(new_provider.compute.instances)) print(all_instances)
- Parameters
zone (
PlacementZone
object) – Changes the provider’s zone to the requested AvailabilityZone- Return type
- Returns
A clone of the CloudProvider, with zone changed to the requested zone.
- abstract property 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
- Returns
a ComputeService object
- abstract property 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
- Returns
An object of class Configuration, which contains the values used to initialize the provider, as well as other global configuration properties.
- abstract property dns¶
Provides access to all DNS related services.
Example:
if provider.has_service(CloudServiceType.DNS): print("Provider supports DNS services") dns_zones = provider.dns.host_zones.list() print(dns_zones)
- Return type
- Returns
a DNS service object
- abstract 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.
- abstract property 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.
- abstract property 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
- Returns
a NetworkingService object
- abstract property 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
- abstract property 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
ofSecurityService
- Returns
a SecurityService object
- abstract property 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
- Returns
a StorageService object
- abstract property 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