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/03/12 11:39:25 UTC

[07/10] jclouds-labs git commit: [JCLOUDS-664] Adding RoleSize.Type.A10 and fixing UNRECOGNIZED handling for various enums

[JCLOUDS-664] Adding RoleSize.Type.A10 and fixing UNRECOGNIZED handling for various enums


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

Branch: refs/heads/master
Commit: 2b5ec6faf8f56255ee3d6c2078cda57fb3a498ac
Parents: 2af2892
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Mar 9 13:19:25 2015 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Mar 12 11:24:43 2015 +0100

----------------------------------------------------------------------
 .../azurecompute/domain/CloudService.java       | 10 +++++
 .../domain/DataVirtualHardDisk.java             | 13 +++++-
 .../jclouds/azurecompute/domain/Deployment.java | 34 +++++++++++++++-
 .../org/jclouds/azurecompute/domain/Error.java  | 10 +++++
 .../jclouds/azurecompute/domain/Operation.java  | 10 +++++
 .../jclouds/azurecompute/domain/RoleSize.java   | 14 ++++---
 .../azurecompute/xml/CloudServiceHandler.java   | 12 +-----
 .../xml/DataVirtualHardDiskHandler.java         | 12 +-----
 .../azurecompute/xml/DeploymentHandler.java     | 43 +-------------------
 .../jclouds/azurecompute/xml/ErrorHandler.java  | 10 +----
 .../azurecompute/xml/OperationHandler.java      | 10 +----
 .../jclouds/azurecompute/xml/RoleHandler.java   |  2 +-
 .../azurecompute/xml/RoleInstanceHandler.java   | 14 +------
 .../azurecompute/xml/RoleSizeHandler.java       |  4 +-
 .../azurecompute/xml/DeploymentHandlerTest.java |  8 +++-
 15 files changed, 100 insertions(+), 106 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
index 118f8b6..561c679 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
@@ -43,6 +43,16 @@ public abstract class CloudService {
       RESOLVING_DNS,
       UNRECOGNIZED;
 
+      public static Status fromString(final String text) {
+         if (text != null) {
+            for (Status status : Status.values()) {
+               if (text.equalsIgnoreCase(status.name())) {
+                  return status;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    CloudService() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
index 7690d3b..cf482a7 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
@@ -31,7 +31,18 @@ public abstract class DataVirtualHardDisk {
 
       READ_ONLY,
       READ_WRITE,
-      NONE
+      NONE;
+
+      public static Caching fromString(final String text) {
+         if (text != null) {
+            for (Caching caching : Caching.values()) {
+               if (text.equalsIgnoreCase(caching.name())) {
+                  return caching;
+               }
+            }
+         }
+         return NONE;
+      }
 
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
index 985379a..4fe0e49 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
@@ -33,6 +33,16 @@ public abstract class Deployment {
       STAGING,
       UNRECOGNIZED;
 
+      public static Slot fromString(final String text) {
+         if (text != null) {
+            for (Slot slot : Slot.values()) {
+               if (text.equalsIgnoreCase(slot.name())) {
+                  return slot;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    public enum Status {
@@ -47,6 +57,16 @@ public abstract class Deployment {
       DELETING,
       UNRECOGNIZED;
 
+      public static Status fromString(final String text) {
+         if (text != null) {
+            for (Status status : Status.values()) {
+               if (text.equalsIgnoreCase(status.name())) {
+                  return status;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    public enum InstanceStatus {
@@ -75,7 +95,19 @@ public abstract class Deployment {
       /**
        * Not parsable into one of the above.
        */
-      UNRECOGNIZED,
+      UNRECOGNIZED;
+
+      public static InstanceStatus fromString(final String text) {
+         if (text != null) {
+            for (InstanceStatus status : InstanceStatus.values()) {
+               // Azure isn't exactly upper-camel, as some states end in VM, not Vm.
+               if (text.replace("V_M", "VM").equalsIgnoreCase(status.name())) {
+                  return status;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    @AutoValue

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
index 03af71c..1da089a 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
@@ -40,6 +40,16 @@ public abstract class Error {
       CONFLICT_ERROR,
       UNRECOGNIZED;
 
+      public static Code fromString(final String text) {
+         if (text != null) {
+            for (Code code : Code.values()) {
+               if (text.equalsIgnoreCase(code.name())) {
+                  return code;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    Error() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
index 0fba3f4..aefa470 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
@@ -36,6 +36,16 @@ public abstract class Operation {
       FAILED,
       UNRECOGNIZED;
 
+      public static Status fromString(final String text) {
+         if (text != null) {
+            for (Status status : Status.values()) {
+               if (text.equalsIgnoreCase(status.name())) {
+                  return status;
+               }
+            }
+         }
+         return UNRECOGNIZED;
+      }
    }
 
    Operation() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
index ff2d856..3b6290e 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
@@ -23,7 +23,7 @@ import com.google.auto.value.AutoValue;
 /**
  * A Role Size that is available in a given subscription.
  *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
+ * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn469422.aspx" >api</a>
  */
 @AutoValue
 public abstract class RoleSize {
@@ -45,6 +45,8 @@ public abstract class RoleSize {
       A7("A7"),
       A8("A8"),
       A9("A9"),
+      A10("A10"),
+      A11("A11"),
       STANDARD_A0("Standard_A0"),
       STANDARD_A1("Standard_A1"),
       STANDARD_A2("Standard_A2"),
@@ -75,7 +77,7 @@ public abstract class RoleSize {
       EXTRALARGE("ExtraLarge"),
       UNRECOGNIZED("UNRECOGNIZED");
 
-      private String text;
+      private final String text;
 
       Type(final String text) {
          this.text = text;
@@ -87,13 +89,13 @@ public abstract class RoleSize {
 
       public static Type fromString(final String text) {
          if (text != null) {
-            for (Type b : Type.values()) {
-               if (text.equalsIgnoreCase(b.text)) {
-                  return b;
+            for (Type type : Type.values()) {
+               if (text.equalsIgnoreCase(type.text)) {
+                  return type;
                }
             }
          }
-         throw new IllegalArgumentException("No constant with text " + text + " found");
+         return UNRECOGNIZED;
       }
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
index 6b46981..c2e806e 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
@@ -106,9 +106,7 @@ public final class CloudServiceHandler extends ParseSax.HandlerForGeneratedReque
             lastModified = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
          } else if (qName.equals("Status")) {
             String statusText = currentOrNull(currentText);
-            if (statusText != null) {
-               status = status(statusText);
-            }
+            status = CloudService.Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
          } else if (qName.equals("Name")) {
             propertyName = currentOrNull(currentText);
          } else if (qName.equals("Value")) {
@@ -133,12 +131,4 @@ public final class CloudServiceHandler extends ParseSax.HandlerForGeneratedReque
    public void characters(char ch[], int start, int length) {
       currentText.append(ch, start, length);
    }
-
-   private static CloudService.Status status(String status) {
-      try {
-         return CloudService.Status.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, status));
-      } catch (IllegalArgumentException e) {
-         return CloudService.Status.UNRECOGNIZED;
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
index 73c39e1..17ac28a 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
@@ -60,9 +60,7 @@ final class DataVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedReque
 
       if (qName.equals("HostCaching")) {
          String hostCachingText = currentOrNull(currentText);
-         if (hostCachingText != null) {
-            hostCaching = parseHostCache(hostCachingText);
-         }
+         hostCaching = DataVirtualHardDisk.Caching.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCachingText));
       } else if (qName.equals("DiskName")) {
          diskName = currentOrNull(currentText);
       } else if (qName.equals("Lun")) {
@@ -86,14 +84,6 @@ final class DataVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedReque
       currentText.setLength(0);
    }
 
-   private static DataVirtualHardDisk.Caching parseHostCache(String hostCaching) {
-      try {
-         return DataVirtualHardDisk.Caching.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCaching));
-      } catch (IllegalArgumentException e) {
-         return DataVirtualHardDisk.Caching.NONE;
-      }
-   }
-
    @Override
    public void characters(char ch[], int start, int length) {
       currentText.append(ch, start, length);

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
index 941f94b..6f4133f 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
@@ -25,15 +25,12 @@ import static org.jclouds.util.SaxUtils.currentOrNull;
 import java.util.List;
 
 import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
 import org.jclouds.azurecompute.domain.Deployment.Slot;
 import org.jclouds.azurecompute.domain.Deployment.Status;
 import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
 import org.jclouds.http.functions.ParseSax;
 import org.xml.sax.Attributes;
 
-import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
 import com.google.inject.Inject;
 
@@ -130,13 +127,11 @@ public final class DeploymentHandler extends ParseSax.HandlerForGeneratedRequest
          name = currentOrNull(currentText);
       } else if (qName.equals("DeploymentSlot")) {
          String slotText = currentOrNull(currentText);
-         if (slotText != null) {
-            slot = parseSlot(slotText);
-         }
+         slot = Slot.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, slotText));
       } else if (qName.equals("Status")) {
          String statusText = currentOrNull(currentText);
          if (status == null && statusText != null) {
-            status = parseStatus(statusText);
+            status = Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
          }
       } else if (qName.equals("Label")) {
          String labelText = currentOrNull(currentText);
@@ -165,38 +160,4 @@ public final class DeploymentHandler extends ParseSax.HandlerForGeneratedRequest
          currentText.append(ch, start, length);
       }
    }
-
-   private static Status parseStatus(String status) {
-      try {
-         return Status.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, status));
-      } catch (IllegalArgumentException e) {
-         return Status.UNRECOGNIZED;
-      }
-   }
-
-   private static Slot parseSlot(String slot) {
-      try {
-         return Slot.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, slot));
-      } catch (IllegalArgumentException e) {
-         return Slot.UNRECOGNIZED;
-      }
-   }
-
-   @VisibleForTesting
-   static InstanceStatus parseInstanceStatus(String instanceStatus) {
-      try {
-         // Azure isn't exactly upper-camel, as some states end in VM, not Vm.
-         return InstanceStatus.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, instanceStatus).replace("V_M", "VM"));
-      } catch (IllegalArgumentException e) {
-         return InstanceStatus.UNRECOGNIZED;
-      }
-   }
-
-   private static RoleSize.Type parseRoleSize(String roleSize) {
-      try {
-         return RoleSize.Type.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, roleSize));
-      } catch (IllegalArgumentException e) {
-         return RoleSize.Type.UNRECOGNIZED;
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
index ff80c87..5e95940 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
@@ -44,7 +44,7 @@ public final class ErrorHandler extends ParseSax.HandlerForGeneratedRequestWithR
    public void endElement(String ignoredUri, String ignoredName, String qName) {
       if (qName.equals("Code")) {
          String codeText = currentOrNull(currentText);
-         code = parseCode(codeText);
+         code = Code.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, codeText));
       } else if (qName.equals("Message")) {
          message = currentOrNull(currentText);
       }
@@ -55,12 +55,4 @@ public final class ErrorHandler extends ParseSax.HandlerForGeneratedRequestWithR
    public void characters(char ch[], int start, int length) {
       currentText.append(ch, start, length);
    }
-
-   private static Code parseCode(String code) {
-      try {
-         return Code.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, code));
-      } catch (IllegalArgumentException e) {
-         return Code.UNRECOGNIZED;
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
index 779beb2..df760ef 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
@@ -68,7 +68,7 @@ public final class OperationHandler extends ParseSax.HandlerForGeneratedRequestW
          id = currentOrNull(currentText);
       } else if (qName.equals("Status")) {
          String statusText = currentOrNull(currentText);
-         status = parseStatus(statusText);
+         status = Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
       } else if (qName.equals("HttpStatusCode")) {
          httpStatusCode = Integer.parseInt(currentOrNull(currentText));
       }
@@ -83,12 +83,4 @@ public final class OperationHandler extends ParseSax.HandlerForGeneratedRequestW
          currentText.append(ch, start, length);
       }
    }
-
-   private static Status parseStatus(String status) {
-      try {
-         return Status.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, status));
-      } catch (IllegalArgumentException e) {
-         return Status.UNRECOGNIZED;
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
index 96a0095..8650ac6 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
@@ -161,7 +161,7 @@ public class RoleHandler extends ParseSax.HandlerForGeneratedRequestWithResult<R
       } else if (inOSVirtualHardDisk) {
          osVirtualDiskHandler.endElement(ignoredUri, ignoredName, qName);
       } else if (qName.equals("RoleSize")) {
-         roleSize = RoleSize.Type.valueOf(currentOrNull(currentText).toUpperCase());
+         roleSize = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
       } else if (qName.equals("ProvisionGuestAgent")) {
          String provisionGuestAgentString = currentOrNull(currentText);
          if (provisionGuestAgentString != null) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
index dd69b55..641e34c 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
@@ -19,6 +19,7 @@ package org.jclouds.azurecompute.xml;
 import static com.google.common.base.CaseFormat.UPPER_CAMEL;
 import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
 import static org.jclouds.util.SaxUtils.currentOrNull;
+
 import java.util.List;
 
 import org.jclouds.azurecompute.domain.Deployment.InstanceEndpoint;
@@ -96,9 +97,7 @@ public class RoleInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
          instanceName = currentOrNull(currentText);
       } else if (qName.equals("InstanceStatus")) {
          String instanceStatusText = currentOrNull(currentText);
-         if (instanceStatusText != null) {
-            instanceStatus = parseInstanceStatus(instanceStatusText);
-         }
+         instanceStatus = InstanceStatus.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, instanceStatusText));
       } else if (qName.equals("InstanceUpgradeDomain")) {
          String upgradeDomain = currentOrNull(currentText);
          if (upgradeDomain != null) {
@@ -131,13 +130,4 @@ public class RoleInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
       }
    }
 
-   static InstanceStatus parseInstanceStatus(String instanceStatus) {
-      try {
-         // Azure isn't exactly upper-camel, as some states end in VM, not Vm.
-         return InstanceStatus.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, instanceStatus).replace("V_M", "VM"));
-      } catch (IllegalArgumentException e) {
-         return InstanceStatus.UNRECOGNIZED;
-      }
-   }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
index 9c24c38..e50680a 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
@@ -55,9 +55,7 @@ final class RoleSizeHandler extends ParseSax.HandlerForGeneratedRequestWithResul
    public void endElement(String ignoredUri, String ignoredName, String qName) {
       if (qName.equals("Name")) {
          String type = currentOrNull(currentText);
-         if (type != null) {
-            name = RoleSize.Type.valueOf(currentOrNull(currentText).toUpperCase());
-         }
+         name = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
       } else if (qName.equals("Label")) {
          label = currentOrNull(currentText);
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b5ec6fa/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
index 4cea9ad..8af313e 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
@@ -16,8 +16,10 @@
  */
 package org.jclouds.azurecompute.xml;
 
-import static org.jclouds.azurecompute.xml.DeploymentHandler.parseInstanceStatus;
+import static com.google.common.base.CaseFormat.UPPER_CAMEL;
+import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
 import static org.testng.Assert.assertEquals;
+
 import java.io.InputStream;
 import java.net.URI;
 
@@ -40,6 +42,10 @@ import com.google.common.collect.ImmutableList;
 @Test(groups = "unit", testName = "DeploymentHandlerTest")
 public class DeploymentHandlerTest extends BaseHandlerTest {
 
+   private InstanceStatus parseInstanceStatus(final String instanceStatus) {
+      return InstanceStatus.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, instanceStatus));
+   }
+
    /**
     * Covers values listed
     * <a href="http://msdn.microsoft.com/en-us/library/azure/ee460804.aspx#RoleInstanceList">here</a>.