You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2015/12/22 23:45:43 UTC

jclouds-labs git commit: JCLOUDS-1052: Fix DigitalOcean2 deleteImage

Repository: jclouds-labs
Updated Branches:
  refs/heads/master 516db713d -> 91f70d196


JCLOUDS-1052: Fix DigitalOcean2 deleteImage


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/91f70d19
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/91f70d19
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/91f70d19

Branch: refs/heads/master
Commit: 91f70d19642d2480c6c736fb03a6ed94ba078f27
Parents: 516db71
Author: Ignasi Barrera <na...@apache.org>
Authored: Tue Dec 22 23:05:29 2015 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Tue Dec 22 23:12:59 2015 +0100

----------------------------------------------------------------------
 .../extensions/DigitalOcean2ImageExtension.java | 24 ++++++++++++--------
 1 file changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/91f70d19/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/extensions/DigitalOcean2ImageExtension.java
----------------------------------------------------------------------
diff --git a/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/extensions/DigitalOcean2ImageExtension.java b/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/extensions/DigitalOcean2ImageExtension.java
index 524e4d1..56e67de 100644
--- a/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/extensions/DigitalOcean2ImageExtension.java
+++ b/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/extensions/DigitalOcean2ImageExtension.java
@@ -118,17 +118,21 @@ public class DigitalOcean2ImageExtension implements ImageExtension {
 
    @Override
    public boolean deleteImage(String id) {
-      try {
-         // The id of the image can be an id or a slug. Use the corresponding method of the API depending on what is
-         // provided. If it can be parsed as a number, use the method to destroy by ID. Otherwise, destroy by slug.
-         Integer imageId = Ints.tryParse(id);
-         if (imageId != null) {
-            logger.debug(">> image does not have a slug. Using the id to delete the image...");
-            api.imageApi().delete(imageId);
+      String imageId = ImageInRegion.extractImageId(id);
+      Integer numericId = Ints.tryParse(imageId); // User images don't have a slug, so we expect a numeric id here
+
+      if (numericId != null) {
+         try {
+            logger.debug(">> deleting image %s...", id);
+            api.imageApi().delete(numericId);
+            return true;
+         } catch (Exception ex) {
+            logger.error(ex, ">> error deleting image %s", id);
          }
-         return true;
-      } catch (Exception ex) {
-         return false;
+      } else {
+         logger.warn(">> image %s is not a user image and cannot be deleted", id);
       }
+
+      return false;
    }
 }