mirror of https://github.com/apache/jclouds.git
JCLOUDS-423 - Adds support for Rackspace Cloud Files UK provider.
This commit is contained in:
parent
2ca0dac76c
commit
07d234a09f
|
@ -20,11 +20,10 @@ import org.jclouds.rackspace.cloudfiles.v1.internal.BaseCloudFilesApiLiveTest;
|
|||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests behavior of {@code CloudFilesApi}
|
||||
* Tests live behavior of {@code CloudFilesApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesApiLiveTest")
|
||||
public class CloudFilesApiLiveTest extends BaseCloudFilesApiLiveTest {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
package org.jclouds.rackspace.cloudfiles.v1;
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
|
@ -15,6 +14,7 @@ package org.jclouds.rackspace.cloudfiles.v1;
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jclouds.rackspace.cloudfiles.v1;
|
||||
|
||||
import org.jclouds.View;
|
||||
import org.jclouds.apis.internal.BaseApiMetadataTest;
|
||||
|
@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableSet;
|
|||
import com.google.common.reflect.TypeToken;
|
||||
|
||||
/**
|
||||
* Tests the behavior of {@link CloudFilesApiMetadata}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
|
|
|
@ -24,13 +24,12 @@ import org.jclouds.http.HttpRequest;
|
|||
import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.reference.CloudFilesHeaders;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
/**
|
||||
* Tests behavior of {@code BindCDNPurgeEmailAddressesToHeaders}
|
||||
* Tests the behavior of {@code BindCDNPurgeEmailAddressesToHeaders}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
|
@ -50,7 +49,7 @@ public class BindCDNPurgeEmailAddressesToHeadersMockTest extends BaseOpenStackMo
|
|||
.method("DELETE")
|
||||
.endpoint("https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_XXXXXX/")
|
||||
.addHeader(CloudFilesHeaders.CDN_PURGE_OBJECT_EMAIL, "foo@bar.com, bar@foo.com")
|
||||
.build();
|
||||
.build();
|
||||
|
||||
assertEquals(actualRequest, expectedRequest);
|
||||
|
||||
|
|
|
@ -20,9 +20,15 @@ import static org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCrede
|
|||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
|
||||
import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContextLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the {@link RegionScopedBlobStoreContext}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class CloudFilesRegionScopedBlobStoreContextLiveTest extends RegionScopedBlobStoreContextLiveTest {
|
||||
|
||||
|
|
|
@ -19,16 +19,24 @@ package org.jclouds.rackspace.cloudfiles.v1.features;
|
|||
import static org.testng.Assert.assertTrue;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.domain.Account;
|
||||
import org.jclouds.openstack.swift.v1.features.AccountApi;
|
||||
import org.jclouds.openstack.swift.v1.features.AccountApiLiveTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the OpenStack Object Storage {@link AccountApi}
|
||||
* via the {@link CloudFilesApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesAccountApiLiveTest")
|
||||
public class CloudFilesAccountApiLiveTest extends AccountApiLiveTest {
|
||||
|
||||
|
||||
public CloudFilesAccountApiLiveTest() {
|
||||
provider = "rackspace-cloudfiles";
|
||||
}
|
||||
|
||||
|
||||
public void testUrlKeyExists() throws Exception {
|
||||
for (String regionId : regions) {
|
||||
Account account = api.accountApiInRegion(regionId).get();
|
||||
|
|
|
@ -17,12 +17,18 @@
|
|||
package org.jclouds.rackspace.cloudfiles.v1.features;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.features.BulkApiLiveTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the OpenStack Object Storage {@link BulkApi}
|
||||
* via the {@link CloudFilesApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesBulkApiLiveTest")
|
||||
public class CloudFilesBulkApiLiveTest extends BulkApiLiveTest {
|
||||
|
||||
public CloudFilesBulkApiLiveTest() {
|
||||
provider = "rackspace-cloudfiles";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,8 @@ import org.testng.annotations.BeforeClass;
|
|||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the {@code CloudFilesCDNApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesCDNApiLiveTest")
|
||||
|
@ -40,7 +42,7 @@ public class CloudFilesCDNApiLiveTest extends BaseCloudFilesApiLiveTest {
|
|||
public CloudFilesCDNApiLiveTest() {
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
public void testList() throws Exception {
|
||||
for (String regionId : regions) {
|
||||
CDNApi cdnApi = api.cdnApiInRegion(regionId);
|
||||
|
|
|
@ -50,6 +50,11 @@ import com.google.common.collect.ImmutableList;
|
|||
import com.squareup.okhttp.mockwebserver.MockResponse;
|
||||
import com.squareup.okhttp.mockwebserver.MockWebServer;
|
||||
|
||||
/**
|
||||
* Tests the behavior of the {@link CloudFilesCDNApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "unit", testName = "CloudFilesCDNApiMockTest")
|
||||
public class CloudFilesCDNApiMockTest extends BaseOpenStackMockTest<CloudFilesApi> {
|
||||
|
||||
|
|
|
@ -16,9 +16,17 @@
|
|||
*/
|
||||
package org.jclouds.rackspace.cloudfiles.v1.features;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.features.ContainerApi;
|
||||
import org.jclouds.openstack.swift.v1.features.ContainerApiLiveTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the OpenStack Object Storage {@link ContainerApi}
|
||||
* via the {@link CloudFilesApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesContainerApiLiveTest")
|
||||
public class CloudFilesContainerApiLiveTest extends ContainerApiLiveTest {
|
||||
public CloudFilesContainerApiLiveTest() {
|
||||
|
|
|
@ -16,9 +16,17 @@
|
|||
*/
|
||||
package org.jclouds.rackspace.cloudfiles.v1.features;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.features.ObjectApi;
|
||||
import org.jclouds.openstack.swift.v1.features.ObjectApiLiveTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests the live behavior of the OpenStack Object Storage {@link ObjectApi}
|
||||
* via the {@link CloudFilesApi}.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "CloudFilesObjectApiLiveTest")
|
||||
public class CloudFilesObjectApiLiveTest extends ObjectApiLiveTest {
|
||||
public CloudFilesObjectApiLiveTest() {
|
||||
|
|
|
@ -16,21 +16,17 @@
|
|||
*/
|
||||
package org.jclouds.rackspace.cloudfiles.v1.internal;
|
||||
|
||||
import static org.testng.Assert.assertNotNull;
|
||||
|
||||
import org.jclouds.openstack.swift.v1.domain.Container;
|
||||
import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Base class for all Cloud Files API Live tests.
|
||||
* Base class for all {@link CloudFilesApi} live tests.
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
@Test(groups = "live", testName = "BaseCloudFilesApiLiveTest")
|
||||
public abstract class BaseCloudFilesApiLiveTest extends BaseSwiftApiLiveTest<CloudFilesApi> {
|
||||
|
||||
protected BaseCloudFilesApiLiveTest() {
|
||||
provider = "rackspace-cloudfiles";
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
Rackspace Cloud Files UK
|
||||
========================
|
||||
|
||||
The new Rackspace Cloud Files UK multi-region based provider.
|
||||
|
||||
This new "rackspace-cloudfiles-uk" provider supercedes the jclouds "cloudfiles-uk" provider, which will eventually be deprecated.
|
||||
|
||||
With this multi-region support, a BlobStore can be isolated to a specific region:
|
||||
|
||||
RegionScopedBlobStoreContext ctx =
|
||||
contextBuilder.buildView(RegionScopedBlobStoreContext.class);
|
||||
|
||||
Set<String> regionIds = ctx.configuredRegions();
|
||||
|
||||
// isolated to the only UK region
|
||||
BlobStore dfwBlobStore = ctx.blobStoreInRegion("LON");
|
||||
|
||||
Production ready?
|
||||
No
|
|
@ -0,0 +1,176 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.apache.jclouds</groupId>
|
||||
<artifactId>jclouds-project</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<!-- TODO: when out of labs, switch to org.jclouds.provider -->
|
||||
<groupId>org.apache.jclouds.labs</groupId>
|
||||
<artifactId>rackspace-cloudfiles-uk</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>jclouds Rackspace Cloud Files UK provider</name>
|
||||
<description>OpenStack Object Storage implementation targeted to Rackspace Cloud Files UK</description>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<properties>
|
||||
<!-- identity endpoint -->
|
||||
<test.rackspace-cloudfiles-uk.endpoint>https://lon.identity.api.rackspacecloud.com/v2.0/</test.rackspace-cloudfiles-uk.endpoint>
|
||||
<test.rackspace-cloudfiles-uk.api-version>1</test.rackspace-cloudfiles-uk.api-version>
|
||||
<test.rackspace-cloudfiles-uk.build-version />
|
||||
<test.rackspace-cloudfiles-uk.identity>${test.rackspace-uk.identity}</test.rackspace-cloudfiles-uk.identity>
|
||||
<test.rackspace-cloudfiles-uk.credential>${test.rackspace-uk.credential}</test.rackspace-cloudfiles-uk.credential>
|
||||
<jclouds.osgi.export>org.jclouds.rackspace.cloudfiles.uk*;version="${project.version}"</jclouds.osgi.export>
|
||||
<jclouds.osgi.import>
|
||||
org.jclouds.rest.internal;version="${jclouds.version}",
|
||||
org.jclouds.labs*;version="${project.version}",
|
||||
org.jclouds*;version="${jclouds.version}",
|
||||
*
|
||||
</jclouds.osgi.import>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>apache-snapshots</id>
|
||||
<url>https://repository.apache.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.labs</groupId>
|
||||
<artifactId>openstack-swift</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.labs</groupId>
|
||||
<artifactId>openstack-swift</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.labs</groupId>
|
||||
<artifactId>rackspace-cloudfiles</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.labs</groupId>
|
||||
<artifactId>rackspace-cloudfiles</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.api</groupId>
|
||||
<artifactId>openstack-keystone</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.api</groupId>
|
||||
<artifactId>openstack-keystone</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds</groupId>
|
||||
<artifactId>jclouds-blobstore</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds</groupId>
|
||||
<artifactId>jclouds-core</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds</groupId>
|
||||
<artifactId>jclouds-core</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.driver</groupId>
|
||||
<artifactId>jclouds-slf4j</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.jclouds.api</groupId>
|
||||
<artifactId>rackspace-cloudidentity</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>live</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>integration</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<forkCount>5</forkCount>
|
||||
<reuseForks>true</reuseForks>
|
||||
<parallel>classes</parallel>
|
||||
<systemPropertyVariables>
|
||||
<test.rackspace-cloudfiles-uk.endpoint>${test.rackspace-cloudfiles-uk.endpoint}</test.rackspace-cloudfiles-uk.endpoint>
|
||||
<test.rackspace-cloudfiles-uk.api-version>${test.rackspace-cloudfiles-uk.api-version}</test.rackspace-cloudfiles-uk.api-version>
|
||||
<test.rackspace-cloudfiles-uk.build-version>${test.rackspace-cloudfiles-uk.build-version}</test.rackspace-cloudfiles-uk.build-version>
|
||||
<test.rackspace-cloudfiles-uk.identity>${test.rackspace-cloudfiles-uk.identity}</test.rackspace-cloudfiles-uk.identity>
|
||||
<test.rackspace-cloudfiles-uk.credential>${test.rackspace-cloudfiles-uk.credential}</test.rackspace-cloudfiles-uk.credential>
|
||||
<jclouds.blobstore.httpstream.url>${jclouds.blobstore.httpstream.url}</jclouds.blobstore.httpstream.url>
|
||||
<jclouds.blobstore.httpstream.md5>${jclouds.blobstore.httpstream.md5}</jclouds.blobstore.httpstream.md5>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,125 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk;
|
||||
|
||||
import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
|
||||
import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
|
||||
import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
|
||||
import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
|
||||
import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
|
||||
import static org.jclouds.reflect.Reflection2.typeToken;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
|
||||
import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
|
||||
import org.jclouds.openstack.swift.v1.blobstore.config.SignUsingTemporaryUrls;
|
||||
import org.jclouds.openstack.swift.v1.blobstore.config.SwiftBlobStoreContextModule;
|
||||
import org.jclouds.openstack.swift.v1.config.SwiftTypeAdapters;
|
||||
import org.jclouds.openstack.v2_0.ServiceType;
|
||||
import org.jclouds.providers.ProviderMetadata;
|
||||
import org.jclouds.providers.internal.BaseProviderMetadata;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApiMetadata;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.config.CloudFilesHttpApiModule;
|
||||
import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
|
||||
import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
|
||||
import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.inject.Module;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jeremy Daggett
|
||||
*/
|
||||
public class CloudFilesUKProviderMetadata extends BaseProviderMetadata {
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder toBuilder() {
|
||||
return builder().fromProviderMetadata(this);
|
||||
}
|
||||
|
||||
public CloudFilesUKProviderMetadata() {
|
||||
this(new Builder());
|
||||
}
|
||||
|
||||
protected CloudFilesUKProviderMetadata(Builder builder) {
|
||||
super(builder);
|
||||
}
|
||||
|
||||
public static Properties defaultProperties() {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
|
||||
properties.setProperty(SERVICE_TYPE, ServiceType.OBJECT_STORE);
|
||||
|
||||
properties.setProperty(PROPERTY_REGIONS, "LON");
|
||||
properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG");
|
||||
|
||||
return properties;
|
||||
}
|
||||
|
||||
public static class Builder extends BaseProviderMetadata.Builder {
|
||||
|
||||
protected Builder() {
|
||||
id("rackspace-cloudfiles-uk")
|
||||
.name("Rackspace Cloud Files UK")
|
||||
.apiMetadata(new CloudFilesApiMetadata().toBuilder()
|
||||
.identityName("${userName}")
|
||||
.credentialName("${apiKey}")
|
||||
.defaultEndpoint("https://identity.api.rackspacecloud.com/v2.0/")
|
||||
.documentation(URI.create("http://docs.rackspace.com/files/api/v1/cf-devguide/content/index.html"))
|
||||
.endpointName("Rackspace Cloud Identity service URL ending in /v2.0/")
|
||||
.version("1.0")
|
||||
.view(typeToken(RegionScopedBlobStoreContext.class))
|
||||
.defaultModules(ImmutableSet.<Class<? extends Module>>builder()
|
||||
.add(CloudIdentityAuthenticationApiModule.class)
|
||||
.add(CloudIdentityAuthenticationModule.class)
|
||||
.add(RegionModule.class)
|
||||
.add(SwiftTypeAdapters.class)
|
||||
.add(CloudFilesHttpApiModule.class)
|
||||
.add(SwiftBlobStoreContextModule.class)
|
||||
.add(SignUsingTemporaryUrls.class)
|
||||
.build())
|
||||
.build())
|
||||
.homepage(URI.create("http://www.rackspace.com/cloud/files"))
|
||||
.console(URI.create("https://mycloud.rackspace.com"))
|
||||
.linkedServices("rackspace-autoscale-us", "rackspace-cloudblockstorage-us",
|
||||
"rackspace-clouddatabases-us", "rackspace-clouddns-us",
|
||||
"rackspace-cloudidentity", "rackspace-cloudloadbalancers-us",
|
||||
"rackspace-cloudqueues-us")
|
||||
.iso3166Codes("GB-SLG")
|
||||
.defaultProperties(CloudFilesUKProviderMetadata.defaultProperties());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public CloudFilesUKProviderMetadata build() {
|
||||
return new CloudFilesUKProviderMetadata(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder fromProviderMetadata(ProviderMetadata in) {
|
||||
super.fromProviderMetadata(in);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
org.jclouds.rackspace.cloudfiles.uk.CloudFilesUKProviderMetadata
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk;
|
||||
|
||||
import org.jclouds.providers.internal.BaseProviderMetadataTest;
|
||||
import org.jclouds.rackspace.cloudfiles.uk.CloudFilesUKProviderMetadata;
|
||||
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApiMetadata;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "unit", testName = "CloudFilesUKProviderTest")
|
||||
public class CloudFilesUKProviderTest extends BaseProviderMetadataTest {
|
||||
public CloudFilesUKProviderTest() {
|
||||
super(new CloudFilesUKProviderMetadata(), new CloudFilesApiMetadata());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesBlobIntegrationLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKBlobIntegrationLiveTest")
|
||||
public class CloudFilesUKBlobIntegrationLiveTest extends CloudFilesBlobIntegrationLiveTest {
|
||||
public CloudFilesUKBlobIntegrationLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesBlobLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKBlobLiveTest")
|
||||
public class CloudFilesUKBlobLiveTest extends CloudFilesBlobLiveTest {
|
||||
public CloudFilesUKBlobLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesBlobSignerLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKBlobSignerLiveTest")
|
||||
public class CloudFilesUKBlobSignerLiveTest extends CloudFilesBlobSignerLiveTest {
|
||||
public CloudFilesUKBlobSignerLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesContainerIntegrationLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKContainerIntegrationLiveTest")
|
||||
public class CloudFilesUKContainerIntegrationLiveTest extends CloudFilesContainerIntegrationLiveTest {
|
||||
public CloudFilesUKContainerIntegrationLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesContainerLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKContainerLiveTest")
|
||||
public class CloudFilesUKContainerLiveTest extends CloudFilesContainerLiveTest {
|
||||
public CloudFilesUKContainerLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* 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.rackspace.cloudfiles.uk.blobstore.integration;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.jclouds.rackspace.cloudfiles.v1.blobstore.integration.CloudFilesServiceIntegrationLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
@Test(groups = "live", testName = "CloudFilesUKServiceIntegrationLiveTest")
|
||||
public class CloudFilesUKServiceIntegrationLiveTest extends CloudFilesServiceIntegrationLiveTest {
|
||||
public CloudFilesUKServiceIntegrationLiveTest() {
|
||||
provider = "rackspace-cloudfiles-uk";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Set<String> getIso3166Codes() {
|
||||
return ImmutableSet.<String> of("GB-SLG");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.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.
|
||||
|
||||
-->
|
||||
<configuration scan="false">
|
||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||
<file>target/test-data/jclouds.log</file>
|
||||
|
||||
<encoder>
|
||||
<Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="WIREFILE" class="ch.qos.logback.core.FileAppender">
|
||||
<file>target/test-data/jclouds-wire.log</file>
|
||||
|
||||
<encoder>
|
||||
<Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="BLOBSTOREFILE" class="ch.qos.logback.core.FileAppender">
|
||||
<file>target/test-data/jclouds-blobstore.log</file>
|
||||
|
||||
<encoder>
|
||||
<Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="warn" />
|
||||
</root>
|
||||
|
||||
<logger name="org.jclouds">
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="FILE" />
|
||||
</logger>
|
||||
|
||||
<!--
|
||||
<logger name="jclouds.wire">
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="WIREFILE" />
|
||||
</logger>
|
||||
-->
|
||||
|
||||
<logger name="jclouds.headers">
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="WIREFILE" />
|
||||
</logger>
|
||||
|
||||
<logger name="jclouds.blobstore">
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="BLOBSTOREFILE" />
|
||||
</logger>
|
||||
|
||||
</configuration>
|
Loading…
Reference in New Issue