Source code for adles.interfaces.cloud_interface
import logging
from adles.interfaces.libcloud_interface import LibcloudInterface
[docs]class CloudInterface(LibcloudInterface):
"""Generic interface for all cloud platforms."""
def __init__(self, infra, spec):
"""
:param dict infra: Dict of infrastructure information
:param dict spec: Dict of a parsed specification
"""
super(CloudInterface, self).__init__(infra=infra, spec=spec)
self._log = logging.getLogger(str(self.__class__))
self._log.debug("Initializing %s", self.__class__)
self.max_instance_price = float(infra["max-instance-price"])
self.max_total_price = float(infra["max-total-price"])
# Cache currently available images and sizes
self.available_images = self.provider.list_images()
self.available_sizes = self.provider.list_sizes()
self._log.debug(self.available_images)
self._log.debug(self.available_sizes)
[docs] def create_masters(self):
pass
[docs] def deploy_environment(self):
pass
[docs] def cleanup_masters(self, network_cleanup=False):
pass
[docs] def cleanup_environment(self, network_cleanup=False):
pass
def __str__(self):
return str(self.provider_name)
def __eq__(self, other):
return super(self.__class__, self).__eq__(other) \
and self.provider_name == other.provider_name \
and self.username == other.username \
and self.api_key == other.api_key