You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2014/04/01 18:00:20 UTC

git commit: JCLOUDS-489 - Adds support to Cloud Files for the iOS Streaming URI

Repository: jclouds
Updated Branches:
  refs/heads/1.7.x a45a24d4a -> c3d341a68


JCLOUDS-489 - Adds support to Cloud Files for the iOS Streaming URI


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

Branch: refs/heads/1.7.x
Commit: c3d341a680aef7782d3837151a15754f24fcb52b
Parents: a45a24d
Author: Jeremy Daggett <je...@rackspace.com>
Authored: Fri Mar 7 11:20:21 2014 -0800
Committer: Everett Toews <ev...@rackspace.com>
Committed: Tue Apr 1 11:00:01 2014 -0500

----------------------------------------------------------------------
 .../cloudfiles/domain/ContainerCDNMetadata.java | 78 +++++++++++---------
 .../ParseContainerCDNMetadataFromHeaders.java   | 35 +++++----
 .../cloudfiles/reference/CloudFilesHeaders.java |  3 +-
 .../cloudfiles/CloudFilesClientExpectTest.java  | 23 +++---
 .../cloudfiles/CloudFilesClientLiveTest.java    |  5 +-
 ...inerCDNMetadataListFromJsonResponseTest.java | 10 ++-
 .../src/test/resources/test_list_cdn.json       | 11 +--
 7 files changed, 91 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/domain/ContainerCDNMetadata.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/domain/ContainerCDNMetadata.java b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/domain/ContainerCDNMetadata.java
index 7ccfe72..23a35f3 100644
--- a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/domain/ContainerCDNMetadata.java
+++ b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/domain/ContainerCDNMetadata.java
@@ -16,8 +16,15 @@
  */
 package org.jclouds.cloudfiles.domain;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.beans.ConstructorProperties;
 import java.net.URI;
 
+import javax.inject.Named;
+
+import org.jclouds.javax.annotation.Nullable;
+
 /**
  * 
  * @author James Murty
@@ -26,23 +33,32 @@ import java.net.URI;
 public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
 
    private String name;
-   private boolean cdn_enabled;
-   private boolean log_retention;
+   @Named("cdn_enabled")
+   private boolean cdnEnabled;
+   @Named("log_retention")
+   private boolean logRetention;
    private long ttl;
-   private URI cdn_uri;
-   private URI cdn_ssl_uri;
-   private URI cdn_streaming_uri;
-   private String referrer_acl;
-   private String useragent_acl;
-
-   public ContainerCDNMetadata(String name, boolean cdnEnabled, boolean logRetention, long ttl, URI cdnUri, URI cdnSslUri, URI cdnStreamingUri) {
-      this.name = name;
-      this.cdn_enabled = cdnEnabled;
-      this.log_retention = logRetention;
-      this.ttl = ttl;
-      this.cdn_uri = cdnUri;
-      this.cdn_ssl_uri = cdnSslUri;
-      this.cdn_streaming_uri = cdnStreamingUri;
+   @Named("cdn_uri")
+   private URI cdnUri;
+   @Named("cdn_ssl_uri")
+   private URI cdnSslUri;
+   @Named("cdn_streaming_uri")
+   private URI cdnStreamingUri;
+   @Named("cdn_ios_uri")
+   private URI cdnIosUri;
+
+   @ConstructorProperties({ "name", "cdn_enabled", "log_retention", "ttl", "cdn_uri", "cdn_ssl_uri",
+         "cdn_streaming_uri", "cdn_ios_uri"})
+   public ContainerCDNMetadata(String name, boolean cdnEnabled, boolean logRetention, long ttl,
+         @Nullable URI cdnUri, @Nullable URI cdnSslUri, @Nullable URI cdnStreamingUri, @Nullable URI cdnIosUri) {
+      this.name = checkNotNull(name, "name");
+      this.cdnEnabled = checkNotNull(cdnEnabled);
+      this.logRetention = checkNotNull(logRetention);
+      this.ttl = checkNotNull(ttl);
+      this.cdnUri = cdnUri;
+      this.cdnSslUri = cdnSslUri;
+      this.cdnStreamingUri = cdnStreamingUri;
+      this.cdnIosUri = cdnIosUri;
    }
 
    public ContainerCDNMetadata() {
@@ -57,11 +73,11 @@ public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
    }
 
    public boolean isCDNEnabled() {
-      return cdn_enabled;
+      return cdnEnabled;
    }
 
    public boolean isLogRetention() {
-      return log_retention;
+      return logRetention;
    }
 
    public long getTTL() {
@@ -69,23 +85,19 @@ public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
    }
 
    public URI getCDNUri() {
-      return cdn_uri;
+      return cdnUri;
    }
 
    public URI getCDNSslUri() {
-      return cdn_ssl_uri;
+      return cdnSslUri;
    }
 
    public URI getCDNStreamingUri() {
-      return cdn_streaming_uri;
-   }
-
-   public String getReferrerACL() {
-      return referrer_acl;
+      return cdnStreamingUri;
    }
 
-   public String getUseragentACL() {
-      return useragent_acl;
+   public URI getCDNIosUri() {
+      return cdnIosUri;
    }
 
    public int compareTo(ContainerCDNMetadata o) {
@@ -98,7 +110,7 @@ public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
    public int hashCode() {
       final int prime = 31;
       int result = 1;
-      result = prime * result + ((cdn_uri == null) ? 0 : cdn_uri.hashCode());
+      result = prime * result + ((cdnUri == null) ? 0 : cdnUri.hashCode());
       return result;
    }
 
@@ -112,10 +124,10 @@ public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
          return false;
       
       ContainerCDNMetadata other = (ContainerCDNMetadata) obj;
-      if (cdn_uri == null) {
-         if (other.cdn_uri != null)
+      if (cdnUri == null) {
+         if (other.cdnUri != null)
             return false;
-      } else if (!cdn_uri.equals(other.cdn_uri))
+      } else if (!cdnUri.equals(other.cdnUri))
          return false;
       
       return true;
@@ -124,7 +136,7 @@ public class ContainerCDNMetadata implements Comparable<ContainerCDNMetadata> {
    @Override
    public String toString() {
       return String.format(
-               "[name=%s, cdn_enabled=%s, log_retention=%s, ttl=%s, cdn_uri=%s, cdn_ssl_uri=%s, cdn_streaming_uri=%s, referrer_acl=%s, useragent_acl=%s]",
-                 name, cdn_enabled, log_retention, ttl, cdn_uri, cdn_ssl_uri, cdn_streaming_uri, referrer_acl, useragent_acl);
+               "[name=%s, cdnEnabled=%s, logRetention=%s, ttl=%s, cdnUri=%s, cdnSslUri=%s, cdnStreamingUri=%s, cdnIosUri=%s]",
+                 name, cdnEnabled, logRetention, ttl, cdnUri, cdnSslUri, cdnStreamingUri, cdnIosUri);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataFromHeaders.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataFromHeaders.java b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataFromHeaders.java
index fc4645e..ed81f0d 100644
--- a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataFromHeaders.java
+++ b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataFromHeaders.java
@@ -16,9 +16,12 @@
  */
 package org.jclouds.cloudfiles.functions;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.Lists.newArrayList;
 
 import java.net.URI;
+import java.util.List;
 
 import org.jclouds.cloudfiles.domain.ContainerCDNMetadata;
 import org.jclouds.cloudfiles.reference.CloudFilesHeaders;
@@ -27,11 +30,14 @@ import org.jclouds.http.HttpResponse;
 import org.jclouds.rest.InvocationContext;
 
 import com.google.common.base.Function;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
 
 /**
  * This parses {@link AccountMetadata} from HTTP headers.
  * 
  * @author James Murty
+ * @author Jeremy Daggett
  */
 public class ParseContainerCDNMetadataFromHeaders implements
          Function<HttpResponse, ContainerCDNMetadata>, InvocationContext<ParseContainerCDNMetadataFromHeaders> {
@@ -48,21 +54,20 @@ public class ParseContainerCDNMetadataFromHeaders implements
       String cdnUri = checkNotNull(from.getFirstHeaderOrNull(CloudFilesHeaders.CDN_URI), CloudFilesHeaders.CDN_URI);
       String cdnSslUri = checkNotNull(from.getFirstHeaderOrNull(CloudFilesHeaders.CDN_SSL_URI), CloudFilesHeaders.CDN_SSL_URI);
       String cdnStreamingUri = checkNotNull(from.getFirstHeaderOrNull(CloudFilesHeaders.CDN_STREAMING_URI), CloudFilesHeaders.CDN_STREAMING_URI);
-      
-      if (cdnUri == null) {
-         // CDN is not, and has never, been enabled for this container.
-         return null;
-      } 
-      else {
-         return new ContainerCDNMetadata(
-            request.getEndpoint().getPath(), 
-            Boolean.parseBoolean(cdnEnabled), 
-            Boolean.parseBoolean(cdnLogRetention), 
-            Long.parseLong(cdnTTL), 
-            URI.create(cdnUri),
-            URI.create(cdnSslUri),
-            URI.create(cdnStreamingUri));
-      }
+      String cdnIosUri = checkNotNull(from.getFirstHeaderOrNull(CloudFilesHeaders.CDN_IOS_URI), CloudFilesHeaders.CDN_IOS_URI);
+
+      List<String> parts = newArrayList(Splitter.on('/').split(request.getEndpoint().getPath()));
+      checkArgument(!parts.isEmpty(), "incorrect path: " + request.getEndpoint().getPath());
+
+      return new ContainerCDNMetadata(
+         Iterables.getLast(parts),
+         Boolean.parseBoolean(cdnEnabled),
+         Boolean.parseBoolean(cdnLogRetention),
+         Long.parseLong(cdnTTL),
+         URI.create(cdnUri),
+         URI.create(cdnSslUri),
+         URI.create(cdnStreamingUri),
+         URI.create(cdnIosUri));
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/reference/CloudFilesHeaders.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/reference/CloudFilesHeaders.java b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/reference/CloudFilesHeaders.java
index 5dee9e4..db086ba 100644
--- a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/reference/CloudFilesHeaders.java
+++ b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/reference/CloudFilesHeaders.java
@@ -34,8 +34,7 @@ public interface CloudFilesHeaders extends SwiftHeaders {
    public static final String CDN_URI = "X-CDN-URI";
    public static final String CDN_SSL_URI = "X-Cdn-Ssl-Uri";
    public static final String CDN_STREAMING_URI = "X-Cdn-Streaming-Uri";
-   public static final String CDN_REFERRER_ACL = "X-Referrer-ACL ";
-   public static final String CDN_USER_AGENT_ACL = "X-User-Agent-ACL";
+   public static final String CDN_IOS_URI = "X-Cdn-Ios-Uri";
 
    public static final String CDN_CONTAINER_PURGE_OBJECT_EMAIL = "X-Purge-Email";
    public static final String CDN_WEBSITE_INDEX = "X-Container-Meta-Web-Index";

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientExpectTest.java b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientExpectTest.java
index 3864bf6..1cfecbc 100644
--- a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientExpectTest.java
+++ b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientExpectTest.java
@@ -33,13 +33,13 @@ import org.testng.annotations.Test;
 /**
  * 
  * @author Adrian Cole
+ * @author Jeremy Daggett
  */
 @Test(groups = "unit", testName = "CloudFilesClientExpectTest")
 public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTest {
 
    @Test
    public void testDeleteContainerReturnsTrueOn200And404() {
-
       HttpRequest deleteContainer = HttpRequest
                .builder()
                .method("DELETE")
@@ -62,7 +62,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test
    public void testGetCDNMetadataWhenResponseIs2xxReturnsContainerCDNMetadata() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("HEAD")
             .endpoint("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader("X-Auth-Token", authToken)
@@ -75,6 +75,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
             .addHeader(CloudFilesHeaders.CDN_URI, "http://546406d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r19.cf1.rackcdn.com")
             .addHeader(CloudFilesHeaders.CDN_SSL_URI, "https://e9f6fe92d217dc013369-36c33e76d676c80251b3c13ecb603b67.ssl.cf1.rackcdn.com")
             .addHeader(CloudFilesHeaders.CDN_STREAMING_URI, "http://0e79346bc0a2564dcc5e-36c33e76d676c80251b3c13ecb603b67.r19.stream.cf1.rackcdn.com")
+            .addHeader(CloudFilesHeaders.CDN_IOS_URI, "http://552e06d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r11.iosr.cf1.rackcdn.com")
             .statusCode(204)
             .build();
 
@@ -88,11 +89,12 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
       assertEquals(containerCDNMetadata.getCDNUri().toString(), "http://546406d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r19.cf1.rackcdn.com");
       assertEquals(containerCDNMetadata.getCDNSslUri().toString(), "https://e9f6fe92d217dc013369-36c33e76d676c80251b3c13ecb603b67.ssl.cf1.rackcdn.com");
       assertEquals(containerCDNMetadata.getCDNStreamingUri().toString(), "http://0e79346bc0a2564dcc5e-36c33e76d676c80251b3c13ecb603b67.r19.stream.cf1.rackcdn.com");
+      assertEquals(containerCDNMetadata.getCDNIosUri().toString(), "http://552e06d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r11.iosr.cf1.rackcdn.com");
    }
 
    @Test
    public void testGetCDNMetadataWhenResponseIs404ReturnsNull() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("HEAD")
             .endpoint("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader("X-Auth-Token", authToken)
@@ -110,7 +112,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test
    public void testUpdateCDNMetadataWhenResponseIs2xxReturnsURI() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("POST")
             .endpoint("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader(CloudFilesHeaders.CDN_TTL, "259200")
@@ -125,6 +127,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
             .addHeader(CloudFilesHeaders.CDN_URI, "http://546406d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r19.cf1.rackcdn.com")
             .addHeader(CloudFilesHeaders.CDN_SSL_URI, "https://e9f6fe92d217dc013369-36c33e76d676c80251b3c13ecb603b67.ssl.cf1.rackcdn.com")
             .addHeader(CloudFilesHeaders.CDN_STREAMING_URI, "http://0e79346bc0a2564dcc5e-36c33e76d676c80251b3c13ecb603b67.r19.stream.cf1.rackcdn.com")
+            .addHeader(CloudFilesHeaders.CDN_IOS_URI, "http://552e06d62bf471d7435d-36c33e76d676c80251b3c13ecb603b67.r11.iosr.cf1.rackcdn.com")
             .statusCode(204)
             .build();
 
@@ -154,10 +157,10 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
       cdnContainerClient.updateCDN("container", 259200, true);
    }
-   
+
    @Test
    public void testPurgeCDNObjectWhenResponseIs2xxReturnsTrue() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("DELETE")
             .endpoint("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container/foo.txt")
             .addHeader("X-Auth-Token", authToken)
@@ -175,7 +178,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test
    public void testSetCDNStaticWebsiteIndexWhenResponseIs2xxReturnsTrue() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("POST")
             .endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader(CloudFilesHeaders.CDN_WEBSITE_INDEX, "index.html")
@@ -194,7 +197,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test(expectedExceptions = ContainerNotFoundException.class)
    public void testSetCDNStaticWebsiteIndexWhenResponseIs404ThrowsException() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("POST")
             .endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader(CloudFilesHeaders.CDN_WEBSITE_INDEX, "index.html")
@@ -213,7 +216,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test
    public void testSetCDNStaticWebsiteErrorWhenResponseIs2xxReturnsTrue() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("POST")
             .endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader(CloudFilesHeaders.CDN_WEBSITE_ERROR, "error.html")
@@ -232,7 +235,7 @@ public class CloudFilesClientExpectTest extends BaseCloudFilesRestClientExpectTe
 
    @Test(expectedExceptions = ContainerNotFoundException.class)
    public void testSetCDNStaticWebsiteErrorWhenResponseIs404ThrowsException() {
-	   HttpRequest cdnContainerRequest = HttpRequest.builder()
+      HttpRequest cdnContainerRequest = HttpRequest.builder()
             .method("POST")
             .endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container")
             .addHeader(CloudFilesHeaders.CDN_WEBSITE_ERROR, "error.html")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientLiveTest.java b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientLiveTest.java
index 0a5c77a..f5607a3 100644
--- a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientLiveTest.java
+++ b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/CloudFilesClientLiveTest.java
@@ -109,11 +109,10 @@ public class CloudFilesClientLiveTest extends CommonSwiftClientLiveTest<CloudFil
          final long initialTTL = cdnMetadata.getTTL();
          final URI cdnSslUri = cdnMetadata.getCDNSslUri();
          final URI cdnStreamingUri = cdnMetadata.getCDNStreamingUri();
+         final URI cdnIosUri = cdnMetadata.getCDNIosUri();
          assertTrue(cdnMetadataList.contains(new ContainerCDNMetadata(
-            containerNameWithCDN, cdnEnabled, logRetention, initialTTL, cdnUri, cdnSslUri, cdnStreamingUri)));
+            containerNameWithCDN, cdnEnabled, logRetention, initialTTL, cdnUri, cdnSslUri, cdnStreamingUri, cdnIosUri)));
 
-         
-         
          // Test listing with options
          cdnMetadataList = getApi().listCDNContainers(ListCdnContainerOptions.Builder.enabledOnly());
          assertTrue(Iterables.all(cdnMetadataList, new Predicate<ContainerCDNMetadata>() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataListFromJsonResponseTest.java b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataListFromJsonResponseTest.java
index 9ed57ed..a89ee9d 100644
--- a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataListFromJsonResponseTest.java
+++ b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/functions/ParseContainerCDNMetadataListFromJsonResponseTest.java
@@ -56,7 +56,8 @@ public class ParseContainerCDNMetadataListFromJsonResponseTest {
             3600, 
             URI.create("http://c0354712.cdn.cloudfiles.rackspacecloud.com"), 
             URI.create("https://c0354712.cdn.ssl.cloudfiles.rackspacecloud.com"),
-            URI.create("http://c0354712.cdn.stream.cloudfiles.rackspacecloud.com")),
+            URI.create("http://c0354712.cdn.stream.cloudfiles.rackspacecloud.com"),
+            URI.create("http://c0354712.cdn.iosr.cloudfiles.rackspacecloud.com")),
          new ContainerCDNMetadata(
             "adriancole-blobstore5", 
             true, 
@@ -64,7 +65,8 @@ public class ParseContainerCDNMetadataListFromJsonResponseTest {
             28800, 
             URI.create("http://c0404671.cdn.cloudfiles.rackspacecloud.com"),
             URI.create("https://c0404671.cdn.ssl.cloudfiles.rackspacecloud.com"),
-            URI.create("http://c0404671.cdn.stream.cloudfiles.rackspacecloud.com")),
+            URI.create("http://c0404671.cdn.stream.cloudfiles.rackspacecloud.com"),
+            URI.create("http://c0404671.cdn.iosr.cloudfiles.rackspacecloud.com")),
          new ContainerCDNMetadata(
             "adriancole-cfcdnint.testCDNOperationsContainerWithCDN", 
             false, 
@@ -72,8 +74,8 @@ public class ParseContainerCDNMetadataListFromJsonResponseTest {
             3600, 
             URI.create("http://c0320431.cdn.cloudfiles.rackspacecloud.com"),
             URI.create("https://c0320431.cdn.ssl.cloudfiles.rackspacecloud.com"),
-            URI.create("http://c0320431.cdn.stream.cloudfiles.rackspacecloud.com"))
-      );
+            URI.create("http://c0320431.cdn.stream.cloudfiles.rackspacecloud.com"),
+            URI.create("http://c0320431.cdn.iosr.cloudfiles.rackspacecloud.com")));
       
       ParseJson<SortedSet<ContainerCDNMetadata>> parser = i.getInstance(Key
                .get(new TypeLiteral<ParseJson<SortedSet<ContainerCDNMetadata>>>() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3d341a6/apis/cloudfiles/src/test/resources/test_list_cdn.json
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/resources/test_list_cdn.json b/apis/cloudfiles/src/test/resources/test_list_cdn.json
index 9562816..7e06979 100644
--- a/apis/cloudfiles/src/test/resources/test_list_cdn.json
+++ b/apis/cloudfiles/src/test/resources/test_list_cdn.json
@@ -7,8 +7,7 @@
         "cdn_uri":"http://c0354712.cdn.cloudfiles.rackspacecloud.com",
         "cdn_ssl_uri":"https://c0354712.cdn.ssl.cloudfiles.rackspacecloud.com",
         "cdn_streaming_uri":"http://c0354712.cdn.stream.cloudfiles.rackspacecloud.com",
-        "referrer_acl":"",
-        "useragent_acl":""
+        "cdn_ios_uri":"http://c0354712.cdn.iosr.cloudfiles.rackspacecloud.com"
     },
     {
         "name":"adriancole-blobstore5",
@@ -18,8 +17,7 @@
         "cdn_uri":"http://c0404671.cdn.cloudfiles.rackspacecloud.com",
         "cdn_ssl_uri":"https://c0404671.cdn.ssl.cloudfiles.rackspacecloud.com",
         "cdn_streaming_uri":"http://c0404671.cdn.stream.cloudfiles.rackspacecloud.com",
-        "referrer_acl":"",
-        "useragent_acl":""
+        "cdn_ios_uri":"http://c0404671.cdn.iosr.cloudfiles.rackspacecloud.com"
     },
     {
         "name":"adriancole-cfcdnint.testCDNOperationsContainerWithCDN",
@@ -29,7 +27,6 @@
         "cdn_uri":"http://c0320431.cdn.cloudfiles.rackspacecloud.com",
         "cdn_ssl_uri":"https://c0320431.cdn.ssl.cloudfiles.rackspacecloud.com",
         "cdn_streaming_uri":"http://c0320431.cdn.stream.cloudfiles.rackspacecloud.com",
-        "referrer_acl":"",
-        "useragent_acl":""
+        "cdn_ios_uri":"http://c0320431.cdn.iosr.cloudfiles.rackspacecloud.com"
     }
-]
\ No newline at end of file
+]