Преглед изворни кода

Merge branch 'master' of https://github.com/gvlproject/cloudbridge

nuwan_ag пре 10 година
родитељ
комит
9086b94fb8

+ 15 - 15
cloudbridge/providers/aws/resources.py

@@ -31,7 +31,7 @@ class AWSMachineImage(BaseMachineImage):
     }
 
     def __init__(self, provider, image):
-        self.provider = provider
+        self._provider = provider
         if isinstance(image, AWSMachineImage):
             self._ec2_image = image._ec2_image
         else:
@@ -83,7 +83,7 @@ class AWSMachineImage(BaseMachineImage):
         Refreshes the state of this instance by re-querying the cloud provider
         for its latest state.
         """
-        image = self.provider.images.get_image(self.image_id)
+        image = self._provider.images.get_image(self.image_id)
         if image:
             self._ec2_image = image._ec2_image
         else:
@@ -94,7 +94,7 @@ class AWSMachineImage(BaseMachineImage):
 class AWSPlacementZone(PlacementZone):
 
     def __init__(self, provider, zone):
-        self.provider = provider
+        self._provider = provider
         if isinstance(zone, AWSPlacementZone):
             self._aws_zone = zone._aws_zone
         else:
@@ -152,7 +152,7 @@ class AWSInstance(BaseInstance):
     }
 
     def __init__(self, provider, ec2_instance):
-        self.provider = provider
+        self._provider = provider
         self._ec2_instance = ec2_instance
 
     @property
@@ -223,7 +223,7 @@ class AWSInstance(BaseInstance):
         """
         Get the placement zone where this instance is running.
         """
-        return AWSPlacementZone(self.provider, self._ec2_instance.placement)
+        return AWSPlacementZone(self._provider, self._ec2_instance.placement)
 
     @property
     def mac_address(self):
@@ -242,8 +242,8 @@ class AWSInstance(BaseInstance):
         # convert that into a ``SecurityGroup`` object before creating a
         # cloudbridge SecurityGroup object
         names = [group.name for group in self._ec2_instance.groups]
-        security_groups = self.provider.security.security_groups.get(names)
-        return [AWSSecurityGroup(self.provider, group)
+        security_groups = self._provider.security.security_groups.get(names)
+        return [AWSSecurityGroup(self._provider, group)
                 for group in security_groups]
 
     @property
@@ -262,7 +262,7 @@ class AWSInstance(BaseInstance):
         # if the image cannot be found
         retry_decorator = retry(retry_on_result=lambda result: result is None,
                                 stop_max_attempt_number=3, wait_fixed=1000)
-        image = retry_decorator(self.provider.images.get_image)(image_id)
+        image = retry_decorator(self._provider.images.get_image)(image_id)
         return image
 
     @property
@@ -301,7 +301,7 @@ class AWSVolume(BaseVolume):
     }
 
     def __init__(self, provider, volume):
-        self.provider = provider
+        self._provider = provider
         self._volume = volume
 
     @property
@@ -344,7 +344,7 @@ class AWSVolume(BaseVolume):
         Create a snapshot of this Volume.
         """
         snap = AWSSnapshot(
-            self.provider,
+            self._provider,
             self._volume.create_snapshot(
                 description=description))
         snap.name = name
@@ -388,7 +388,7 @@ class AWSSnapshot(BaseSnapshot):
     }
 
     def __init__(self, provider, snapshot):
-        self.provider = provider
+        self._provider = provider
         self._snapshot = snapshot
 
     @property
@@ -500,7 +500,7 @@ class AWSSecurityGroup(BaseSecurityGroup):
 class AWSContainerObject(ContainerObject):
 
     def __init__(self, provider, key):
-        self.provider = provider
+        self._provider = provider
         self._key = key
 
     @property
@@ -540,7 +540,7 @@ class AWSContainerObject(ContainerObject):
 class AWSContainer(Container):
 
     def __init__(self, provider, bucket):
-        self.provider = provider
+        self._provider = provider
         self._bucket = bucket
 
     @property
@@ -565,7 +565,7 @@ class AWSContainer(Container):
         :return: List of all available ContainerObjects within this container
         """
         objects = self._bucket.list()
-        return [AWSContainerObject(self.provider, obj) for obj in objects]
+        return [AWSContainerObject(self._provider, obj) for obj in objects]
 
     def delete(self, delete_contents=False):
         """
@@ -575,7 +575,7 @@ class AWSContainer(Container):
 
     def create_object(self, name):
         key = Key(self._bucket, name)
-        return AWSContainerObject(self.provider, key)
+        return AWSContainerObject(self._provider, key)
 
     def __repr__(self):
         return "<CB-AWSContainer: {0}>".format(self.name)

+ 58 - 58
cloudbridge/providers/aws/services.py

@@ -30,7 +30,7 @@ from .resources import AWSVolume
 class AWSSecurityService(SecurityService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
         # Initialize provider services
         self._key_pairs = AWSKeyPairService(provider)
@@ -60,7 +60,7 @@ class AWSSecurityService(SecurityService):
 class AWSKeyPairService(KeyPairService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def list(self):
         """
@@ -69,38 +69,38 @@ class AWSKeyPairService(KeyPairService):
         :rtype: ``list`` of :class:`.KeyPair`
         :return:  list of KeyPair objects
         """
-        key_pairs = self.provider.ec2_conn.get_all_key_pairs()
-        return [AWSKeyPair(self.provider, kp) for kp in key_pairs]
+        key_pairs = self._provider.ec2_conn.get_all_key_pairs()
+        return [AWSKeyPair(self._provider, kp) for kp in key_pairs]
 
-    def create(self, key_name):
+    def create(self, name):
         """
         Create a new key pair.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be created.
+        :type name: str
+        :param name: The name of the key pair to be created.
 
         :rtype: ``object`` of :class:`.KeyPair`
         :return:  A keypair instance or None if one was not be created.
         """
-        kp = self.provider.ec2_conn.create_key_pair(key_name)
+        kp = self._provider.ec2_conn.create_key_pair(name)
         if kp:
-            return AWSKeyPair(self.provider, kp)
+            return AWSKeyPair(self._provider, kp)
         return None
 
-    def delete(self, key_name):
+    def delete(self, name):
         """
         Delete an existing key pair.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be deleted.
+        :type name: str
+        :param name: The name of the key pair to be deleted.
 
         :rtype: ``bool``
         :return:  ``True`` if the key does not exist, ``False`` otherwise. Note
                   that this implies that the key may not have been deleted by
                   this method but instead has not existed in the first place.
         """
-        for kp in self.provider.ec2_conn.get_all_key_pairs():
-            if kp.name == key_name:
+        for kp in self._provider.ec2_conn.get_all_key_pairs():
+            if kp.name == name:
                 kp.delete()
                 return True
         return True
@@ -109,7 +109,7 @@ class AWSKeyPairService(KeyPairService):
 class AWSSecurityGroupService(SecurityGroupService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def list(self):
         """
@@ -118,8 +118,8 @@ class AWSSecurityGroupService(SecurityGroupService):
         :rtype: ``list`` of :class:`.SecurityGroup`
         :return:  list of SecurityGroup objects
         """
-        security_groups = self.provider.ec2_conn.get_all_security_groups()
-        return [AWSSecurityGroup(self.provider, sg) for sg in security_groups]
+        security_groups = self._provider.ec2_conn.get_all_security_groups()
+        return [AWSSecurityGroup(self._provider, sg) for sg in security_groups]
 
     def create(self, name, description):
         """
@@ -134,9 +134,9 @@ class AWSSecurityGroupService(SecurityGroupService):
         :rtype: ``object`` of :class:`.SecurityGroup`
         :return:  A SecurityGroup instance or ``None`` if one was not created.
         """
-        sg = self.provider.ec2_conn.create_security_group(name, description)
+        sg = self._provider.ec2_conn.create_security_group(name, description)
         if sg:
-            return AWSSecurityGroup(self.provider, sg)
+            return AWSSecurityGroup(self._provider, sg)
         return None
 
     def get(self, group_names=None, group_ids=None):
@@ -158,11 +158,11 @@ class AWSSecurityGroupService(SecurityGroupService):
         found.
         """
         try:
-            security_groups = self.provider.ec2_conn.get_all_security_groups(
+            security_groups = self._provider.ec2_conn.get_all_security_groups(
                 groupnames=group_names, group_ids=group_ids)
         except EC2ResponseError:
             security_groups = []
-        return [AWSSecurityGroup(self.provider, sg) for sg in security_groups]
+        return [AWSSecurityGroup(self._provider, sg) for sg in security_groups]
 
     def delete(self, group_id):
         """
@@ -178,7 +178,7 @@ class AWSSecurityGroupService(SecurityGroupService):
                   the first place.
         """
         try:
-            for sg in self.provider.ec2_conn.get_all_security_groups(
+            for sg in self._provider.ec2_conn.get_all_security_groups(
                     group_ids=[group_id]):
                 try:
                     sg.delete()
@@ -192,11 +192,11 @@ class AWSSecurityGroupService(SecurityGroupService):
 class AWSBlockStoreService(BlockStoreService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
         # Initialize provider services
-        self._volumes = AWSVolumeService(self.provider)
-        self._snapshots = AWSSnapshotService(self.provider)
+        self._volumes = AWSVolumeService(self._provider)
+        self._snapshots = AWSSnapshotService(self._provider)
 
     @property
     def volumes(self):
@@ -210,14 +210,14 @@ class AWSBlockStoreService(BlockStoreService):
 class AWSVolumeService(VolumeService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_volume(self, volume_id):
         """
         Returns a volume given its id.
         """
-        vols = self.provider.ec2_conn.get_all_volumes(volume_ids=[volume_id])
-        return AWSVolume(self.provider, vols[0]) if vols else None
+        vols = self._provider.ec2_conn.get_all_volumes(volume_ids=[volume_id])
+        return AWSVolume(self._provider, vols[0]) if vols else None
 
     def find_volume(self, name):
         """
@@ -230,8 +230,8 @@ class AWSVolumeService(VolumeService):
         """
         List all volumes.
         """
-        return [AWSVolume(self.provider, vol)
-                for vol in self.provider.ec2_conn.get_all_volumes()]
+        return [AWSVolume(self._provider, vol)
+                for vol in self._provider.ec2_conn.get_all_volumes()]
 
     def create_volume(self, name, size, zone, snapshot=None):
         """
@@ -241,11 +241,11 @@ class AWSVolumeService(VolumeService):
         snapshot_id = snapshot.snapshot_id if isinstance(
             zone, AWSSnapshot) and snapshot else snapshot
 
-        ec2_vol = self.provider.ec2_conn.create_volume(
+        ec2_vol = self._provider.ec2_conn.create_volume(
             size,
             zone_name,
             snapshot=snapshot_id)
-        cb_vol = AWSVolume(self.provider, ec2_vol)
+        cb_vol = AWSVolume(self._provider, ec2_vol)
         cb_vol.name = name
         return cb_vol
 
@@ -253,16 +253,16 @@ class AWSVolumeService(VolumeService):
 class AWSObjectStoreService(ObjectStoreService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_container(self, container_id):
         """
         Returns a container given its id. Returns None if the container
         does not exist.
         """
-        bucket = self.provider.s3_conn.lookup(container_id)
+        bucket = self._provider.s3_conn.lookup(container_id)
         if bucket:
-            return AWSContainer(self.provider, bucket)
+            return AWSContainer(self._provider, bucket)
         else:
             return None
 
@@ -277,31 +277,31 @@ class AWSObjectStoreService(ObjectStoreService):
         """
         List all containers.
         """
-        buckets = self.provider.s3_conn.get_all_buckets()
-        return [AWSContainer(self.provider, bucket) for bucket in buckets]
+        buckets = self._provider.s3_conn.get_all_buckets()
+        return [AWSContainer(self._provider, bucket) for bucket in buckets]
 
     def create_container(self, name, location=None):
         """
         Create a new container.
         """
-        bucket = self.provider.s3_conn.create_bucket(
+        bucket = self._provider.s3_conn.create_bucket(
             name,
             location=location if location else '')
-        return AWSContainer(self.provider, bucket)
+        return AWSContainer(self._provider, bucket)
 
 
 class AWSSnapshotService(SnapshotService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_snapshot(self, snapshot_id):
         """
         Returns a snapshot given its id.
         """
-        snaps = self.provider.ec2_conn.get_all_snapshots(
+        snaps = self._provider.ec2_conn.get_all_snapshots(
             snapshot_ids=[snapshot_id])
-        return AWSSnapshot(self.provider, snaps[0]) if snaps else None
+        return AWSSnapshot(self._provider, snaps[0]) if snaps else None
 
     def find_snapshot(self, name):
         """
@@ -316,9 +316,9 @@ class AWSSnapshotService(SnapshotService):
         """
         # TODO: get_all_images returns too many images - some kind of filtering
         # abilities are needed. Forced to "self" for now
-        return [AWSSnapshot(self.provider, snap)
+        return [AWSSnapshot(self._provider, snap)
                 for snap in
-                self.provider.ec2_conn.get_all_snapshots(owner="self")]
+                self._provider.ec2_conn.get_all_snapshots(owner="self")]
 
     def create_snapshot(self, name, volume, description=None):
         """
@@ -328,10 +328,10 @@ class AWSSnapshotService(SnapshotService):
             volume,
             AWSVolume) else volume
 
-        ec2_snap = self.provider.ec2_conn.create_snapshot(
+        ec2_snap = self._provider.ec2_conn.create_snapshot(
             volume_id,
             description=description)
-        cb_snap = AWSSnapshot(self.provider, ec2_snap)
+        cb_snap = AWSSnapshot(self._provider, ec2_snap)
         cb_snap.name = name
         return cb_snap
 
@@ -339,16 +339,16 @@ class AWSSnapshotService(SnapshotService):
 class AWSImageService(ImageService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_image(self, image_id):
         """
         Returns an Image given its id
         """
         try:
-            image = self.provider.ec2_conn.get_image(image_id)
+            image = self._provider.ec2_conn.get_image(image_id)
             if image:
-                return AWSMachineImage(self.provider, image)
+                return AWSMachineImage(self._provider, image)
         except EC2ResponseError:
             pass
 
@@ -367,14 +367,14 @@ class AWSImageService(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 [AWSMachineImage(self.provider, image) for image in images]
+        images = self._provider.ec2_conn.get_all_images(owners="self")
+        return [AWSMachineImage(self._provider, image) for image in images]
 
 
 class AWSComputeService(ComputeService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def create_instance(self, name, image, instance_type, zone=None,
                         keypair=None, security_groups=None, user_data=None,
@@ -399,14 +399,14 @@ class AWSComputeService(ComputeService):
         else:
             security_groups_list = None
 
-        reservation = self.provider.ec2_conn.run_instances(
+        reservation = self._provider.ec2_conn.run_instances(
             image_id=image_id, instance_type=instance_size,
             min_count=1, max_count=1, placement=zone_name,
             key_name=keypair_name, security_groups=security_groups_list,
             user_data=user_data
         )
         if reservation:
-            instance = AWSInstance(self.provider, reservation.instances[0])
+            instance = AWSInstance(self._provider, reservation.instances[0])
             instance.name = name
         return instance
 
@@ -415,10 +415,10 @@ class AWSComputeService(ComputeService):
         Returns an instance given its id. Returns None
         if the object does not exist.
         """
-        reservation = self.provider.ec2_conn.get_all_reservations(
+        reservation = self._provider.ec2_conn.get_all_reservations(
             instance_ids=[instance_id])
         if reservation:
-            return AWSInstance(self.provider, reservation[0].instances[0])
+            return AWSInstance(self._provider, reservation[0].instances[0])
         else:
             return None
 
@@ -436,7 +436,7 @@ class AWSComputeService(ComputeService):
         """
         List all instances.
         """
-        reservations = self.provider.ec2_conn.get_all_reservations()
-        return [AWSInstance(self.provider, inst)
+        reservations = self._provider.ec2_conn.get_all_reservations()
+        return [AWSInstance(self._provider, inst)
                 for res in reservations
                 for inst in res.instances]

+ 2 - 2
cloudbridge/providers/base.py

@@ -185,7 +185,7 @@ class BaseSnapshot(BaseObjectLifeCycleMixin, Snapshot):
 class BaseKeyPair(KeyPair):
 
     def __init__(self, provider, key_pair):
-        self.provider = provider
+        self._provider = provider
         self._key_pair = key_pair
 
     @property
@@ -213,7 +213,7 @@ class BaseKeyPair(KeyPair):
 class BaseSecurityGroup(SecurityGroup):
 
     def __init__(self, provider, security_group):
-        self.provider = provider
+        self._provider = provider
         self._security_group = security_group
 
     @property

+ 6 - 6
cloudbridge/providers/interfaces/services.py

@@ -414,12 +414,12 @@ class KeyPairService(ProviderService):
         raise NotImplementedError(
             'list_key_pairs not implemented by this provider')
 
-    def create(self, key_name):
+    def create(self, name):
         """
         Create a new keypair.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be created.
+        :type name: str
+        :param name: The name of the key pair to be created.
 
         :rtype: ``object`` of :class:`.KeyPair`
         :return:  A keypair instance
@@ -427,12 +427,12 @@ class KeyPairService(ProviderService):
         raise NotImplementedError(
             'create_key_pair not implemented by this provider')
 
-    def delete(self, key_name):
+    def delete(self, name):
         """
         Delete an existing SecurityGroup.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be deleted.
+        :type name: str
+        :param name: The name of the key pair to be deleted.
 
         :rtype: ``bool``
         :return:  ``True`` if the key does not exist, ``False`` otherwise. Note

+ 28 - 28
cloudbridge/providers/openstack/resources.py

@@ -36,7 +36,7 @@ class OpenStackMachineImage(BaseMachineImage):
     }
 
     def __init__(self, provider, os_image):
-        self.provider = provider
+        self._provider = provider
         if isinstance(os_image, OpenStackMachineImage):
             self._os_image = os_image._os_image
         else:
@@ -88,7 +88,7 @@ class OpenStackMachineImage(BaseMachineImage):
         Refreshes the state of this instance by re-querying the cloud provider
         for its latest state.
         """
-        image = self.provider.images.get_image(self.image_id)
+        image = self._provider.images.get_image(self.image_id)
         if image:
             self._os_image = image._os_image
         else:
@@ -100,7 +100,7 @@ class OpenStackMachineImage(BaseMachineImage):
 class OpenStackPlacementZone(PlacementZone):
 
     def __init__(self, provider, zone):
-        self.provider = provider
+        self._provider = provider
         if isinstance(zone, OpenStackPlacementZone):
             self._os_zone = zone._os_zone
         else:
@@ -171,7 +171,7 @@ class OpenStackInstance(BaseInstance):
     }
 
     def __init__(self, provider, os_instance):
-        self.provider = provider
+        self._provider = provider
         self._os_instance = os_instance
 
     @property
@@ -252,7 +252,7 @@ class OpenStackInstance(BaseInstance):
         Get the placement zone where this instance is running.
         """
         return OpenStackPlacementZone(
-            self.provider,
+            self._provider,
             getattr(self._os_instance, 'OS-EXT-AZ:availability_zone', None))
 
     @property
@@ -270,9 +270,9 @@ class OpenStackInstance(BaseInstance):
         """
         security_groups = []
         for group in self._os_instance.security_groups:
-            security_groups.append(self.provider.nova.security_groups.find(
+            security_groups.append(self._provider.nova.security_groups.find(
                 name=group.get('name')))
-        return [OpenStackSecurityGroup(self.provider, group)
+        return [OpenStackSecurityGroup(self._provider, group)
                 for group in security_groups]
 
     @property
@@ -288,7 +288,7 @@ class OpenStackInstance(BaseInstance):
         """
         image_id = self._os_instance.create_image(name)
         return OpenStackMachineImage(
-            self.provider, self.provider.images.get_image(image_id))
+            self._provider, self._provider.images.get_image(image_id))
 
     @property
     def state(self):
@@ -300,7 +300,7 @@ class OpenStackInstance(BaseInstance):
         Refreshes the state of this instance by re-querying the cloud provider
         for its latest state.
         """
-        instance = self.provider.compute.get_instance(
+        instance = self._provider.compute.get_instance(
             self.instance_id)
         if instance:
             self._os_instance = instance._os_instance
@@ -316,7 +316,7 @@ class OpenStackInstance(BaseInstance):
 class OpenStackRegion(Region):
 
     def __init__(self, provider, os_region):
-        self.provider = provider
+        self._provider = provider
         self._os_region = os_region
 
     @property
@@ -345,7 +345,7 @@ class OpenStackVolume(BaseVolume):
     }
 
     def __init__(self, provider, volume):
-        self.provider = provider
+        self._provider = provider
         self._volume = volume
 
     @property
@@ -386,7 +386,7 @@ class OpenStackVolume(BaseVolume):
         """
         Create a snapshot of this Volume.
         """
-        return self.provider.block_store.snapshots.create_snapshot(
+        return self._provider.block_store.snapshots.create_snapshot(
             name, self, description=description)
 
     def delete(self):
@@ -405,7 +405,7 @@ class OpenStackVolume(BaseVolume):
         Refreshes the state of this volume by re-querying the cloud provider
         for its latest state.
         """
-        vol = self.provider.block_store.volumes.get_volume(
+        vol = self._provider.block_store.volumes.get_volume(
             self.volume_id)
         if vol:
             self._volume = vol._volume
@@ -430,7 +430,7 @@ class OpenStackSnapshot(BaseSnapshot):
     }
 
     def __init__(self, provider, snapshot):
-        self.provider = provider
+        self._provider = provider
         self._snapshot = snapshot
 
     @property
@@ -462,7 +462,7 @@ class OpenStackSnapshot(BaseSnapshot):
         Refreshes the state of this snapshot by re-querying the cloud provider
         for its latest state.
         """
-        snap = self.provider.block_store.snapshots.get_snapshot(
+        snap = self._provider.block_store.snapshots.get_snapshot(
             self.snapshot_id)
         if snap:
             self._snapshot = snap._snapshot
@@ -535,14 +535,14 @@ class OpenStackSecurityGroup(BaseSecurityGroup):
         """
         if src_group:
             for protocol in ['tcp', 'udp']:
-                self.provider.nova.security_group_rules.create(
+                self._provider.nova.security_group_rules.create(
                     parent_group_id=self._security_group.id,
                     ip_protocol=protocol,
                     from_port=1,
                     to_port=65535,
                     group_id=src_group.id)
         else:
-            return self.provider.nova.security_group_rules.create(
+            return self._provider.nova.security_group_rules.create(
                 parent_group_id=self._security_group.id,
                 ip_protocol=ip_protocol,
                 from_port=from_port,
@@ -553,7 +553,7 @@ class OpenStackSecurityGroup(BaseSecurityGroup):
 class OpenStackContainerObject(ContainerObject):
 
     def __init__(self, provider, cbcontainer, obj):
-        self.provider = provider
+        self._provider = provider
         self.cbcontainer = cbcontainer
         self._obj = obj
 
@@ -569,7 +569,7 @@ class OpenStackContainerObject(ContainerObject):
         Download this object and write its
         contents to the target_stream.
         """
-        _, content = self.provider.swift.get_object(
+        _, content = self._provider.swift.get_object(
             self.cbcontainer.name, self.name, resp_chunk_size=65536)
         shutil.copyfileobj(content, target_stream)
 
@@ -578,7 +578,7 @@ class OpenStackContainerObject(ContainerObject):
         Set the contents of this object to the data read from the source
         string.
         """
-        self.provider.swift.put_object(self.cbcontainer.name, self.name,
+        self._provider.swift.put_object(self.cbcontainer.name, self.name,
                                        data)
 
     def delete(self):
@@ -589,7 +589,7 @@ class OpenStackContainerObject(ContainerObject):
         :return: True if successful
         """
         try:
-            self.provider.swift.delete_object(self.cbcontainer.name, self.name)
+            self._provider.swift.delete_object(self.cbcontainer.name, self.name)
         except ClientException as err:
             if err.http_status == 404:
                 return True
@@ -602,7 +602,7 @@ class OpenStackContainerObject(ContainerObject):
 class OpenStackContainer(Container):
 
     def __init__(self, provider, container):
-        self.provider = provider
+        self._provider = provider
         self._container = container
 
     @property
@@ -616,10 +616,10 @@ class OpenStackContainer(Container):
         """
         Retrieve a given object from this container.
         """
-        _, object_list = self.provider.swift.get_container(
+        _, object_list = self._provider.swift.get_container(
             self.name, prefix=key)
         if object_list:
-            return OpenStackContainerObject(self.provider, self,
+            return OpenStackContainerObject(self._provider, self,
                                             object_list[0])
         else:
             return None
@@ -631,18 +631,18 @@ class OpenStackContainer(Container):
         :rtype: ContainerObject
         :return: List of all available ContainerObjects within this container
         """
-        _, object_list = self.provider.swift.get_container(self.name)
+        _, object_list = self._provider.swift.get_container(self.name)
         return [
-            OpenStackContainer(self.provider, o) for o in object_list]
+            OpenStackContainer(self._provider, o) for o in object_list]
 
     def delete(self, delete_contents=False):
         """
         Delete this container.
         """
-        self.provider.swift.delete_container(self.name)
+        self._provider.swift.delete_container(self.name)
 
     def create_object(self, object_name):
-        self.provider.swift.put_object(self.name, object_name, None)
+        self._provider.swift.put_object(self.name, object_name, None)
         return self.get(object_name)
 
     def __repr__(self):

+ 58 - 58
cloudbridge/providers/openstack/services.py

@@ -34,7 +34,7 @@ from .resources import OpenStackVolume
 class OpenStackSecurityService(SecurityService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
         # Initialize provider services
         self._key_pairs = OpenStackKeyPairService(provider)
@@ -64,7 +64,7 @@ class OpenStackSecurityService(SecurityService):
 class OpenStackKeyPairService(KeyPairService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def list(self):
         """
@@ -73,30 +73,30 @@ class OpenStackKeyPairService(KeyPairService):
         :rtype: ``list`` of :class:`.KeyPair`
         :return:  list of KeyPair objects
         """
-        key_pairs = self.provider.nova.keypairs.list()
-        return [OpenStackKeyPair(self.provider, kp) for kp in key_pairs]
+        key_pairs = self._provider.nova.keypairs.list()
+        return [OpenStackKeyPair(self._provider, kp) for kp in key_pairs]
 
-    def create(self, key_name):
+    def create(self, name):
         """
         Create a new key pair.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be created.
+        :type name: str
+        :param name: The name of the key pair to be created.
 
         :rtype: ``object`` of :class:`.KeyPair`
         :return:  A keypair instance or None if one was not be created.
         """
-        kp = self.provider.nova.keypairs.create(key_name)
+        kp = self._provider.nova.keypairs.create(name)
         if kp:
-            return OpenStackKeyPair(self.provider, kp)
+            return OpenStackKeyPair(self._provider, kp)
         return None
 
-    def delete(self, key_name):
+    def delete(self, name):
         """
         Delete an existing key pair.
 
-        :type key_name: str
-        :param key_name: The name of the key pair to be deleted.
+        :type name: str
+        :param name: The name of the key pair to be deleted.
 
         :rtype: ``bool``
         :return:  ``True`` if the key does not exist, ``False`` otherwise. Note
@@ -104,7 +104,7 @@ class OpenStackKeyPairService(KeyPairService):
                   this method but instead has not existed in the first place.
         """
         try:
-            kp = self.provider.nova.keypairs.find(name=key_name)
+            kp = self._provider.nova.keypairs.find(name=name)
             kp.delete()
             return True
         except NovaNotFound:
@@ -114,7 +114,7 @@ class OpenStackKeyPairService(KeyPairService):
 class OpenStackSecurityGroupService(SecurityGroupService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def list(self):
         """
@@ -123,9 +123,9 @@ class OpenStackSecurityGroupService(SecurityGroupService):
         :rtype: ``list`` of :class:`.SecurityGroup`
         :return:  list of SecurityGroup objects
         """
-        groups = self.provider.nova.security_groups.list()
+        groups = self._provider.nova.security_groups.list()
         return [OpenStackSecurityGroup(
-            self.provider, group) for group in groups]
+            self._provider, group) for group in groups]
 
     def create(self, name, description):
         """
@@ -140,9 +140,9 @@ class OpenStackSecurityGroupService(SecurityGroupService):
         :rtype: ``object`` of :class:`.SecurityGroup`
         :return: a SecurityGroup object
         """
-        sg = self.provider.nova.security_groups.create(name, description)
+        sg = self._provider.nova.security_groups.create(name, description)
         if sg:
-            return OpenStackSecurityGroup(self.provider, sg)
+            return OpenStackSecurityGroup(self._provider, sg)
         return None
 
     def get(self, group_names=None, group_ids=None):
@@ -167,7 +167,7 @@ class OpenStackSecurityGroupService(SecurityGroupService):
             group_names = []
         if not group_ids:
             group_ids = []
-        security_groups = self.provider.nova.security_groups.list()
+        security_groups = self._provider.nova.security_groups.list()
         filtered = []
         for sg in security_groups:
             if sg.name in group_names:
@@ -175,7 +175,7 @@ class OpenStackSecurityGroupService(SecurityGroupService):
             if sg.id in group_ids:
                 filtered.append(sg)
         # If a filter was specified, use the filtered list; otherwise, get all
-        return [OpenStackSecurityGroup(self.provider, sg)
+        return [OpenStackSecurityGroup(self._provider, sg)
                 for sg in (filtered
                            if (group_names or group_ids) else security_groups)]
 
@@ -201,7 +201,7 @@ class OpenStackSecurityGroupService(SecurityGroupService):
 class OpenStackImageService(ImageService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_image(self, image_id):
         """
@@ -209,7 +209,7 @@ class OpenStackImageService(ImageService):
         """
         try:
             return OpenStackMachineImage(
-                self.provider, self.provider.nova.images.get(image_id))
+                self._provider, self._provider.nova.images.get(image_id))
         except NovaNotFound:
             return None
 
@@ -224,19 +224,19 @@ class OpenStackImageService(ImageService):
         """
         List all images.
         """
-        images = self.provider.nova.images.list()
-        return [OpenStackMachineImage(self.provider, image)
+        images = self._provider.nova.images.list()
+        return [OpenStackMachineImage(self._provider, image)
                 for image in images]
 
 
 class OpenStackInstanceTypesService(InstanceTypesService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def list(self):
         return [OpenStackInstanceType(f)
-                for f in self.provider.nova.flavors.list()]
+                for f in self._provider.nova.flavors.list()]
 
     def find_by_name(self, name):
         return next(
@@ -246,11 +246,11 @@ class OpenStackInstanceTypesService(InstanceTypesService):
 class OpenStackBlockStoreService(BlockStoreService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
         # Initialize provider services
-        self._volumes = OpenStackVolumeService(self.provider)
-        self._snapshots = OpenStackSnapshotService(self.provider)
+        self._volumes = OpenStackVolumeService(self._provider)
+        self._snapshots = OpenStackSnapshotService(self._provider)
 
     @property
     def volumes(self):
@@ -264,7 +264,7 @@ class OpenStackBlockStoreService(BlockStoreService):
 class OpenStackVolumeService(VolumeService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_volume(self, volume_id):
         """
@@ -272,7 +272,7 @@ class OpenStackVolumeService(VolumeService):
         """
         try:
             return OpenStackVolume(
-                self.provider, self.provider.cinder.volumes.get(volume_id))
+                self._provider, self._provider.cinder.volumes.get(volume_id))
         except CinderNotFound:
             return None
 
@@ -287,8 +287,8 @@ class OpenStackVolumeService(VolumeService):
         """
         List all volumes.
         """
-        return [OpenStackVolume(self.provider, vol)
-                for vol in self.provider.cinder.volumes.list()]
+        return [OpenStackVolume(self._provider, vol)
+                for vol in self._provider.cinder.volumes.list()]
 
     def create_volume(self, name, size, zone, snapshot=None):
         """
@@ -298,16 +298,16 @@ class OpenStackVolumeService(VolumeService):
         snapshot_id = snapshot.snapshot_id if isinstance(
             zone, OpenStackSnapshot) and snapshot else snapshot
 
-        os_vol = self.provider.cinder.volumes.create(
+        os_vol = self._provider.cinder.volumes.create(
             size, name=name, availability_zone=zone_name,
             snapshot_id=snapshot_id)
-        return OpenStackVolume(self.provider, os_vol)
+        return OpenStackVolume(self._provider, os_vol)
 
 
 class OpenStackSnapshotService(SnapshotService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_snapshot(self, snapshot_id):
         """
@@ -315,8 +315,8 @@ class OpenStackSnapshotService(SnapshotService):
         """
         try:
             return OpenStackSnapshot(
-                self.provider,
-                self.provider.cinder.volume_snapshots.get(snapshot_id))
+                self._provider,
+                self._provider.cinder.volume_snapshots.get(snapshot_id))
         except CinderNotFound:
             return None
 
@@ -331,8 +331,8 @@ class OpenStackSnapshotService(SnapshotService):
         """
         List all snapshot.
         """
-        return [OpenStackSnapshot(self.provider, snap)
-                for snap in self.provider.cinder.volume_snapshots.list()]
+        return [OpenStackSnapshot(self._provider, snap)
+                for snap in self._provider.cinder.volume_snapshots.list()]
 
     def create_snapshot(self, name, volume, description=None):
         """
@@ -341,26 +341,26 @@ class OpenStackSnapshotService(SnapshotService):
         volume_id = volume.volume_id if \
             isinstance(volume, OpenStackVolume) else volume
 
-        os_snap = self.provider.cinder.volume_snapshots.create(
+        os_snap = self._provider.cinder.volume_snapshots.create(
             volume_id, name=name,
             description=description)
-        return OpenStackSnapshot(self.provider, os_snap)
+        return OpenStackSnapshot(self._provider, os_snap)
 
 
 class OpenStackObjectStoreService(ObjectStoreService):
 
     def __init__(self, provider):
-        self.provider = provider
+        self._provider = provider
 
     def get_container(self, container_id):
         """
         Returns a container given its id. Returns None if the container
         does not exist.
         """
-        _, container_list = self.provider.swift.get_account(
+        _, container_list = self._provider.swift.get_account(
             prefix=container_id)
         if container_list:
-            return OpenStackContainer(self.provider, container_list[0])
+            return OpenStackContainer(self._provider, container_list[0])
         else:
             return None
 
@@ -375,23 +375,23 @@ class OpenStackObjectStoreService(ObjectStoreService):
         """
         List all containers.
         """
-        _, container_list = self.provider.swift.get_account()
+        _, container_list = self._provider.swift.get_account()
         return [
-            OpenStackContainer(self.provider, c) for c in container_list]
+            OpenStackContainer(self._provider, c) for c in container_list]
 
     def create_container(self, name, location=None):
         """
         Create a new container.
         """
-        self.provider.swift.put_container(name)
+        self._provider.swift.put_container(name)
         return self.get_container(name)
 
 
 class OpenStackComputeService(ComputeService):
 
     def __init__(self, provider):
-        self.provider = provider
-        self.instance_types = OpenStackInstanceTypesService(self.provider)
+        self._provider = provider
+        self.instance_types = OpenStackInstanceTypesService(self._provider)
 
     def create_instance(self, name, image, instance_type, zone=None,
                         keypair=None, security_groups=None, user_data=None,
@@ -416,7 +416,7 @@ class OpenStackComputeService(ComputeService):
         else:
             security_groups_list = None
 
-        os_instance = self.provider.nova.servers.create(
+        os_instance = self._provider.nova.servers.create(
             name,
             image_id,
             instance_size,
@@ -426,14 +426,14 @@ class OpenStackComputeService(ComputeService):
             key_name=keypair_name,
             security_groups=security_groups_list,
             userdata=user_data)
-        return OpenStackInstance(self.provider, os_instance)
+        return OpenStackInstance(self._provider, os_instance)
 
     def list_instances(self):
         """
         List all instances.
         """
-        instances = self.provider.nova.servers.list()
-        return [OpenStackInstance(self.provider, instance)
+        instances = self._provider.nova.servers.list()
+        return [OpenStackInstance(self._provider, instance)
                 for instance in instances]
 
     def list_regions(self):
@@ -442,15 +442,15 @@ class OpenStackComputeService(ComputeService):
         """
         # detailed must be set to ``False`` because the (default) ``True``
         # value requires Admin priviledges
-        regions = self.provider.nova.availability_zones.list(detailed=False)
-        return [OpenStackRegion(self.provider, region) for region in regions]
+        regions = self._provider.nova.availability_zones.list(detailed=False)
+        return [OpenStackRegion(self._provider, region) for region in regions]
 
     def get_instance(self, instance_id):
         """
         Returns an instance given its id.
         """
         try:
-            os_instance = self.provider.nova.servers.get(instance_id)
-            return OpenStackInstance(self.provider, os_instance)
+            os_instance = self._provider.nova.servers.get(instance_id)
+            return OpenStackInstance(self._provider, os_instance)
         except NovaNotFound:
             return None

+ 3 - 3
test/test_provider_security_service.py

@@ -11,10 +11,10 @@ class ProviderSecurityServiceTestCase(ProviderTestBase):
 
     def test_crud_key_pair_service(self):
         name = 'cbtestkeypair-{0}'.format(uuid.uuid4())
-        kp = self.provider.security.key_pairs.create(key_name=name)
+        kp = self.provider.security.key_pairs.create(name=name)
         with helpers.exception_action(
             lambda:
-                self.provider.security.key_pairs.delete(key_name=kp.name)
+                self.provider.security.key_pairs.delete(name=kp.name)
         ):
             kpl = self.provider.security.key_pairs.list()
             found_kp = [k for k in kpl if k.name == name]
@@ -22,7 +22,7 @@ class ProviderSecurityServiceTestCase(ProviderTestBase):
                 len(found_kp) == 1,
                 "List key pairs did not return the expected key {0}."
                 .format(name))
-            self.provider.security.key_pairs.delete(key_name=kp.name)
+            self.provider.security.key_pairs.delete(name=kp.name)
             kpl = self.provider.security.key_pairs.list()
             found_kp = [k for k in kpl if k.name == name]
             self.assertTrue(