You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/21 06:24:32 UTC

[2/2] git commit: Azure's OSType is reliable so needs no defensive UNRECOGNIZED enum value. Simplify use and couple to Image.

Azure's OSType is reliable so needs no defensive UNRECOGNIZED enum value. Simplify use and couple to Image.


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

Branch: refs/heads/master
Commit: 9f8369cbb2d7f86b5760b70891ee3d82a3d40861
Parents: 20c397c
Author: Adrian Cole <ac...@twitter.com>
Authored: Mon Oct 20 14:39:19 2014 -0400
Committer: Adrian Cole <ad...@apache.org>
Committed: Mon Oct 20 21:23:09 2014 -0700

----------------------------------------------------------------------
 .../BindDeploymentParamsToXmlPayload.java       |  5 ++-
 .../binders/BindOSImageParamsToXmlPayload.java  | 25 ++++++-----
 .../azurecompute/domain/DeploymentParams.java   |  5 ++-
 .../org/jclouds/azurecompute/domain/Disk.java   |  1 +
 .../org/jclouds/azurecompute/domain/Image.java  |  3 ++
 .../azurecompute/domain/ImageParams.java        |  9 ++--
 .../org/jclouds/azurecompute/domain/OSType.java | 45 --------------------
 .../jclouds/azurecompute/xml/DiskHandler.java   | 12 +++---
 .../jclouds/azurecompute/xml/ImageHandler.java  |  7 ++-
 .../features/DeploymentApiMockTest.java         |  2 +-
 .../azurecompute/features/DiskApiLiveTest.java  |  3 --
 .../azurecompute/features/ImageApiLiveTest.java |  2 -
 .../azurecompute/features/ImageApiMockTest.java |  2 +-
 .../azurecompute/xml/ListDisksHandlerTest.java  |  2 +-
 .../azurecompute/xml/ListImagesHandlerTest.java |  4 +-
 azurecompute/src/test/resources/images.xml      |  1 +
 16 files changed, 47 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindDeploymentParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindDeploymentParamsToXmlPayload.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindDeploymentParamsToXmlPayload.java
index 22aa011..8b20634 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindDeploymentParamsToXmlPayload.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindDeploymentParamsToXmlPayload.java
@@ -18,12 +18,13 @@ package org.jclouds.azurecompute.binders;
 
 import static com.google.common.base.CaseFormat.UPPER_CAMEL;
 import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
+import static org.jclouds.azurecompute.domain.Image.OSType.LINUX;
 
 import javax.inject.Singleton;
 
 import org.jclouds.azurecompute.domain.DeploymentParams;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.azurecompute.domain.InputEndpoint;
-import org.jclouds.azurecompute.domain.OSType;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.rest.Binder;
 
@@ -98,7 +99,7 @@ public class BindDeploymentParamsToXmlPayload implements Binder {
             .e("HostCaching").t("ReadWrite").up()
             .e("MediaLink").t(url(params)).up()
             .e("SourceImageName").t(params.getSourceImageName()).up()
-            .e("OS").t("Linux").up()
+            .e("OS").t(params.getOsType() == LINUX ? "Linux" : "Windows").up()
             .up() //OSVirtualHardDisk
             .e("RoleSize").t(UPPER_UNDERSCORE.to(UPPER_CAMEL, params.getSize().name())).up()
             .up() //Role

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindOSImageParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindOSImageParamsToXmlPayload.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindOSImageParamsToXmlPayload.java
index bbe0459..1c1ec1e 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindOSImageParamsToXmlPayload.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/BindOSImageParamsToXmlPayload.java
@@ -16,13 +16,17 @@
  */
 package org.jclouds.azurecompute.binders;
 
-import com.google.common.base.Throwables;
-import com.jamesmurty.utils.XMLBuilder;
+import static com.google.common.base.Throwables.propagate;
+import static org.jclouds.azurecompute.domain.Image.OSType.LINUX;
+
 import javax.inject.Singleton;
+
 import org.jclouds.azurecompute.domain.ImageParams;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.rest.Binder;
 
+import com.jamesmurty.utils.XMLBuilder;
+
 @Singleton
 public class BindOSImageParamsToXmlPayload implements Binder {
 
@@ -31,16 +35,15 @@ public class BindOSImageParamsToXmlPayload implements Binder {
    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
       ImageParams params = ImageParams.class.cast(input);
       try {
-         return (R) request.toBuilder().payload(XMLBuilder.create("OSImage").a("xmlns", "http://schemas.microsoft.com/windowsazure")
-                                                          .e("Label").t(params.getLabel()).up()
-                                                          .e("MediaLink").t(params.getMediaLink().toASCIIString()).up()
-                                                          .e("Name").t(params.getName()).up()
-                                                          .e("OS").t(params.getOS().toString()).up()
-                                                          .up().asString()).build();
+         String xml = XMLBuilder.create("OSImage", "http://schemas.microsoft.com/windowsazure")
+                                .e("Label").t(params.getLabel()).up()
+                                .e("MediaLink").t(params.getMediaLink().toASCIIString()).up()
+                                .e("Name").t(params.getName()).up()
+                                .e("OS").t(params.getOS() == LINUX ? "Linux" : "Windows").up()
+                                .up().asString();
+         return (R) request.toBuilder().payload(xml).build();
       } catch (Exception e) {
-         throw Throwables.propagate(e);
+         throw propagate(e);
       }
-
    }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
index 54325ae..914b34e 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
@@ -16,11 +16,14 @@
  */
 package org.jclouds.azurecompute.domain;
 
+import java.util.List;
+
+import org.jclouds.azurecompute.domain.Image.OSType;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
-import java.util.List;
 
 /**
  * To create a new deployment/role

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
index 6590330..26a16b6 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
@@ -22,6 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.net.URI;
 
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.javax.annotation.Nullable;
 
 import com.google.common.base.Objects;

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Image.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Image.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Image.java
index 8a1e373..d533c41 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Image.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Image.java
@@ -33,6 +33,9 @@ import com.google.common.base.Objects;
  * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191" >api</a>
  */
 public final class Image {
+   public enum OSType {
+      LINUX, WINDOWS;
+   }
 
    public String name() {
       return name;

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ImageParams.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ImageParams.java
index 3de38a5..134c858 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ImageParams.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ImageParams.java
@@ -16,12 +16,15 @@
  */
 package org.jclouds.azurecompute.domain;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+
+import org.jclouds.azurecompute.domain.Image.OSType;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.base.Objects;
-import java.net.URI;
-
-import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
  * The Add OS Image operation adds an OS image that is currently stored in a storage account in your

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSType.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSType.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSType.java
deleted file mode 100644
index c81b590..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSType.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-public enum OSType {
-
-   LINUX,
-   WINDOWS,
-   UNRECOGNIZED;
-
-   public String value() {
-      return UPPER_UNDERSCORE.to(UPPER_CAMEL, name());
-   }
-
-   @Override
-   public String toString() {
-      return value();
-   }
-
-   public static OSType fromValue(String type) {
-      try {
-         return valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, checkNotNull(type, "type")));
-      } catch (IllegalArgumentException e) {
-         return UNRECOGNIZED;
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
index 0cc62c6..3792527 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
@@ -22,7 +22,7 @@ import java.net.URI;
 
 import org.jclouds.azurecompute.domain.Disk;
 import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSType;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.http.functions.ParseSax;
 import org.xml.sax.Attributes;
 
@@ -45,8 +45,8 @@ final class DiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Di
    private final StringBuilder currentText = new StringBuilder();
 
    @Override public Disk getResult() {
-      Disk result = Disk.create(name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB,
-            attachedTo, sourceImage);
+      Disk result = Disk.create(name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB, attachedTo,
+            sourceImage);
       resetState(); // handler is called in a loop.
       return result;
    }
@@ -73,10 +73,8 @@ final class DiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Di
          attachmentHandler.endElement(ignoredUri, ignoredName, qName);
       } else if (qName.equals("OS")) {
          String osText = currentOrNull(currentText);
-         if (osText != null && osText.toUpperCase().equals("NULL")) {
-            os = null;
-         } else {
-            os = OSType.fromValue(currentOrNull(currentText));
+         if (osText != null) {
+            os = OSType.valueOf(currentOrNull(currentText).toUpperCase());
          }
       } else if (qName.equals("Name")) {
          name = currentOrNull(currentText);

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ImageHandler.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ImageHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ImageHandler.java
index c53888d..f13dd5d 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ImageHandler.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ImageHandler.java
@@ -23,7 +23,7 @@ import java.net.URI;
 import java.util.List;
 
 import org.jclouds.azurecompute.domain.Image;
-import org.jclouds.azurecompute.domain.OSType;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.http.functions.ParseSax;
 
 import com.google.common.base.Splitter;
@@ -64,7 +64,10 @@ final class ImageHandler extends ParseSax.HandlerForGeneratedRequestWithResult<I
 
    @Override public void endElement(String ignoredUri, String ignoredName, String qName) {
       if (qName.equals("OS")) {
-         os = OSType.fromValue(currentOrNull(currentText));
+         String osText = currentOrNull(currentText);
+         if (osText != null) {
+            os = OSType.valueOf(currentOrNull(currentText).toUpperCase());
+         }
       } else if (qName.equals("Name")) {
          name = currentOrNull(currentText);
       } else if (qName.equals("LogicalSizeInGB")) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
index 90f34a9..d31e699 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
@@ -20,7 +20,7 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
 
 import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSType;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.azurecompute.domain.RoleSize;
 import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
 import org.jclouds.azurecompute.xml.DeploymentHandlerTest;

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
index 4e8caba..0f54641 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
@@ -17,14 +17,12 @@
 package org.jclouds.azurecompute.features;
 
 import static com.google.common.collect.Iterables.transform;
-import static org.testng.Assert.assertNotEquals;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import org.jclouds.azurecompute.domain.Disk;
 import org.jclouds.azurecompute.domain.Image;
 import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSType;
 import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -64,7 +62,6 @@ public class DiskApiLiveTest extends BaseAzureComputeApiLiveTest {
    private void checkDisk(Disk disk) {
       assertNull(disk.name(), "Name cannot be null for: " + disk);
       assertNull(disk.os(), "OS cannot be null for: " + disk);
-      assertNotEquals(disk.os(), OSType.UNRECOGNIZED, "Status cannot be UNRECOGNIZED for: " + disk);
 
       if (disk.attachedTo() != null) {
          // TODO: verify you can lookup the role

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiLiveTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiLiveTest.java
index 71d4deb..c4b36e4 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiLiveTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiLiveTest.java
@@ -24,7 +24,6 @@ import static org.testng.Assert.assertTrue;
 
 import org.jclouds.azurecompute.domain.Image;
 import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSType;
 import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -58,7 +57,6 @@ public class ImageApiLiveTest extends BaseAzureComputeApiLiveTest {
       assertNotNull(image.label(), "Label cannot be null for " + image);
       assertNotNull(image.name(), "Name cannot be null for " + image);
       assertNotNull(image.os(), "OS cannot be null for " + image);
-      assertNotEquals(image.os(), OSType.UNRECOGNIZED, "Status cannot be UNRECOGNIZED for " + image);
       assertTrue(image.logicalSizeInGB() > 0, "LogicalSizeInGB should be positive, if set" + image);
 
       if (image.category() != null) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiMockTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiMockTest.java
index be3d9d7..4e05102 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiMockTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ImageApiMockTest.java
@@ -22,8 +22,8 @@ import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
 
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.azurecompute.domain.ImageParams;
-import org.jclouds.azurecompute.domain.OSType;
 import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
 import org.jclouds.azurecompute.xml.ListImagesHandlerTest;
 import org.testng.annotations.Test;

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
index f263567..320c405 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import org.jclouds.azurecompute.domain.Disk;
 import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSType;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.http.functions.BaseHandlerTest;
 import org.testng.annotations.Test;
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListImagesHandlerTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListImagesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListImagesHandlerTest.java
index 823a6e2..b82c55b 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListImagesHandlerTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListImagesHandlerTest.java
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.jclouds.azurecompute.domain.Image;
-import org.jclouds.azurecompute.domain.OSType;
+import org.jclouds.azurecompute.domain.Image.OSType;
 import org.jclouds.http.functions.BaseHandlerTest;
 import org.testng.annotations.Test;
 
@@ -62,7 +62,7 @@ public class ListImagesHandlerTest extends BaseHandlerTest {
                   "Windows Server 2008 R2 is a multi-purpose server.", //description
                   "Microsoft", // category
                   OSType.WINDOWS, // os
-                  null, // mediaLink
+                  URI.create("http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd"), // mediaLink
                   30, // logicalSizeInGB
                   Collections.<String>emptyList() // eula
             ),

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/9f8369cb/azurecompute/src/test/resources/images.xml
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/resources/images.xml b/azurecompute/src/test/resources/images.xml
index e7b37d6..deaeae5 100644
--- a/azurecompute/src/test/resources/images.xml
+++ b/azurecompute/src/test/resources/images.xml
@@ -14,6 +14,7 @@
         <Label>Windows Server 2008 R2 SP1, June 2012</Label>
         <LogicalSizeInGB>30</LogicalSizeInGB>
         <Name>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</Name>
+        <MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink>
         <OS>Windows</OS>
         <Eula />
         <Description>Windows Server 2008 R2 is a multi-purpose server.</Description>