Implement get_image function for softlayer

Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/32d54fd4
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/32d54fd4
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/32d54fd4

Branch: refs/heads/trunk
Commit: 32d54fd4f98ed441f224ffc9b03588e88d587558
Parents: ceffe6e
Author: Francois Regnoult <francois.regno...@wandera.com>
Authored: Tue May 30 17:31:49 2017 +0100
Committer: Anthony Shaw <anthonys...@apache.org>
Committed: Fri Aug 11 14:33:43 2017 +1000

----------------------------------------------------------------------
 libcloud/compute/drivers/softlayer.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/32d54fd4/libcloud/compute/drivers/softlayer.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/softlayer.py 
b/libcloud/compute/drivers/softlayer.py
index 5243d0b..f2b9db1 100644
--- a/libcloud/compute/drivers/softlayer.py
+++ b/libcloud/compute/drivers/softlayer.py
@@ -24,6 +24,7 @@ except ImportError:
     crypto = False
 
 from libcloud.common.softlayer import SoftLayerConnection, SoftLayerException
+from libcloud.common.types import LibcloudError
 from libcloud.compute.types import Provider, NodeState
 from libcloud.compute.base import NodeDriver, Node, NodeLocation, NodeSize, \
     NodeImage, KeyPair
@@ -432,6 +433,24 @@ class SoftLayerNodeDriver(NodeDriver):
         ).object
         return [self._to_image(i) for i in result['operatingSystems']]
 
+    def get_image(self, image_id):
+        """
+        Gets an image based on an image_id.
+
+        :param image_id: Image identifier
+        :type image_id: ``str``
+
+        :return: A NodeImage object
+        :rtype: :class:`NodeImage`
+
+        """
+        images = self.list_images()
+        images = [image for image in images if image.id == image_id]
+        if len(images) < 1:
+            raise LibcloudError('could not find the image with id %s' % 
image_id)
+        image = images[0]
+        return image
+
     def _to_size(self, id, size):
         return NodeSize(
             id=id,

Reply via email to