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

Move Volumes, Snapshots, Buckets to Storage

Ehsan Chiniforooshan 8 лет назад
Родитель
Сommit
062df4c372

+ 11 - 17
cloudbridge/cloud/providers/gce/provider.py

@@ -15,11 +15,10 @@ from googleapiclient import discovery
 from oauth2client.client import GoogleCredentials
 from oauth2client.client import GoogleCredentials
 from oauth2client.service_account import ServiceAccountCredentials
 from oauth2client.service_account import ServiceAccountCredentials
 
 
-from .services import GCEBlockStoreService
 from .services import GCEComputeService
 from .services import GCEComputeService
 from .services import GCENetworkService
 from .services import GCENetworkService
 from .services import GCESecurityService
 from .services import GCESecurityService
-from .services import GCSObjectStoreService
+from .services import GCPStorageService
 
 
 
 
 class GCPResourceUrl(object):
 class GCPResourceUrl(object):
@@ -192,17 +191,16 @@ class GCECloudProvider(BaseCloudProvider):
 
 
         # service connections, lazily initialized
         # service connections, lazily initialized
         self._gce_compute = None
         self._gce_compute = None
-        self._gcp_storage = None
+        self._gcs_storage = None
 
 
         # Initialize provider services
         # Initialize provider services
         self._compute = GCEComputeService(self)
         self._compute = GCEComputeService(self)
         self._security = GCESecurityService(self)
         self._security = GCESecurityService(self)
         self._network = GCENetworkService(self)
         self._network = GCENetworkService(self)
-        self._block_store = GCEBlockStoreService(self)
-        self._object_store = GCSObjectStoreService(self)
+        self._storage = GCPStorageService(self)
 
 
         self._compute_resources = GCPResources(self.gce_compute)
         self._compute_resources = GCPResources(self.gce_compute)
-        self._storage_resources = GCPResources(self.gcp_storage)
+        self._storage_resources = GCPResources(self.gcs_storage)
 
 
     @property
     @property
     def compute(self):
     def compute(self):
@@ -217,12 +215,8 @@ class GCECloudProvider(BaseCloudProvider):
         return self._security
         return self._security
 
 
     @property
     @property
-    def block_store(self):
-        return self._block_store
-
-    @property
-    def object_store(self):
-        return self._object_store
+    def storage(self):
+        return self._storage
 
 
     @property
     @property
     def gce_compute(self):
     def gce_compute(self):
@@ -231,10 +225,10 @@ class GCECloudProvider(BaseCloudProvider):
         return self._gce_compute
         return self._gce_compute
 
 
     @property
     @property
-    def gcp_storage(self):
-        if not self._gcp_storage:
-            self._gcp_storage = self._connect_gcp_storage()
-        return self._gcp_storage
+    def gcs_storage(self):
+        if not self._gcs_storage:
+            self._gcs_storage = self._connect_gcs_storage()
+        return self._gcs_storage
 
 
     @property
     @property
     def _credentials(self):
     def _credentials(self):
@@ -244,7 +238,7 @@ class GCECloudProvider(BaseCloudProvider):
         else:
         else:
             return GoogleCredentials.get_application_default()
             return GoogleCredentials.get_application_default()
 
 
-    def _connect_gcp_storage(self):
+    def _connect_gcs_storage(self):
         return discovery.build('storage', 'v1', credentials=self._credentials)
         return discovery.build('storage', 'v1', credentials=self._credentials)
 
 
     def _connect_gce_compute(self):
     def _connect_gce_compute(self):

+ 2 - 2
cloudbridge/cloud/providers/gce/resources.py

@@ -1602,7 +1602,7 @@ class GCEVolume(BaseVolume):
         """
         """
         Create a snapshot of this Volume.
         Create a snapshot of this Volume.
         """
         """
-        return self._provider.block_store.snapshots.create(
+        return self._provider.storage.snapshots.create(
             name, self, description)
             name, self, description)
 
 
     def delete(self):
     def delete(self):
@@ -1734,7 +1734,7 @@ class GCESnapshot(BaseSnapshot):
                                  zone=placement,
                                  zone=placement,
                                  body=disk_body)
                                  body=disk_body)
                          .execute())
                          .execute())
-        return self._provider.block_store.volumes.get(
+        return self._provider.storage.volumes.get(
             operation.get('targetLink'))
             operation.get('targetLink'))
 
 
 
 

+ 11 - 6
cloudbridge/cloud/providers/gce/services.py

@@ -5,18 +5,18 @@ from collections import namedtuple
 import cloudbridge as cb
 import cloudbridge as cb
 from cloudbridge.cloud.base.resources import ClientPagedResultList
 from cloudbridge.cloud.base.resources import ClientPagedResultList
 from cloudbridge.cloud.base.resources import ServerPagedResultList
 from cloudbridge.cloud.base.resources import ServerPagedResultList
-from cloudbridge.cloud.base.services import BaseBlockStoreService
+from cloudbridge.cloud.base.services import BaseBucketService
 from cloudbridge.cloud.base.services import BaseComputeService
 from cloudbridge.cloud.base.services import BaseComputeService
 from cloudbridge.cloud.base.services import BaseImageService
 from cloudbridge.cloud.base.services import BaseImageService
 from cloudbridge.cloud.base.services import BaseInstanceService
 from cloudbridge.cloud.base.services import BaseInstanceService
 from cloudbridge.cloud.base.services import BaseInstanceTypesService
 from cloudbridge.cloud.base.services import BaseInstanceTypesService
 from cloudbridge.cloud.base.services import BaseKeyPairService
 from cloudbridge.cloud.base.services import BaseKeyPairService
 from cloudbridge.cloud.base.services import BaseNetworkService
 from cloudbridge.cloud.base.services import BaseNetworkService
-from cloudbridge.cloud.base.services import BaseObjectStoreService
 from cloudbridge.cloud.base.services import BaseRegionService
 from cloudbridge.cloud.base.services import BaseRegionService
 from cloudbridge.cloud.base.services import BaseSecurityGroupService
 from cloudbridge.cloud.base.services import BaseSecurityGroupService
 from cloudbridge.cloud.base.services import BaseSecurityService
 from cloudbridge.cloud.base.services import BaseSecurityService
 from cloudbridge.cloud.base.services import BaseSnapshotService
 from cloudbridge.cloud.base.services import BaseSnapshotService
+from cloudbridge.cloud.base.services import BaseStorageService
 from cloudbridge.cloud.base.services import BaseSubnetService
 from cloudbridge.cloud.base.services import BaseSubnetService
 from cloudbridge.cloud.base.services import BaseVolumeService
 from cloudbridge.cloud.base.services import BaseVolumeService
 from cloudbridge.cloud.interfaces.resources import PlacementZone
 from cloudbridge.cloud.interfaces.resources import PlacementZone
@@ -851,14 +851,15 @@ class GCESubnetService(BaseSubnetService):
         self._provider.wait_for_operation(response, region=subnet.region)
         self._provider.wait_for_operation(response, region=subnet.region)
 
 
 
 
-class GCEBlockStoreService(BaseBlockStoreService):
+class GCPStorageService(BaseStorageService):
 
 
     def __init__(self, provider):
     def __init__(self, provider):
-        super(GCEBlockStoreService, self).__init__(provider)
+        super(GCPStorageService, self).__init__(provider)
 
 
         # Initialize provider services
         # Initialize provider services
         self._volume_svc = GCEVolumeService(self.provider)
         self._volume_svc = GCEVolumeService(self.provider)
         self._snapshot_svc = GCESnapshotService(self.provider)
         self._snapshot_svc = GCESnapshotService(self.provider)
+        self._bucket_svc = GCSBucketService(self.provider)
 
 
     @property
     @property
     def volumes(self):
     def volumes(self):
@@ -868,6 +869,10 @@ class GCEBlockStoreService(BaseBlockStoreService):
     def snapshots(self):
     def snapshots(self):
         return self._snapshot_svc
         return self._snapshot_svc
 
 
+    @property
+    def buckets(self):
+        return self._bucket_svc
+
 
 
 class GCEVolumeService(BaseVolumeService):
 class GCEVolumeService(BaseVolumeService):
 
 
@@ -1073,10 +1078,10 @@ class GCESnapshotService(BaseSnapshotService):
             return None
             return None
 
 
 
 
-class GCSObjectStoreService(BaseObjectStoreService):
+class GCSBucketService(BaseBucketService):
 
 
     def __init__(self, provider):
     def __init__(self, provider):
-        super(GCSObjectStoreService, self).__init__(provider)
+        super(GCSBucketService, self).__init__(provider)
 
 
     def get(self, bucket_id):
     def get(self, bucket_id):
         """
         """

+ 2 - 1
setup.py

@@ -25,6 +25,7 @@ REQS_BASE = [
     'oslo.i18n>=3.15.3'
     'oslo.i18n>=3.15.3'
 ]
 ]
 REQS_AWS = ['boto3']
 REQS_AWS = ['boto3']
+REQS_GCP = ['google-api-python-client']
 REQS_OPENSTACK = [
 REQS_OPENSTACK = [
     'openstacksdk',
     'openstacksdk',
     'python-novaclient>=7.0.0',
     'python-novaclient>=7.0.0',
@@ -35,7 +36,7 @@ REQS_OPENSTACK = [
     'python-keystoneclient>=3.13.0',
     'python-keystoneclient>=3.13.0',
     'requests>=2.14.2'
     'requests>=2.14.2'
 ]
 ]
-REQS_FULL = REQS_BASE + REQS_AWS + REQS_OPENSTACK
+REQS_FULL = REQS_BASE + REQS_AWS + REQS_GCP + REQS_OPENSTACK
 # httpretty is required with/for moto 1.0.0 or AWS tests fail
 # httpretty is required with/for moto 1.0.0 or AWS tests fail
 REQS_DEV = ([
 REQS_DEV = ([
     'tox>=2.1.1',
     'tox>=2.1.1',