Просмотр исходного кода

Reorganised package structure.

nuwan_ag 10 лет назад
Родитель
Сommit
25642204fe

+ 1 - 1
README.rst

@@ -33,7 +33,7 @@ look like the following.
 
 .. code-block:: python
 
-	from cloudbridge.providers.factory import CloudProviderFactory, ProviderList
+	from cloudbridge.cloud.factory import CloudProviderFactory, ProviderList
 
 	provider = CloudProviderFactory().create_provider(ProviderList.AWS, {})
 	print(provider.security.key_pairs.list())

+ 2 - 0
cloudbridge/cloud/__init__.py

@@ -0,0 +1,2 @@
+from .factory import CloudProviderFactory
+from .factory import ProviderList

+ 32 - 31
cloudbridge/providers/base.py → cloudbridge/cloud/base.py

@@ -4,40 +4,41 @@ Implementation of common methods across cloud providers.
 
 import logging
 import time
+
 import six
 
-from cloudbridge.providers.interfaces import CloudProvider
-from cloudbridge.providers.interfaces import Instance
-from cloudbridge.providers.interfaces import InstanceState
-from cloudbridge.providers.interfaces import InstanceType
-from cloudbridge.providers.interfaces import KeyPair
-from cloudbridge.providers.interfaces import MachineImage
-from cloudbridge.providers.interfaces import MachineImageState
-from cloudbridge.providers.interfaces import ObjectLifeCycleMixin
-from cloudbridge.providers.interfaces import Region
-from cloudbridge.providers.interfaces import SecurityGroup
-from cloudbridge.providers.interfaces import SecurityGroupRule
-from cloudbridge.providers.interfaces import Snapshot
-from cloudbridge.providers.interfaces import SnapshotState
-from cloudbridge.providers.interfaces import Volume
-from cloudbridge.providers.interfaces import VolumeState
-from cloudbridge.providers.interfaces import WaitStateException
-from cloudbridge.providers.interfaces.resources \
+from cloudbridge.cloud.interfaces import CloudProvider
+from cloudbridge.cloud.interfaces.resources \
     import InvalidConfigurationException
-from cloudbridge.providers.interfaces.services import BlockStoreService
-from cloudbridge.providers.interfaces.services import ComputeService
-from cloudbridge.providers.interfaces.services import ImageService
-from cloudbridge.providers.interfaces.services import InstanceService
-from cloudbridge.providers.interfaces.services import InstanceTypesService
-from cloudbridge.providers.interfaces.services import KeyPairService
-from cloudbridge.providers.interfaces.services import LaunchConfig
-from cloudbridge.providers.interfaces.services import ObjectStoreService
-from cloudbridge.providers.interfaces.services import ProviderService
-from cloudbridge.providers.interfaces.services import RegionService
-from cloudbridge.providers.interfaces.services import SecurityGroupService
-from cloudbridge.providers.interfaces.services import SecurityService
-from cloudbridge.providers.interfaces.services import SnapshotService
-from cloudbridge.providers.interfaces.services import VolumeService
+from cloudbridge.cloud.interfaces.resources import Instance
+from cloudbridge.cloud.interfaces.resources import InstanceState
+from cloudbridge.cloud.interfaces.resources import InstanceType
+from cloudbridge.cloud.interfaces.resources import KeyPair
+from cloudbridge.cloud.interfaces.resources import MachineImage
+from cloudbridge.cloud.interfaces.resources import MachineImageState
+from cloudbridge.cloud.interfaces.resources import ObjectLifeCycleMixin
+from cloudbridge.cloud.interfaces.resources import Region
+from cloudbridge.cloud.interfaces.resources import SecurityGroup
+from cloudbridge.cloud.interfaces.resources import SecurityGroupRule
+from cloudbridge.cloud.interfaces.resources import Snapshot
+from cloudbridge.cloud.interfaces.resources import SnapshotState
+from cloudbridge.cloud.interfaces.resources import Volume
+from cloudbridge.cloud.interfaces.resources import VolumeState
+from cloudbridge.cloud.interfaces.resources import WaitStateException
+from cloudbridge.cloud.interfaces.services import BlockStoreService
+from cloudbridge.cloud.interfaces.services import ComputeService
+from cloudbridge.cloud.interfaces.services import ImageService
+from cloudbridge.cloud.interfaces.services import InstanceService
+from cloudbridge.cloud.interfaces.services import InstanceTypesService
+from cloudbridge.cloud.interfaces.services import KeyPairService
+from cloudbridge.cloud.interfaces.services import LaunchConfig
+from cloudbridge.cloud.interfaces.services import ObjectStoreService
+from cloudbridge.cloud.interfaces.services import ProviderService
+from cloudbridge.cloud.interfaces.services import RegionService
+from cloudbridge.cloud.interfaces.services import SecurityGroupService
+from cloudbridge.cloud.interfaces.services import SecurityService
+from cloudbridge.cloud.interfaces.services import SnapshotService
+from cloudbridge.cloud.interfaces.services import VolumeService
 
 
 log = logging.getLogger(__name__)

+ 5 - 3
cloudbridge/providers/factory.py → cloudbridge/cloud/factory.py

@@ -28,13 +28,15 @@ class CloudProviderFactory(object):
             {"name": ProviderList.OPENSTACK,
              "implementations":
                 [{"class":
-                  "cloudbridge.providers.openstack.OpenStackCloudProviderV1",
+                  "cloudbridge.cloud.providers.openstack.OpenStackCloud"
+                  "ProviderV1",
                   "version": 1}]},
             {"name": ProviderList.AWS,
              "implementations":
-                [{"class": "cloudbridge.providers.aws.AWSCloudProviderV1",
+                [{"class": "cloudbridge.cloud.providers.aws.AWSCloudProvider"
+                  "V1",
                   "mock_class":
-                  "cloudbridge.providers.aws.MockAWSCloudProvider",
+                  "cloudbridge.cloud.providers.aws.MockAWSCloudProvider",
                   "version": 1}]}]
 
     def find_provider_impl(self, name, version=None, get_mock=False):

+ 12 - 0
cloudbridge/cloud/interfaces/__init__.py

@@ -0,0 +1,12 @@
+"""
+Public interface exports
+"""
+from .impl import CloudProvider
+from .resources import CloudProviderServiceType
+from .resources import InstanceState
+from .resources import InvalidConfigurationException
+from .resources import MachineImageState
+from .resources import Region
+from .resources import SnapshotState
+from .resources import VolumeState
+from .services import LaunchConfig

+ 0 - 0
cloudbridge/providers/interfaces/impl.py → cloudbridge/cloud/interfaces/impl.py


+ 0 - 0
cloudbridge/providers/interfaces/resources.py → cloudbridge/cloud/interfaces/resources.py


+ 0 - 0
cloudbridge/providers/interfaces/services.py → cloudbridge/cloud/interfaces/services.py


+ 0 - 0
cloudbridge/providers/__init__.py → cloudbridge/cloud/providers/__init__.py


+ 0 - 1
cloudbridge/providers/aws/__init__.py → cloudbridge/cloud/providers/aws/__init__.py

@@ -4,4 +4,3 @@ Exports from this provider
 
 from .impl import AWSCloudProviderV1
 from .impl import MockAWSCloudProvider
-from .resources import AWSInstance

+ 1 - 1
cloudbridge/providers/aws/impl.py → cloudbridge/cloud/providers/aws/impl.py

@@ -10,7 +10,7 @@ from httpretty import HTTPretty
 from moto.ec2 import mock_ec2
 from moto.s3 import mock_s3
 
-from cloudbridge.providers.base import BaseCloudProvider
+from cloudbridge.cloud.base import BaseCloudProvider
 from test.helpers import TestMockHelperMixin
 
 from .services import AWSBlockStoreService

+ 16 - 16
cloudbridge/providers/aws/resources.py → cloudbridge/cloud/providers/aws/resources.py

@@ -7,22 +7,22 @@ from boto.exception import EC2ResponseError
 from boto.s3.key import Key
 from retrying import retry
 
-from cloudbridge.providers.base import BaseInstance
-from cloudbridge.providers.base import BaseInstanceType
-from cloudbridge.providers.base import BaseKeyPair
-from cloudbridge.providers.base import BaseMachineImage
-from cloudbridge.providers.base import BaseRegion
-from cloudbridge.providers.base import BaseSecurityGroup
-from cloudbridge.providers.base import BaseSecurityGroupRule
-from cloudbridge.providers.base import BaseSnapshot
-from cloudbridge.providers.base import BaseVolume
-from cloudbridge.providers.interfaces import Container
-from cloudbridge.providers.interfaces import ContainerObject
-from cloudbridge.providers.interfaces import InstanceState
-from cloudbridge.providers.interfaces import MachineImageState
-from cloudbridge.providers.interfaces import SnapshotState
-from cloudbridge.providers.interfaces import VolumeState
-from cloudbridge.providers.interfaces.resources import PlacementZone
+from cloudbridge.cloud.base import BaseInstance
+from cloudbridge.cloud.base import BaseInstanceType
+from cloudbridge.cloud.base import BaseKeyPair
+from cloudbridge.cloud.base import BaseMachineImage
+from cloudbridge.cloud.base import BaseRegion
+from cloudbridge.cloud.base import BaseSecurityGroup
+from cloudbridge.cloud.base import BaseSecurityGroupRule
+from cloudbridge.cloud.base import BaseSnapshot
+from cloudbridge.cloud.base import BaseVolume
+from cloudbridge.cloud.interfaces.resources import Container
+from cloudbridge.cloud.interfaces.resources import ContainerObject
+from cloudbridge.cloud.interfaces.resources import InstanceState
+from cloudbridge.cloud.interfaces.resources import MachineImageState
+from cloudbridge.cloud.interfaces.resources import PlacementZone
+from cloudbridge.cloud.interfaces.resources import SnapshotState
+from cloudbridge.cloud.interfaces.resources import VolumeState
 
 
 class AWSMachineImage(BaseMachineImage):

+ 21 - 21
cloudbridge/providers/aws/services.py → cloudbridge/cloud/providers/aws/services.py

@@ -8,27 +8,27 @@ from boto.ec2.blockdevicemapping import BlockDeviceType
 from boto.exception import EC2ResponseError
 import requests
 
-from cloudbridge.providers.base import BaseBlockStoreService
-from cloudbridge.providers.base import BaseComputeService
-from cloudbridge.providers.base import BaseImageService
-from cloudbridge.providers.base import BaseInstanceService
-from cloudbridge.providers.base import BaseInstanceTypesService
-from cloudbridge.providers.base import BaseKeyPairService
-from cloudbridge.providers.base import BaseLaunchConfig
-from cloudbridge.providers.base import BaseObjectStoreService
-from cloudbridge.providers.base import BaseRegionService
-from cloudbridge.providers.base import BaseSecurityGroupService
-from cloudbridge.providers.base import BaseSecurityService
-from cloudbridge.providers.base import BaseSnapshotService
-from cloudbridge.providers.base import BaseVolumeService
-from cloudbridge.providers.interfaces import InstanceType
-from cloudbridge.providers.interfaces import KeyPair
-from cloudbridge.providers.interfaces import MachineImage
-from cloudbridge.providers.interfaces import PlacementZone
-from cloudbridge.providers.interfaces import SecurityGroup
-from cloudbridge.providers.interfaces.resources import Snapshot
-from cloudbridge.providers.interfaces.resources import Volume
-from cloudbridge.providers.interfaces.services import LaunchConfig
+from cloudbridge.cloud.base import BaseBlockStoreService
+from cloudbridge.cloud.base import BaseComputeService
+from cloudbridge.cloud.base import BaseImageService
+from cloudbridge.cloud.base import BaseInstanceService
+from cloudbridge.cloud.base import BaseInstanceTypesService
+from cloudbridge.cloud.base import BaseKeyPairService
+from cloudbridge.cloud.base import BaseLaunchConfig
+from cloudbridge.cloud.base import BaseObjectStoreService
+from cloudbridge.cloud.base import BaseRegionService
+from cloudbridge.cloud.base import BaseSecurityGroupService
+from cloudbridge.cloud.base import BaseSecurityService
+from cloudbridge.cloud.base import BaseSnapshotService
+from cloudbridge.cloud.base import BaseVolumeService
+from cloudbridge.cloud.interfaces.resources import InstanceType
+from cloudbridge.cloud.interfaces.resources import KeyPair
+from cloudbridge.cloud.interfaces.resources import MachineImage
+from cloudbridge.cloud.interfaces.resources import PlacementZone
+from cloudbridge.cloud.interfaces.resources import SecurityGroup
+from cloudbridge.cloud.interfaces.resources import Snapshot
+from cloudbridge.cloud.interfaces.resources import Volume
+from cloudbridge.cloud.interfaces.services import LaunchConfig
 
 from .resources import AWSContainer
 from .resources import AWSInstance

+ 5 - 0
cloudbridge/cloud/providers/openstack/__init__.py

@@ -0,0 +1,5 @@
+"""
+Exports from this provider
+"""
+
+from .impl import OpenStackCloudProviderV1

+ 1 - 1
cloudbridge/providers/openstack/impl.py → cloudbridge/cloud/providers/openstack/impl.py

@@ -12,7 +12,7 @@ from keystoneclient.auth.identity import Password
 from novaclient import client as nova_client
 from swiftclient import client as swift_client
 
-from cloudbridge.providers.base import BaseCloudProvider
+from cloudbridge.cloud.base import BaseCloudProvider
 
 from .services import OpenStackBlockStoreService
 from .services import OpenStackComputeService

+ 16 - 16
cloudbridge/providers/openstack/resources.py → cloudbridge/cloud/providers/openstack/resources.py

@@ -6,22 +6,22 @@ import shutil
 import ipaddress
 from swiftclient.exceptions import ClientException
 
-from cloudbridge.providers.base import BaseInstance
-from cloudbridge.providers.base import BaseInstanceType
-from cloudbridge.providers.base import BaseKeyPair
-from cloudbridge.providers.base import BaseMachineImage
-from cloudbridge.providers.base import BaseRegion
-from cloudbridge.providers.base import BaseSecurityGroup
-from cloudbridge.providers.base import BaseSecurityGroupRule
-from cloudbridge.providers.base import BaseSnapshot
-from cloudbridge.providers.base import BaseVolume
-from cloudbridge.providers.interfaces import Container
-from cloudbridge.providers.interfaces import ContainerObject
-from cloudbridge.providers.interfaces import InstanceState
-from cloudbridge.providers.interfaces import MachineImageState
-from cloudbridge.providers.interfaces import PlacementZone
-from cloudbridge.providers.interfaces import SnapshotState
-from cloudbridge.providers.interfaces import VolumeState
+from cloudbridge.cloud.base import BaseInstance
+from cloudbridge.cloud.base import BaseInstanceType
+from cloudbridge.cloud.base import BaseKeyPair
+from cloudbridge.cloud.base import BaseMachineImage
+from cloudbridge.cloud.base import BaseRegion
+from cloudbridge.cloud.base import BaseSecurityGroup
+from cloudbridge.cloud.base import BaseSecurityGroupRule
+from cloudbridge.cloud.base import BaseSnapshot
+from cloudbridge.cloud.base import BaseVolume
+from cloudbridge.cloud.interfaces.resources import Container
+from cloudbridge.cloud.interfaces.resources import ContainerObject
+from cloudbridge.cloud.interfaces.resources import InstanceState
+from cloudbridge.cloud.interfaces.resources import MachineImageState
+from cloudbridge.cloud.interfaces.resources import PlacementZone
+from cloudbridge.cloud.interfaces.resources import SnapshotState
+from cloudbridge.cloud.interfaces.resources import VolumeState
 
 
 class OpenStackMachineImage(BaseMachineImage):

+ 21 - 21
cloudbridge/providers/openstack/services.py → cloudbridge/cloud/providers/openstack/services.py

@@ -4,27 +4,27 @@ Services implemented by the OpenStack provider.
 from cinderclient.exceptions import NotFound as CinderNotFound
 from novaclient.exceptions import NotFound as NovaNotFound
 
-from cloudbridge.providers.base import BaseBlockStoreService
-from cloudbridge.providers.base import BaseComputeService
-from cloudbridge.providers.base import BaseImageService
-from cloudbridge.providers.base import BaseInstanceService
-from cloudbridge.providers.base import BaseInstanceTypesService
-from cloudbridge.providers.base import BaseKeyPairService
-from cloudbridge.providers.base import BaseLaunchConfig
-from cloudbridge.providers.base import BaseObjectStoreService
-from cloudbridge.providers.base import BaseRegionService
-from cloudbridge.providers.base import BaseSecurityGroupService
-from cloudbridge.providers.base import BaseSecurityService
-from cloudbridge.providers.base import BaseSnapshotService
-from cloudbridge.providers.base import BaseVolumeService
-from cloudbridge.providers.interfaces import InstanceType
-from cloudbridge.providers.interfaces import KeyPair
-from cloudbridge.providers.interfaces import MachineImage
-from cloudbridge.providers.interfaces import PlacementZone
-from cloudbridge.providers.interfaces import SecurityGroup
-from cloudbridge.providers.interfaces.resources import Snapshot
-from cloudbridge.providers.interfaces.resources import Volume
-from cloudbridge.providers.interfaces.services import LaunchConfig
+from cloudbridge.cloud.base import BaseBlockStoreService
+from cloudbridge.cloud.base import BaseComputeService
+from cloudbridge.cloud.base import BaseImageService
+from cloudbridge.cloud.base import BaseInstanceService
+from cloudbridge.cloud.base import BaseInstanceTypesService
+from cloudbridge.cloud.base import BaseKeyPairService
+from cloudbridge.cloud.base import BaseLaunchConfig
+from cloudbridge.cloud.base import BaseObjectStoreService
+from cloudbridge.cloud.base import BaseRegionService
+from cloudbridge.cloud.base import BaseSecurityGroupService
+from cloudbridge.cloud.base import BaseSecurityService
+from cloudbridge.cloud.base import BaseSnapshotService
+from cloudbridge.cloud.base import BaseVolumeService
+from cloudbridge.cloud.interfaces.resources import InstanceType
+from cloudbridge.cloud.interfaces.resources import KeyPair
+from cloudbridge.cloud.interfaces.resources import MachineImage
+from cloudbridge.cloud.interfaces.resources import PlacementZone
+from cloudbridge.cloud.interfaces.resources import SecurityGroup
+from cloudbridge.cloud.interfaces.resources import Snapshot
+from cloudbridge.cloud.interfaces.resources import Volume
+from cloudbridge.cloud.interfaces.services import LaunchConfig
 
 from .resources import OpenStackContainer
 from .resources import OpenStackInstance

+ 0 - 35
cloudbridge/providers/interfaces/__init__.py

@@ -1,35 +0,0 @@
-"""
-Public interface exports
-"""
-from .impl import CloudProvider
-from .resources import CloudProviderServiceType
-from .resources import Container
-from .resources import ContainerObject
-from .resources import Instance
-from .resources import InstanceState
-from .resources import InstanceType
-from .resources import KeyPair
-from .resources import MachineImage
-from .resources import MachineImageState
-from .resources import ObjectLifeCycleMixin
-from .resources import PlacementZone
-from .resources import Region
-from .resources import SecurityGroup
-from .resources import SecurityGroupRule
-from .resources import Snapshot
-from .resources import SnapshotState
-from .resources import Volume
-from .resources import VolumeState
-from .resources import WaitStateException
-from .services import BlockStoreService
-from .services import ComputeService
-from .services import ImageService
-from .services import InstanceTypesService
-from .services import KeyPairService
-from .services import ObjectStoreService
-from .services import ProviderService
-from .services import RegionService
-from .services import SecurityGroupService
-from .services import SecurityService
-from .services import SnapshotService
-from .services import VolumeService

+ 0 - 7
cloudbridge/providers/openstack/__init__.py

@@ -1,7 +0,0 @@
-"""
-Exports from this provider
-"""
-
-from .impl import OpenStackCloudProviderV1
-from .resources import OpenStackInstance
-from .resources import OpenStackInstanceType

+ 5 - 3
example.py

@@ -1,11 +1,13 @@
 from test import helpers
 
-from cloudbridge.providers.factory import CloudProviderFactory
-from cloudbridge.providers.factory import ProviderList
+from cloudbridge.cloud.factory import CloudProviderFactory
+from cloudbridge.cloud.factory import ProviderList
 
 
 config = {}
-provider = CloudProviderFactory().create_provider(ProviderList.OPENSTACK, config)
+provider = CloudProviderFactory().create_provider(
+    ProviderList.OPENSTACK,
+    config)
 # print provider.security.list_key_pairs()
 # print provider.compute.instance_types.list()
 # print provider.compute.instance_types.find_by_name("m1.small")

+ 0 - 1
test/__init__.py

@@ -39,7 +39,6 @@ from test.test_provider_object_store_service import \
 from test.test_provider_region_service import ProviderRegionServiceTestCase
 from test.test_provider_security_service import ProviderSecurityServiceTestCase
 
-
 PROVIDER_TESTS = [
     ProviderInterfaceTestCase,
     ProviderSecurityServiceTestCase,

+ 1 - 1
test/helpers.py

@@ -4,7 +4,7 @@ import sys
 import unittest
 from six import reraise
 
-from cloudbridge.providers.factory import CloudProviderFactory
+from cloudbridge.cloud.factory import CloudProviderFactory
 
 
 def parse_bool(val):

+ 2 - 2
test/test_provider_block_store_service.py

@@ -1,7 +1,7 @@
 import uuid
 
-from cloudbridge.providers.interfaces import SnapshotState
-from cloudbridge.providers.interfaces import VolumeState
+from cloudbridge.cloud.interfaces import SnapshotState
+from cloudbridge.cloud.interfaces import VolumeState
 from test.helpers import ProviderTestBase
 import test.helpers as helpers
 

+ 3 - 3
test/test_provider_compute_service.py

@@ -2,10 +2,10 @@ import uuid
 
 import ipaddress
 
-from cloudbridge.providers.interfaces import InstanceState
-from cloudbridge.providers.interfaces.resources \
+from cloudbridge.cloud.interfaces \
     import InvalidConfigurationException
-from cloudbridge.providers.interfaces.services import LaunchConfig
+from cloudbridge.cloud.interfaces import InstanceState
+from cloudbridge.cloud.interfaces import LaunchConfig
 from test.helpers import ProviderTestBase
 import test.helpers as helpers
 

+ 5 - 5
test/test_provider_factory.py

@@ -1,9 +1,9 @@
 import unittest
 
-from cloudbridge.providers import factory
-from cloudbridge.providers import interfaces
-from cloudbridge.providers.aws import AWSCloudProviderV1
-from cloudbridge.providers.factory import CloudProviderFactory
+from cloudbridge.cloud import factory
+from cloudbridge.cloud import interfaces
+from cloudbridge.cloud.factory import CloudProviderFactory
+from cloudbridge.cloud.providers.aws import AWSCloudProviderV1
 import test.helpers as helpers
 
 
@@ -42,7 +42,7 @@ class ProviderFactoryTestCase(unittest.TestCase):
                 factory.ProviderList.AWS))
         self.assertEqual(CloudProviderFactory().find_provider_impl(
             factory.ProviderList.AWS, version=1),
-            "cloudbridge.providers.aws.AWSCloudProviderV1")
+            "cloudbridge.cloud.providers.aws.AWSCloudProviderV1")
 
     def test_find_provider_impl_invalid(self):
         """

+ 1 - 1
test/test_provider_image_service.py

@@ -1,6 +1,6 @@
 import uuid
 import six
-from cloudbridge.providers.interfaces import MachineImageState
+from cloudbridge.cloud.interfaces import MachineImageState
 from test.helpers import ProviderTestBase
 import test.helpers as helpers
 

+ 1 - 1
test/test_provider_interface.py

@@ -1,4 +1,4 @@
-from cloudbridge.providers import interfaces
+from cloudbridge.cloud import interfaces
 from test.helpers import ProviderTestBase
 
 

+ 1 - 1
test/test_provider_region_service.py

@@ -1,4 +1,4 @@
-from cloudbridge.providers.interfaces import Region
+from cloudbridge.cloud.interfaces import Region
 from test.helpers import ProviderTestBase
 
 

+ 1 - 1
tox.ini

@@ -13,7 +13,7 @@ deps = -rrequirements.txt
 
 # Run coverage for python27 - omit interfaces.py since it's a behaviour spec only.
 [testenv:py27]
-commands = {envpython} -m coverage run --branch --source=cloudbridge --omit=cloudbridge/providers/interfaces/* setup.py test
+commands = {envpython} -m coverage run --branch --source=cloudbridge --omit=cloudbridge/cloud/interfaces/* setup.py test
 deps =
     -rrequirements.txt
     coverage