Jelajahi Sumber

Rename EC2 into AWS to be consistent with the naming principles used with OpenStack

Enis Afgan 10 tahun lalu
induk
melakukan
6fd60d9370

+ 4 - 4
README.md

@@ -1,6 +1,6 @@
 # cloudbridge
-cloudbridge provides a layer of abstraction over different cloud providers. It's a straightfoward implementation of
-the bridge pattern.
+cloudbridge provides a layer of abstraction over different cloud providers.
+It's a straightfoward implementation of the [bridge pattern](https://en.wikipedia.org/wiki/Bridge_pattern).
 
 [![Code Climate](https://codeclimate.com/github/gvlproject/libcloudbridge/badges/gpa.svg)](https://codeclimate.com/github/gvlproject/cloudbridge)
 [![Code Health](https://landscape.io/github/gvlproject/cloudbridge/master/landscape.svg?style=flat)](https://landscape.io/github/gvlproject/cloudbridge/master)
@@ -16,7 +16,7 @@ from bunch import Bunch
 config = Bunch(access_key='a_key',
                secret_key='s_key')
 
-provider = CloudProviderFactory().create_provider(ProviderList.EC2, config)
+provider = CloudProviderFactory().create_provider(ProviderList.AWS, config)
 print(provider.security.list_key_pairs())
 ```
 
@@ -30,7 +30,7 @@ tests, you should have all the environment variables listed in
 If you’d like to run the tests on a specific environment only, use a command
 like this: `tox -e py27` (or ``python setup.py test`` directly). If you'd
 like to run the tests for a specific cloud only, you should export env var
-``CB_TEST_PROVIDER`` and specify the desired provider name (e.g., ``ec2`` or
+``CB_TEST_PROVIDER`` and specify the desired provider name (e.g., ``aws`` or
 ``openstack``) and then run the ``tox`` command.
 
 Note that running the tests will create various cloud resources, for which you

+ 6 - 0
cloudbridge/providers/aws/__init__.py

@@ -0,0 +1,6 @@
+"""
+Exports from this provider
+"""
+
+from .impl import AWSCloudProviderV1
+from .types import AWSInstance

+ 14 - 14
cloudbridge/providers/ec2/impl.py → cloudbridge/providers/aws/impl.py

@@ -1,5 +1,5 @@
 """
-Provider implementation based on boto library for EC2-compatible clouds.
+Provider implementation based on boto library for AWS-compatible clouds.
 """
 
 import os
@@ -9,16 +9,16 @@ from boto.ec2.regioninfo import RegionInfo
 
 from cloudbridge.providers.base import BaseCloudProvider
 
-from .services import EC2ComputeService
-from .services import EC2ImageService
-from .services import EC2SecurityService
+from .services import AWSComputeService
+from .services import AWSImageService
+from .services import AWSSecurityService
 
 
-class EC2CloudProviderV1(BaseCloudProvider):
+class AWSCloudProviderV1(BaseCloudProvider):
 
     def __init__(self, config):
-        super(EC2CloudProviderV1, self).__init__(config)
-        self.cloud_type = 'ec2'
+        super(AWSCloudProviderV1, self).__init__(config)
+        self.cloud_type = 'aws'
 
         # Initialize cloud connection fields
         self.a_key = self._get_config_value(
@@ -36,11 +36,11 @@ class EC2CloudProviderV1(BaseCloudProvider):
         self.ec2_conn = self._connect_ec2()
 
         # Initialize provider services
-        self.compute = EC2ComputeService(self)
-        self.images = EC2ImageService(self)
-        self.security = EC2SecurityService(self)
-        self.block_store = None  # EC2BlockStore(self)
-        self.object_store = None  # EC2ObjectStore(self)
+        self.compute = AWSComputeService(self)
+        self.images = AWSImageService(self)
+        self.security = AWSSecurityService(self)
+        self.block_store = None  # AWSBlockStore(self)
+        self.object_store = None  # AWSObjectStore(self)
 
     def _connect_ec2(self):
         """
@@ -52,7 +52,7 @@ class EC2CloudProviderV1(BaseCloudProvider):
             aws_secret_access_key=self.s_key,
             # api_version is needed for availability
             # zone support for EC2
-            api_version='2012-06-01' if self.cloud_type == 'ec2' else None,
+            api_version='2012-06-01' if self.cloud_type == 'aws' else None,
             is_secure=self.is_secure,
             region=r,
             port=self.ec2_port,
@@ -70,7 +70,7 @@ class EC2CloudProviderV1(BaseCloudProvider):
             aws_secret_access_key=self.s_key,
             # api_version is needed for availability
             # zone support for EC2
-            api_version='2012-06-01' if self.cloud_type == 'ec2' else None,
+            api_version='2012-06-01' if self.cloud_type == 'aws' else None,
             is_secure=self.is_secure,
             region=r,
             port=self.ec2_port,

+ 8 - 8
cloudbridge/providers/ec2/services.py → cloudbridge/providers/aws/services.py

@@ -13,11 +13,11 @@ from cloudbridge.providers.interfaces import PlacementZone
 from cloudbridge.providers.interfaces import SecurityGroup
 from cloudbridge.providers.interfaces import SecurityService
 
-from .types import EC2Instance
-from .types import EC2MachineImage
+from .types import AWSInstance
+from .types import AWSMachineImage
 
 
-class EC2SecurityService(SecurityService):
+class AWSSecurityService(SecurityService):
 
     def __init__(self, provider):
         self.provider = provider
@@ -43,7 +43,7 @@ class EC2SecurityService(SecurityService):
         return [BaseSecurityGroup(group.name) for group in groups]
 
 
-class EC2ImageService(ImageService):
+class AWSImageService(ImageService):
 
     def __init__(self, provider):
         self.provider = provider
@@ -54,7 +54,7 @@ class EC2ImageService(ImageService):
         """
         image = self.provider.ec2_conn.get_image(image_id)
         if image:
-            return EC2MachineImage(self.provider, image)
+            return AWSMachineImage(self.provider, image)
         else:
             return None
 
@@ -72,10 +72,10 @@ class EC2ImageService(ImageService):
         # TODO: get_all_images returns too many images - some kind of filtering
         # abilities are needed. Forced to "self" for now
         images = self.provider.ec2_conn.get_all_images(owners="self")
-        return [EC2MachineImage(self.provider, image) for image in images]
+        return [AWSMachineImage(self.provider, image) for image in images]
 
 
-class EC2ComputeService(ComputeService):
+class AWSComputeService(ComputeService):
 
     def __init__(self, provider):
         self.provider = provider
@@ -110,6 +110,6 @@ class EC2ComputeService(ComputeService):
             user_data=user_data
         )
         if reservation:
-            instance = EC2Instance(self.provider, reservation.instances[0])
+            instance = AWSInstance(self.provider, reservation.instances[0])
             instance.name = name
         return instance

+ 9 - 9
cloudbridge/providers/ec2/types.py → cloudbridge/providers/aws/types.py

@@ -11,7 +11,7 @@ from cloudbridge.providers.interfaces import InstanceType
 from cloudbridge.providers.interfaces import MachineImageState
 
 
-class EC2MachineImage(BaseMachineImage):
+class AWSMachineImage(BaseMachineImage):
 
     IMAGE_STATE_MAP = {
         'pending': MachineImageState.PENDING,
@@ -21,7 +21,7 @@ class EC2MachineImage(BaseMachineImage):
 
     def __init__(self, provider, image):
         self.provider = provider
-        if isinstance(image, EC2MachineImage):
+        if isinstance(image, AWSMachineImage):
             self._ec2_image = image._ec2_image
         else:
             self._ec2_image = image
@@ -64,7 +64,7 @@ class EC2MachineImage(BaseMachineImage):
 
     @property
     def state(self):
-        return EC2MachineImage.IMAGE_STATE_MAP.get(
+        return AWSMachineImage.IMAGE_STATE_MAP.get(
             self._ec2_image.state, MachineImageState.UNKNOWN)
 
     def refresh(self):
@@ -76,7 +76,7 @@ class EC2MachineImage(BaseMachineImage):
             self.image_id)._ec2_image
 
 
-class EC2InstanceType(InstanceType):
+class AWSInstanceType(InstanceType):
 
     def __init__(self, instance_type):
         self.instance_type = instance_type
@@ -90,10 +90,10 @@ class EC2InstanceType(InstanceType):
         return self.instance_type
 
     def __repr__(self):
-        return "<CB-EC2InstanceType: {0}>".format(self.id)
+        return "<CB-AWSInstanceType: {0}>".format(self.id)
 
 
-class EC2Instance(BaseInstance):
+class AWSInstance(BaseInstance):
 
     # ref:
     # http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html
@@ -152,7 +152,7 @@ class EC2Instance(BaseInstance):
         """
         Get the instance type.
         """
-        return EC2InstanceType(self._ec2_instance.instance_type)
+        return AWSInstanceType(self._ec2_instance.instance_type)
 
     def reboot(self):
         """
@@ -208,11 +208,11 @@ class EC2Instance(BaseInstance):
         """
         image_id = self._ec2_instance.create_image(name)
         image = self.provider.images.get_image(image_id)
-        return EC2MachineImage(self.provider, image)
+        return AWSMachineImage(self.provider, image)
 
     @property
     def state(self):
-        return EC2Instance.INSTANCE_STATE_MAP.get(
+        return AWSInstance.INSTANCE_STATE_MAP.get(
             self._ec2_instance.state, InstanceState.UNKNOWN)
 
     def refresh(self):

+ 0 - 6
cloudbridge/providers/ec2/__init__.py

@@ -1,6 +0,0 @@
-"""
-Exports from this provider
-"""
-
-from .impl import EC2CloudProviderV1
-from .types import EC2Instance

+ 4 - 4
cloudbridge/providers/factory.py

@@ -2,7 +2,7 @@ import importlib
 
 
 class ProviderList(object):
-    EC2 = 'ec2'
+    AWS = 'aws'
     OPENSTACK = 'openstack'
     AZURE = 'azure'
 
@@ -28,9 +28,9 @@ class CloudProviderFactory(object):
                  "implementations":
                  [{"class": "cloudbridge.providers.openstack.OpenStackCloudProviderV1",
                    "version": 1}]},
-                {"name": ProviderList.EC2,
+                {"name": ProviderList.AWS,
                  "implementations":
-                 [{"class": "cloudbridge.providers.ec2.EC2CloudProviderV1",
+                 [{"class": "cloudbridge.providers.aws.AWSCloudProviderV1",
                    "version": 1}]}]
 
     def find_provider_impl(self, name, version=None):
@@ -72,7 +72,7 @@ class CloudProviderFactory(object):
         cloud provider.
 
         :type name: str
-        :param name: Cloud provider name: one of ``ec2``, ``openstack``.
+        :param name: Cloud provider name: one of ``aws``, ``openstack``.
 
         :type config: an object with required fields
         :param config: This can be a Bunch or any other object whose fields can

+ 1 - 1
test/helpers.py

@@ -5,7 +5,7 @@ from cloudbridge.providers.factory import CloudProviderFactory
 
 def create_test_instance(provider):
     instance_name = "HelloCloudBridge-{0}".format(provider.name)
-    if "EC2CloudProvider" in provider.name:
+    if "AWSCloudProvider" in provider.name:
         ami = os.environ.get('CB_AMI', 'ami-d85e75b0')
         instance_type = os.environ.get('CB_INSTANCE_TYPE', 't1.micro')
         return provider.compute.create_instance(

+ 6 - 6
test/test_provider_factory.py

@@ -11,7 +11,7 @@ class ProviderFactoryTestCase(unittest.TestCase):
         Creating a provider with a known name should return
         a valid implementation
         """
-        self.assertIsInstance(CloudProviderFactory().create_provider(factory.ProviderList.EC2, {}, version=1),
+        self.assertIsInstance(CloudProviderFactory().create_provider(factory.ProviderList.AWS, {}, version=1),
                               interfaces.CloudProvider,
                               "create_provider did not return a valid instance type")
 
@@ -22,15 +22,15 @@ class ProviderFactoryTestCase(unittest.TestCase):
         with self.assertRaises(NotImplementedError):
             CloudProviderFactory().create_provider("ec23", {})
         with self.assertRaises(NotImplementedError):
-            CloudProviderFactory().create_provider(factory.ProviderList.EC2, {}, version=100)
+            CloudProviderFactory().create_provider(factory.ProviderList.AWS, {}, version=100)
 
     def test_find_provider_impl_valid(self):
         """
         Searching for a provider with a known name or version should return a valid implementation
         """
-        self.assertTrue(CloudProviderFactory().find_provider_impl(factory.ProviderList.EC2))
-        self.assertEqual(CloudProviderFactory().find_provider_impl(factory.ProviderList.EC2, version=1),
-                         "cloudbridge.providers.ec2.EC2CloudProviderV1")
+        self.assertTrue(CloudProviderFactory().find_provider_impl(factory.ProviderList.AWS))
+        self.assertEqual(CloudProviderFactory().find_provider_impl(factory.ProviderList.AWS, version=1),
+                         "cloudbridge.providers.aws.AWSCloudProviderV1")
 
     def test_find_provider_impl_invalid(self):
         """
@@ -38,4 +38,4 @@ class ProviderFactoryTestCase(unittest.TestCase):
         """
         self.assertIsNone(CloudProviderFactory().find_provider_impl("openstack1"))
         self.assertIsNone(CloudProviderFactory().find_provider_impl(
-            factory.ProviderList.EC2, version=100))
+            factory.ProviderList.AWS, version=100))