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/11/20 16:45:28 UTC
jclouds git commit: Remove Rackspace Cloud Identity v1.1
Repository: jclouds
Updated Branches:
refs/heads/master 9128448de -> dd743e58b
Remove Rackspace Cloud Identity v1.1
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/dd743e58
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/dd743e58
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/dd743e58
Branch: refs/heads/master
Commit: dd743e58b148a20fe182c6ee0e855960e7aa7b5b
Parents: 9128448
Author: Everett Toews <ev...@apache.org>
Authored: Wed Nov 19 17:37:59 2014 -0600
Committer: Adrian Cole <ad...@gmail.com>
Committed: Thu Nov 20 07:44:47 2014 -0800
----------------------------------------------------------------------
.../cloudidentity/v1_1/AuthenticationApi.java | 48 -----
.../binders/BindCredentialsToJsonPayload.java | 48 -----
.../v1_1/config/Authentication.java | 31 ---
.../config/AuthenticationServiceModule.java | 117 -----------
.../cloudidentity/v1_1/domain/Auth.java | 123 ------------
.../cloudidentity/v1_1/domain/Endpoint.java | 198 -------------------
.../cloudidentity/v1_1/domain/Token.java | 137 -------------
.../v1_1/functions/EndpointToRegion.java | 27 ---
.../v1_1/functions/EndpointToSupplierURI.java | 29 ---
.../functions/PublicURLOrInternalIfNull.java | 39 ----
.../RegionFirstPartOfDNSNameOrProvider.java | 47 -----
.../v1_1/handlers/RetryOnRenew.java | 133 -------------
...RegionIdToURIFromAuthForServiceSupplier.java | 65 ------
.../suppliers/V1DefaultRegionIdSupplier.java | 83 --------
.../PublicURLOrInternalIfNullTest.java | 43 ----
.../RegionFirstPartOfDNSNameOrProviderTest.java | 47 -----
.../v1_1/handlers/RetryOnRenewTest.java | 165 ----------------
.../BaseKeystoneRestClientExpectTest.java | 62 ------
.../cloudidentity/v1_1/parse/ParseAuthTest.java | 77 --------
...onIdToURIFromAuthForServiceSupplierTest.java | 69 -------
.../V1DefaultRegionIdSupplierTest.java | 61 ------
.../src/test/resources/auth1_1.json | 25 ---
22 files changed, 1674 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/AuthenticationApi.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/AuthenticationApi.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/AuthenticationApi.java
deleted file mode 100644
index a3128fb..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/AuthenticationApi.java
+++ /dev/null
@@ -1,48 +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.rackspace.cloudidentity.v1_1;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.binders.BindCredentialsToJsonPayload;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.inject.name.Named;
-
-/**
- * Provides access to the Rackspace Cloud Identity v1.1 API.
- */
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/v1.1/auth")
-public interface AuthenticationApi {
-
- /**
- * Authenticate to generate a token.
- *
- * @return access with token
- */
- @Named("authenticate")
- @POST
- @SelectJson("auth")
- @MapBinder(BindCredentialsToJsonPayload.class)
- Auth authenticate(String username, String key);
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/binders/BindCredentialsToJsonPayload.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/binders/BindCredentialsToJsonPayload.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/binders/BindCredentialsToJsonPayload.java
deleted file mode 100644
index d2e6526..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/binders/BindCredentialsToJsonPayload.java
+++ /dev/null
@@ -1,48 +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.rackspace.cloudidentity.v1_1.binders;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.json.Json;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.collect.ImmutableMap;
-
-@Singleton
-public class BindCredentialsToJsonPayload extends BindToJsonPayload implements MapBinder {
- @Inject
- public BindCredentialsToJsonPayload(Json jsonBinder) {
- super(jsonBinder);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object toBind) {
- throw new IllegalStateException("BindCredentialsToJsonPayload needs parameters");
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- return super.bindToRequest(request, ImmutableMap.of("credentials", postParams));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/Authentication.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/Authentication.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/Authentication.java
deleted file mode 100644
index ed4fda1..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/Authentication.java
+++ /dev/null
@@ -1,31 +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.rackspace.cloudidentity.v1_1.config;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import javax.inject.Qualifier;
-
-@Retention(value = RetentionPolicy.RUNTIME)
-@Target(value = { ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD })
-@Qualifier
-public @interface Authentication {
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/AuthenticationServiceModule.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/AuthenticationServiceModule.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/AuthenticationServiceModule.java
deleted file mode 100644
index f26d4c2..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/config/AuthenticationServiceModule.java
+++ /dev/null
@@ -1,117 +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.rackspace.cloudidentity.v1_1.config;
-
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-import static org.jclouds.rest.config.BinderUtils.bindHttpApi;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpRetryHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.location.Provider;
-import org.jclouds.location.suppliers.ImplicitRegionIdSupplier;
-import org.jclouds.location.suppliers.RegionIdToURISupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.AuthenticationApi;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.handlers.RetryOnRenew;
-import org.jclouds.rackspace.cloudidentity.v1_1.suppliers.RegionIdToURIFromAuthForServiceSupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.suppliers.V1DefaultRegionIdSupplier;
-
-import com.google.common.base.Supplier;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
-import com.google.inject.name.Named;
-
-public class AuthenticationServiceModule extends AbstractModule {
-
- @Override
- protected void configure() {
- // ServiceClient is used directly for filters and retry handlers, so let's bind it explicitly
- bindHttpApi(binder(), AuthenticationApi.class);
- install(new FactoryModuleBuilder().implement(RegionIdToURISupplier.class,
- RegionIdToURIFromAuthForServiceSupplier.class).build(RegionIdToURISupplier.Factory.class));
- install(new FactoryModuleBuilder().implement(ImplicitRegionIdSupplier.class, V1DefaultRegionIdSupplier.class)
- .build(V1DefaultRegionIdSupplier.Factory.class));
- bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(RetryOnRenew.class);
- }
-
- /**
- * borrowing concurrency code to ensure that caching takes place properly
- */
- @Provides
- @Singleton
- @Authentication
- protected Supplier<String> provideAuthenticationTokenCache(final Supplier<Auth> supplier)
- throws InterruptedException, ExecutionException, TimeoutException {
- return new Supplier<String>() {
- public String get() {
- return supplier.get().getToken().getId();
- }
- };
- }
-
- @Singleton
- public static class GetAuth extends CacheLoader<Credentials, Auth> {
-
- private final AuthenticationApi client;
-
- @Inject
- public GetAuth(final AuthenticationApi client) {
- this.client = client;
- }
-
- @Override
- public Auth load(Credentials input) {
- return client.authenticate(input.identity, input.credential);
- }
-
- @Override
- public String toString() {
- return "authenticate()";
- }
- }
-
- @Provides
- @Singleton
- protected LoadingCache<Credentials, Auth> provideAuthCache(GetAuth getAuth,
- @Named(PROPERTY_SESSION_INTERVAL) long sessionInterval) {
- return CacheBuilder.newBuilder().expireAfterWrite(sessionInterval, TimeUnit.SECONDS).build(getAuth);
- }
-
- @Provides
- @Singleton
- protected Supplier<Auth> provideAuthSupplier(final LoadingCache<Credentials, Auth> cache,
- @Provider final Supplier<Credentials> creds) {
- return new Supplier<Auth>() {
- @Override
- public Auth get() {
- return cache.getUnchecked(creds.get());
- }
- };
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Auth.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Auth.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Auth.java
deleted file mode 100644
index 04bdba5..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Auth.java
+++ /dev/null
@@ -1,123 +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.rackspace.cloudidentity.v1_1.domain;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.Multimap;
-
-/**
- * Represents an Auth response.
- */
-public class Auth implements Comparable<Auth> {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromAccess(this);
- }
-
- public static class Builder {
- protected Token token;
- protected Multimap<String, Endpoint> serviceCatalog = ImmutableMultimap.of();
-
- /**
- * @see Auth#getToken()
- */
- public Builder token(Token token) {
- this.token = checkNotNull(token, "token");
- return this;
- }
-
- /**
- * @see Auth#getServiceCatalog()
- */
- public Builder serviceCatalog(Multimap<String, Endpoint> serviceCatalog) {
- this.serviceCatalog = ImmutableMultimap.copyOf(checkNotNull(serviceCatalog, "serviceCatalog"));
- return this;
- }
-
- public Auth build() {
- return new Auth(token, serviceCatalog);
- }
-
- public Builder fromAccess(Auth from) {
- return token(from.getToken()).serviceCatalog(from.getServiceCatalog());
- }
- }
-
- protected final Token token;
- protected final Multimap<String, Endpoint> serviceCatalog;
-
- public Auth(Token token, Multimap<String, Endpoint> serviceCatalog) {
- this.token = checkNotNull(token, "token");
- this.serviceCatalog = ImmutableMultimap.copyOf(checkNotNull(serviceCatalog, "serviceCatalog"));
- }
-
- /**
- * TODO
- */
- public Token getToken() {
- return token;
- }
-
- /**
- * TODO
- */
- public Multimap<String, Endpoint> getServiceCatalog() {
- return serviceCatalog;
- }
-
- @Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (object instanceof Auth) {
- final Auth other = Auth.class.cast(object);
- return equal(token, other.token) && equal(serviceCatalog, other.serviceCatalog);
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(token, serviceCatalog);
- }
-
- @Override
- public String toString() {
- return toStringHelper("").add("token", token).add("serviceCatalog", serviceCatalog).toString();
- }
-
- @Override
- public int compareTo(Auth that) {
- if (that == null)
- return 1;
- if (this == that)
- return 0;
- return this.token.compareTo(that.token);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Endpoint.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Endpoint.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Endpoint.java
deleted file mode 100644
index 020ed85..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Endpoint.java
+++ /dev/null
@@ -1,198 +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.rackspace.cloudidentity.v1_1.domain;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-
-/**
- * An network-accessible address, usually described by URL, where a service may
- * be accessed. If using an extension for templates, you can create an endpoint
- * template, which represents the templates of all the consumable services that
- * are available across the regions.
- *
- */
-public class Endpoint implements Comparable<Endpoint> {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromEndpoint(this);
- }
-
- public static class Builder {
-
- protected boolean v1Default;
- protected String region;
- protected URI publicURL;
- protected URI internalURL;
-
- /**
- * @see Endpoint#isV1Default()
- */
- public Builder v1Default(boolean v1Default) {
- this.v1Default = v1Default;
- return this;
- }
-
- /**
- * @see Endpoint#getRegion()
- */
- public Builder region(String region) {
- this.region = checkNotNull(region, "region");
- return this;
- }
-
- /**
- * @see Endpoint#getPublicURL()
- */
- public Builder publicURL(URI publicURL) {
- this.publicURL = checkNotNull(publicURL, "publicURL");
- return this;
- }
-
- /**
- * @see Endpoint#getTenantId()
- */
- public Builder internalURL(@Nullable URI internalURL) {
- this.internalURL = internalURL;
- return this;
- }
-
- public Endpoint build() {
- return new Endpoint(v1Default, region, publicURL, internalURL);
- }
-
- public Builder fromEndpoint(Endpoint from) {
- return v1Default(from.isV1Default()).region(from.getRegion()).publicURL(from.getPublicURL())
- .internalURL(from.getInternalURL());
- }
- }
-
- protected Endpoint() {
- // we want serializers like Gson to work w/o using sun.misc.Unsafe,
- // prohibited in GAE. This also implies fields are not final.
- // see http://code.google.com/p/jclouds/issues/detail?id=925
- }
-
- protected boolean v1Default;
- protected String region;
- protected URI publicURL;
- protected URI internalURL;
-
- protected Endpoint(boolean v1Default, @Nullable String region, @Nullable URI publicURL, @Nullable URI internalURL) {
- this.v1Default = v1Default;
- this.region = region;
- this.publicURL = publicURL;
- this.internalURL = internalURL;
- }
-
- /**
- * The v1Default attribute denotes that an endpoint is being returned in
- * version 1.0 of the Cloud Authentication Service. The default value of
- * v1Default is false; clients should assume the value is false when the
- * attribute is missing. Auth 1.0 does not offer support for regional
- * endpoints and therefore only returns one endpoint per service. Resources
- * stored in endpoints where v1Default is false will not be seen by Auth 1.0
- * clients.
- *
- * @return whether this endpoint is visible to v1.0 clients
- */
- public boolean isV1Default() {
- return v1Default;
- }
-
- /**
- * A service may expose endpoints in different regions. Regional endpoints
- * allow clients to provision resources in a manner that provides high
- * availability. <br/>
- * <h3>Note</h3> Some services are not region-specific. These services supply
- * a single non-regional endpoint and do not provide access to internal URLs.
- *
- * @return the region of the endpoint
- */
- @Nullable
- public String getRegion() {
- return region;
- }
-
- /**
- * A public URL is accessible from anywhere. Access to a public URL usually incurs traffic
- * charges.
- *
- * @return the public endpoint of the service
- */
- @Nullable
- public URI getPublicURL() {
- return publicURL;
- }
-
- /**
- * Internal URLs are only accessible to services within the same region.
- * Access to an internal URL is free of charge.
- *
- * @return the internal url of the endpoint
- */
- @Nullable
- public URI getInternalURL() {
- return internalURL;
- }
-
- @Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (object instanceof Endpoint) {
- final Endpoint other = Endpoint.class.cast(object);
- return equal(v1Default, other.v1Default) && equal(region, other.region) && equal(publicURL, other.publicURL)
- && equal(internalURL, other.internalURL);
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(v1Default, region, publicURL, internalURL);
- }
-
- @Override
- public String toString() {
- return toStringHelper("").add("v1Default", v1Default).add("region", region).add("publicURL", publicURL)
- .add("internalURL", internalURL).toString();
- }
-
- @Override
- public int compareTo(Endpoint that) {
- if (that == null)
- return 1;
- if (this == that)
- return 0;
- return this.publicURL.compareTo(that.publicURL);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Token.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Token.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Token.java
deleted file mode 100644
index 9d9845b..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/domain/Token.java
+++ /dev/null
@@ -1,137 +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.rackspace.cloudidentity.v1_1.domain;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Date;
-
-import com.google.common.base.Objects;
-
-/**
- * Tokens are valid for a finite duration. The expires attribute denotes the
- * time after which the token will automatically become invalid. A token may be
- * manually revoked before the time identified by the expires attribute; expires
- * predicts a token's maximum possible lifespan but does not guarantee that it
- * will reach that lifespan. Clients are encouraged to cache a token until it
- * expires.
- */
-public class Token implements Comparable<Token> {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromToken(this);
- }
-
- public static class Builder {
- protected String id;
- protected Date expires;
-
- /**
- * @see Token#getId()
- */
- public Builder id(String id) {
- this.id = checkNotNull(id, "id");
- return this;
- }
-
- /**
- * @see Token#getExpires()
- */
- public Builder expires(Date expires) {
- this.expires = checkNotNull(expires, "expires");
- return this;
- }
-
- public Token build() {
- return new Token(id, expires);
- }
-
- public Builder fromToken(Token from) {
- return id(from.getId()).expires(from.getExpires());
- }
- }
-
- protected Token() {
- // we want serializers like Gson to work w/o using sun.misc.Unsafe,
- // prohibited in GAE. This also implies fields are not final.
- // see http://code.google.com/p/jclouds/issues/detail?id=925
- }
-
- protected String id;
- protected Date expires;
-
- public Token(String id, Date expires) {
- this.id = checkNotNull(id, "id");
- this.expires = checkNotNull(expires, "expires");
- }
-
- /**
- * When providing an ID, it is assumed that the token exists in the current
- * OpenStack deployment
- *
- * @return the id of the token in the current OpenStack deployment
- */
- public String getId() {
- return id;
- }
-
- /**
- * @return the expires of the token
- */
- public Date getExpires() {
- return expires;
- }
-
- @Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (object instanceof Token) {
- final Token other = Token.class.cast(object);
- return equal(id, other.id) && equal(expires, other.expires);
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(id, expires);
- }
-
- @Override
- public String toString() {
- return toStringHelper("").add("id", id).add("expires", expires).toString();
- }
-
- @Override
- public int compareTo(Token that) {
- if (that == null)
- return 1;
- if (this == that)
- return 0;
- return this.id.compareTo(that.id);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToRegion.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToRegion.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToRegion.java
deleted file mode 100644
index e75a8f5..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToRegion.java
+++ /dev/null
@@ -1,27 +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.rackspace.cloudidentity.v1_1.functions;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-
-import com.google.common.base.Function;
-import com.google.inject.ImplementedBy;
-
-@ImplementedBy(RegionFirstPartOfDNSNameOrProvider.class)
-public interface EndpointToRegion extends Function<Endpoint, String> {
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToSupplierURI.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToSupplierURI.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToSupplierURI.java
deleted file mode 100644
index 12d1d2d..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/EndpointToSupplierURI.java
+++ /dev/null
@@ -1,29 +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.rackspace.cloudidentity.v1_1.functions;
-
-import java.net.URI;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.inject.ImplementedBy;
-
-@ImplementedBy(PublicURLOrInternalIfNull.class)
-public interface EndpointToSupplierURI extends Function<Endpoint, Supplier<URI>> {
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNull.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNull.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNull.java
deleted file mode 100644
index b4cd7a4..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNull.java
+++ /dev/null
@@ -1,39 +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.rackspace.cloudidentity.v1_1.functions;
-
-import java.net.URI;
-
-import javax.inject.Singleton;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-
-@Singleton
-public class PublicURLOrInternalIfNull implements EndpointToSupplierURI {
- // TODO: check accessibility and prioritize private first
- @Override
- public Supplier<URI> apply(Endpoint input) {
- return Suppliers.ofInstance(input.getPublicURL() != null ? input.getPublicURL() : input.getInternalURL());
- }
-
- public String toString() {
- return "supplyPublicURL()";
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProvider.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProvider.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProvider.java
deleted file mode 100644
index d6ed6b0..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProvider.java
+++ /dev/null
@@ -1,47 +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.rackspace.cloudidentity.v1_1.functions;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.location.Provider;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-
-import com.google.common.net.InternetDomainName;
-
-@Singleton
-public class RegionFirstPartOfDNSNameOrProvider implements EndpointToRegion {
- private final String provider;
-
- @Inject
- RegionFirstPartOfDNSNameOrProvider(@Provider String provider) {
- this.provider = provider;
- }
-
- @Override
- public String apply(Endpoint input) {
- if (input.getRegion() != null)
- return input.getRegion();
- String host = input.getPublicURL().getHost();
- if (InternetDomainName.isValid(host)) {
- InternetDomainName domain = InternetDomainName.from(host);
- return domain.parts().get(0);
- }
- return provider;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenew.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenew.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenew.java
deleted file mode 100644
index 5df757a..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenew.java
+++ /dev/null
@@ -1,133 +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.rackspace.cloudidentity.v1_1.handlers;
-
-import static org.jclouds.http.HttpUtils.closeClientButKeepContentStream;
-import static org.jclouds.http.HttpUtils.releasePayload;
-
-import java.util.concurrent.TimeUnit;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.Constants;
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpRetryHandler;
-import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
-import org.jclouds.logging.Logger;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.Uninterruptibles;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
-/**
- * This will parse and set an appropriate exception on the command object.
- */
-@Singleton
-public class RetryOnRenew implements HttpRetryHandler {
- @VisibleForTesting
- @Inject(optional = true)
- @Named(Constants.PROPERTY_MAX_RETRIES)
- static int NUM_RETRIES = 5;
-
- public final String AUTH_USER = "X-Auth-User";
- public final String AUTH_KEY = "X-Auth-Key";
- public final String AUTH_TOKEN = "X-Auth-Token";
-
- @Resource
- protected Logger logger = Logger.NULL;
-
- private final LoadingCache<Credentials, Auth> authenticationResponseCache;
-
- private final BackoffLimitedRetryHandler backoffHandler;
-
- @Inject
- protected RetryOnRenew(LoadingCache<Credentials, Auth> authenticationResponseCache,
- BackoffLimitedRetryHandler backoffHandler) {
- this.authenticationResponseCache = authenticationResponseCache;
- this.backoffHandler = backoffHandler;
- }
-
- /*
- * The reason retries need to be tracked is that it is possible that a token
- * can be expired at any time. The reason we track by request is that only
- * some requests might return a 401 (such as temporary URLs). However
- * consistent failures of the magnitude this code tracks should indicate a
- * problem.
- */
- private static final Cache<HttpCommand, Integer> retryCountMap = CacheBuilder
- .newBuilder().expireAfterWrite(5, TimeUnit.MINUTES).build();
-
- @Override
- public boolean shouldRetryRequest(HttpCommand command, HttpResponse response) {
- boolean retry = false; // default
- try {
- switch (response.getStatusCode()) {
- case 401:
- // Do not retry on 401 from authentication request
- Multimap<String, String> headers = command.getCurrentRequest().getHeaders();
- if (headers != null && headers.containsKey(AUTH_USER)
- && headers.containsKey(AUTH_KEY) && !headers.containsKey(AUTH_TOKEN)) {
- retry = false;
- } else {
- closeClientButKeepContentStream(response);
- // This is not an authentication request returning 401
- // Check if we already had seen this request
- Integer count = retryCountMap.getIfPresent(command);
-
- if (count == null) {
- // First time this non-authentication request failed
- logger.debug("invalidating authentication token - first time for %s", command);
- retryCountMap.put(command, 1);
- authenticationResponseCache.invalidateAll();
- retry = true;
- } else {
- // This request has failed before
- if (count + 1 >= NUM_RETRIES) {
- logger.debug("too many 401s - giving up after: %s for %s", count, command);
- retry = false;
- } else {
- // Retry just in case
- logger.debug("invalidating authentication token - retry %s for %s", count, command);
- retryCountMap.put(command, count + 1);
- // Wait between retries
- authenticationResponseCache.invalidateAll();
- Uninterruptibles.sleepUninterruptibly(5, TimeUnit.SECONDS);
- retry = true;
- }
- }
- }
- break;
- case 408:
- return backoffHandler.shouldRetryRequest(command, response);
- }
- return retry;
-
- } finally {
- releasePayload(response);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplier.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplier.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplier.java
deleted file mode 100644
index 8263883..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplier.java
+++ /dev/null
@@ -1,65 +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.rackspace.cloudidentity.v1_1.suppliers;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.location.suppliers.RegionIdToURISupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-import org.jclouds.rackspace.cloudidentity.v1_1.functions.EndpointToRegion;
-import org.jclouds.rackspace.cloudidentity.v1_1.functions.EndpointToSupplierURI;
-
-import com.google.common.base.Supplier;
-import com.google.common.collect.Maps;
-import com.google.inject.assistedinject.Assisted;
-
-public class RegionIdToURIFromAuthForServiceSupplier implements RegionIdToURISupplier {
-
- private final Supplier<Auth> auth;
- private final EndpointToSupplierURI endpointToSupplierURI;
- private final EndpointToRegion endpointToRegion;
- private final String apiType;
-
- @Inject
- public RegionIdToURIFromAuthForServiceSupplier(Supplier<Auth> auth, EndpointToSupplierURI endpointToSupplierURI,
- EndpointToRegion endpointToRegion, @Assisted("apiType") String apiType,
- @Nullable @Assisted("apiVersion") String apiVersion) {
- this.auth = auth;
- this.endpointToSupplierURI = endpointToSupplierURI;
- this.endpointToRegion = endpointToRegion;
- this.apiType = apiType;
- }
-
- @Override
- public Map<String, Supplier<URI>> get() {
- Auth authResponse = auth.get();
- Collection<Endpoint> endpointsForService = authResponse.getServiceCatalog().get(apiType);
- Map<String, Endpoint> regionIdToEndpoint = Maps.uniqueIndex(endpointsForService, endpointToRegion);
- return Maps.transformValues(regionIdToEndpoint, endpointToSupplierURI);
- }
-
- @Override
- public String toString() {
- return "getPublicURLForService(" + apiType + ")";
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplier.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplier.java b/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplier.java
deleted file mode 100644
index 7e94f8a..0000000
--- a/apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplier.java
+++ /dev/null
@@ -1,83 +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.rackspace.cloudidentity.v1_1.suppliers;
-
-import static com.google.common.collect.Iterables.tryFind;
-
-import java.util.NoSuchElementException;
-
-import javax.inject.Inject;
-
-import org.jclouds.location.suppliers.ImplicitRegionIdSupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-import org.jclouds.rackspace.cloudidentity.v1_1.functions.EndpointToRegion;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.collect.Iterables;
-import com.google.inject.assistedinject.Assisted;
-
-public class V1DefaultRegionIdSupplier implements ImplicitRegionIdSupplier {
-
- public interface Factory {
- /**
- *
- * @param apiType
- * type of the api, according to the provider. ex. {@code compute}
- * {@code object-store}
- * @return region id
- * @throws NoSuchElementException
- * if the {@code apiType} is not present in the catalog
- */
- ImplicitRegionIdSupplier createForApiType(@Assisted("apiType") String apiType) throws NoSuchElementException;
- }
-
- private final Supplier<Auth> auth;
- private final EndpointToRegion endpointToRegion;
- private final String apiType;
-
- @Inject
- public V1DefaultRegionIdSupplier(Supplier<Auth> auth, EndpointToRegion endpointToRegion,
- @Assisted("apiType") String apiType) {
- this.auth = auth;
- this.endpointToRegion = endpointToRegion;
- this.apiType = apiType;
- }
-
- /**
- * returns {@link Endpoint#isV1Default()} or first endpoint for service
- */
- @Override
- public String get() {
- Auth authResponse = auth.get();
- Iterable<Endpoint> endpointsForService = authResponse.getServiceCatalog().get(apiType);
- Optional<Endpoint> defaultEndpoint = tryFind(endpointsForService, new Predicate<Endpoint>() {
- @Override
- public boolean apply(Endpoint in) {
- return in.isV1Default();
- }
- });
- return endpointToRegion.apply(defaultEndpoint.or(Iterables.get(endpointsForService, 0)));
- }
-
- @Override
- public String toString() {
- return "defaultRegionIdFor(" + apiType + ")";
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNullTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNullTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNullTest.java
deleted file mode 100644
index 54bc32a..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/PublicURLOrInternalIfNullTest.java
+++ /dev/null
@@ -1,43 +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.rackspace.cloudidentity.v1_1.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.URI;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "PublicURLOrInternalIfNullTest")
-public class PublicURLOrInternalIfNullTest {
- private final PublicURLOrInternalIfNull fn = new PublicURLOrInternalIfNull();
-
- public void testPublicURLNotNullReturnsPublicURL() {
- assertEquals(fn.apply(
- Endpoint.builder().region("LON").publicURL(
- URI.create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .v1Default(true).build()).get(), URI
- .create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"));
- }
-
- public void testPublicURLNullReturnsInternalURL() {
- assertEquals(fn.apply(Endpoint.builder().internalURL(URI.create("https://192.168.1.1")).v1Default(true).build())
- .get(), URI.create("https://192.168.1.1"));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProviderTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProviderTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProviderTest.java
deleted file mode 100644
index b727cc5..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/functions/RegionFirstPartOfDNSNameOrProviderTest.java
+++ /dev/null
@@ -1,47 +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.rackspace.cloudidentity.v1_1.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.URI;
-
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "RegionFirstPartOfDNSNameOrProviderTest")
-public class RegionFirstPartOfDNSNameOrProviderTest {
- private final RegionFirstPartOfDNSNameOrProvider fn = new RegionFirstPartOfDNSNameOrProvider("keystone");
-
- public void testRegionNotNullReturnsRegion() {
- assertEquals(fn.apply(Endpoint.builder().region("LON").publicURL(
- URI.create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .v1Default(true).build()), "LON");
- }
-
- public void testRegionNullReturnsFirstPartOfHostWhenValid() {
- assertEquals(fn.apply(Endpoint.builder().publicURL(
- URI.create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .v1Default(true).build()), "cdn3");
- }
-
- public void testRegionNullReturnsProvioderWhenHostNotValid() {
- assertEquals(fn.apply(Endpoint.builder().publicURL(URI.create("https://1.1.1.4")).v1Default(true).build()),
- "keystone");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenewTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenewTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenewTest.java
deleted file mode 100644
index 4657a5c..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/handlers/RetryOnRenewTest.java
+++ /dev/null
@@ -1,165 +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.rackspace.cloudidentity.v1_1.handlers;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
-import org.jclouds.io.Payloads;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.testng.annotations.Test;
-
-import com.google.common.cache.LoadingCache;
-
-/**
- * Tests behavior of {@code RetryOnRenew} handler
- */
-@Test(groups = "unit", testName = "RetryOnRenewTest")
-public class RetryOnRenewTest {
- @Test
- public void test401ShouldRetry() {
- HttpCommand command = createMock(HttpCommand.class);
- HttpRequest request = createMock(HttpRequest.class);
- HttpResponse response = createMock(HttpResponse.class);
- @SuppressWarnings("unchecked")
- LoadingCache<Credentials, Auth> cache = createMock(LoadingCache.class);
- BackoffLimitedRetryHandler backoffHandler = createMock(BackoffLimitedRetryHandler.class);
-
- expect(command.getCurrentRequest()).andReturn(request);
-
- cache.invalidateAll();
- expectLastCall();
-
- expect(response.getPayload()).andReturn(Payloads.newStringPayload("token expired, please renew")).anyTimes();
- expect(response.getStatusCode()).andReturn(401).atLeastOnce();
-
- replay(command);
- replay(response);
- replay(cache);
- replay(backoffHandler);
-
- RetryOnRenew retry = new RetryOnRenew(cache, backoffHandler);
-
- assertTrue(retry.shouldRetryRequest(command, response));
-
- verify(command);
- verify(response);
- verify(cache);
- verify(backoffHandler);
- }
-
- @Test
- public void test401ShouldRetry4Times() {
- HttpCommand command = createMock(HttpCommand.class);
- HttpRequest request = createMock(HttpRequest.class);
- HttpResponse response = createMock(HttpResponse.class);
-
- @SuppressWarnings("unchecked")
- LoadingCache<Credentials, Auth> cache = createMock(LoadingCache.class);
- BackoffLimitedRetryHandler backoffHandler = createMock(BackoffLimitedRetryHandler.class);
-
- expect(command.getCurrentRequest()).andReturn(request).anyTimes();
- expect(request.getHeaders()).andStubReturn(null);
-
- cache.invalidateAll();
- expectLastCall().anyTimes();
-
- expect(response.getPayload()).andReturn(Payloads.newStringPayload(""))
- .anyTimes();
- expect(response.getStatusCode()).andReturn(401).anyTimes();
-
- replay(command, request, response, cache);
-
- RetryOnRenew retry = new RetryOnRenew(cache, backoffHandler);
-
- for (int i = 0; i < RetryOnRenew.NUM_RETRIES - 1; ++i) {
- assertTrue(retry.shouldRetryRequest(command, response),
- "Expected retry to succeed");
- }
-
- assertFalse(retry.shouldRetryRequest(command, response),
- "Expected retry to fail on attempt " + RetryOnRenew.NUM_RETRIES);
-
- verify(command, response, cache);
- }
-
- @Test
- public void test408ShouldRetry() {
- HttpCommand command = createMock(HttpCommand.class);
- HttpRequest request = createMock(HttpRequest.class);
- HttpResponse response = createMock(HttpResponse.class);
- @SuppressWarnings("unchecked")
- LoadingCache<Credentials, Auth> cache = createMock(LoadingCache.class);
- BackoffLimitedRetryHandler backoffHandler = createMock(BackoffLimitedRetryHandler.class);
-
- expect(response.getPayload()).andReturn(Payloads.newStringPayload(
- "The server has waited too long for the request to be sent by the client.")).times(2);
- expect(backoffHandler.shouldRetryRequest(command, response)).andReturn(true).once();
- expect(response.getStatusCode()).andReturn(408).once();
-
- replay(command);
- replay(response);
- replay(cache);
- replay(backoffHandler);
-
- RetryOnRenew retry = new RetryOnRenew(cache, backoffHandler);
-
- assertTrue(retry.shouldRetryRequest(command, response));
-
- verify(command);
- verify(response);
- verify(cache);
- verify(backoffHandler);
- }
-
- @Test
- public void test404ShouldNotRetry() {
- HttpCommand command = createMock(HttpCommand.class);
- HttpRequest request = createMock(HttpRequest.class);
- HttpResponse response = createMock(HttpResponse.class);
- @SuppressWarnings("unchecked")
- LoadingCache<Credentials, Auth> cache = createMock(LoadingCache.class);
- BackoffLimitedRetryHandler backoffHandler = createMock(BackoffLimitedRetryHandler.class);
-
- expect(response.getPayload()).andReturn(Payloads.newStringPayload("")).times(2);
- expect(response.getStatusCode()).andReturn(404).once();
-
- replay(command);
- replay(response);
- replay(cache);
- replay(backoffHandler);
-
- RetryOnRenew retry = new RetryOnRenew(cache, backoffHandler);
-
- assertTrue(!retry.shouldRetryRequest(command, response));
-
- verify(command);
- verify(response);
- verify(cache);
- verify(backoffHandler);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/internal/BaseKeystoneRestClientExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/internal/BaseKeystoneRestClientExpectTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/internal/BaseKeystoneRestClientExpectTest.java
deleted file mode 100644
index 51bc63b..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/internal/BaseKeystoneRestClientExpectTest.java
+++ /dev/null
@@ -1,62 +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.rackspace.cloudidentity.v1_1.internal;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.rackspace.cloudidentity.v1_1.config.AuthenticationServiceModule;
-import org.jclouds.rest.internal.BaseRestApiExpectTest;
-
-import com.google.common.net.HttpHeaders;
-
-/**
- * Base class for writing KeyStone Rest Client Expect tests
- */
-public class BaseKeystoneRestClientExpectTest<S> extends BaseRestApiExpectTest<S> {
-
- protected String endpoint = "http://localhost:5000";
-
- public BaseKeystoneRestClientExpectTest() {
- identity = "user@jclouds.org";
- credential = "Password1234";
- }
-
- protected HttpRequest initialAuth = HttpRequest.builder().method("POST")
- .endpoint(endpoint + "/v1.1/auth")
- .addHeader(HttpHeaders.ACCEPT, "application/json")
- .payload(
- payloadFromStringWithContentType(
- "{\"credentials\":{\"username\":\"user@jclouds.org\",\"key\":\"Password1234\"}}",
- "application/json")).build();
-
- protected String authToken = "118fb907-0786-4799-88f0-9a5b7963d1ab";
-
- protected HttpResponse responseWithAuth = HttpResponse.builder().statusCode(200).message("HTTP/1.1 200")
- .payload(payloadFromResourceWithContentType("/auth1_1.json", "application/json")).build();
-
- /**
- * in case you need to override anything
- */
- public static class TestKeystoneAuthenticationModule extends AuthenticationServiceModule {
- @Override
- protected void configure() {
- super.configure();
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/parse/ParseAuthTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/parse/ParseAuthTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/parse/ParseAuthTest.java
deleted file mode 100644
index 7d8518a..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/parse/ParseAuthTest.java
+++ /dev/null
@@ -1,77 +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.rackspace.cloudidentity.v1_1.parse;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.json.BaseItemParserTest;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Endpoint;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Token;
-import org.jclouds.rest.annotations.SelectJson;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMultimap;
-
-@Test(groups = "unit", testName = "ParseAuthTest")
-public class ParseAuthTest extends BaseItemParserTest<Auth> {
-
- @Override
- public String resource() {
- return "/auth1_1.json";
- }
-
- @Override
- @SelectJson("auth")
- @Consumes(MediaType.APPLICATION_JSON)
- public Auth expected() {
- return Auth
- .builder()
- .token(
- Token.builder()
- .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-01-30T02:30:54.000-06:00"))
- .id("118fb907-0786-4799-88f0-9a5b7963d1ab").build())
- .serviceCatalog(
- ImmutableMultimap.of(
- "cloudFilesCDN",
- Endpoint
- .builder()
- .region("LON")
- .publicURL(
- URI.create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .v1Default(true).build(),
- "cloudFiles",
- Endpoint
- .builder()
- .region("LON")
- .publicURL(
- URI.create("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .v1Default(true)
- .internalURL(
- URI.create("https://snet-storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"))
- .build(),
- "cloudServers",
- Endpoint.builder()
- .publicURL(URI.create("https://lon.servers.api.rackspacecloud.com/v1.0/10001786"))
- .v1Default(true).build())).build();
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplierTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplierTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplierTest.java
deleted file mode 100644
index befb533..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/RegionIdToURIFromAuthForServiceSupplierTest.java
+++ /dev/null
@@ -1,69 +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.rackspace.cloudidentity.v1_1.suppliers;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.URI;
-
-import javax.inject.Singleton;
-
-import org.jclouds.location.Provider;
-import org.jclouds.location.suppliers.RegionIdToURISupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.parse.ParseAuthTest;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Provides;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
-
-@Test(groups = "unit", testName = "RegionIdToURIFromAuthForServiceSupplierTest")
-public class RegionIdToURIFromAuthForServiceSupplierTest {
- private final RegionIdToURISupplier.Factory factory = Guice.createInjector(new AbstractModule() {
-
- @Override
- protected void configure() {
- bindConstant().annotatedWith(Provider.class).to("keystone");
- install(new FactoryModuleBuilder().implement(RegionIdToURISupplier.class,
- RegionIdToURIFromAuthForServiceSupplier.class).build(RegionIdToURISupplier.Factory.class));
- }
-
- @Provides
- @Singleton
- public Supplier<Auth> provide() {
- return Suppliers.ofInstance(new ParseAuthTest().expected());
- }
- }).getInstance(RegionIdToURISupplier.Factory.class);
-
- public void testRegionMatches() {
- assertEquals(Maps.transformValues(factory.createForApiTypeAndVersion("cloudFilesCDN", "1.0").get(), Suppliers
- .<URI> supplierFunction()), ImmutableMap.of("LON", URI
- .create("https://cdn3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953")));
- }
-
- public void testTakesFirstPartOfDNSWhenNoRegion() {
- assertEquals(Maps.transformValues(factory.createForApiTypeAndVersion("cloudServers", "1.1").get(), Suppliers
- .<URI> supplierFunction()), ImmutableMap.of("lon", URI
- .create("https://lon.servers.api.rackspacecloud.com/v1.0/10001786")));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplierTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplierTest.java b/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplierTest.java
deleted file mode 100644
index af0030b..0000000
--- a/apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v1_1/suppliers/V1DefaultRegionIdSupplierTest.java
+++ /dev/null
@@ -1,61 +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.rackspace.cloudidentity.v1_1.suppliers;
-
-import static org.testng.Assert.assertEquals;
-
-import javax.inject.Singleton;
-
-import org.jclouds.location.Provider;
-import org.jclouds.location.suppliers.ImplicitRegionIdSupplier;
-import org.jclouds.rackspace.cloudidentity.v1_1.domain.Auth;
-import org.jclouds.rackspace.cloudidentity.v1_1.parse.ParseAuthTest;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Provides;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
-
-@Test(groups = "unit", testName = "V1DefaultRegionIdSupplierTest")
-public class V1DefaultRegionIdSupplierTest {
- private final V1DefaultRegionIdSupplier.Factory factory = Guice.createInjector(new AbstractModule() {
-
- @Override
- protected void configure() {
- bindConstant().annotatedWith(Provider.class).to("keystone");
- install(new FactoryModuleBuilder().implement(ImplicitRegionIdSupplier.class, V1DefaultRegionIdSupplier.class)
- .build(V1DefaultRegionIdSupplier.Factory.class));
- }
-
- @Provides
- @Singleton
- public Supplier<Auth> provide() {
- return Suppliers.ofInstance(new ParseAuthTest().expected());
- }
- }).getInstance(V1DefaultRegionIdSupplier.Factory.class);
-
- public void testRegionMatches() {
- assertEquals(factory.createForApiType("cloudFilesCDN").get(), "LON");
- }
-
- public void testTakesFirstPartOfDNSWhenNoRegion() {
- assertEquals(factory.createForApiType("cloudServers").get(), "lon");
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/dd743e58/apis/rackspace-cloudidentity/src/test/resources/auth1_1.json
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudidentity/src/test/resources/auth1_1.json b/apis/rackspace-cloudidentity/src/test/resources/auth1_1.json
deleted file mode 100644
index 545adbd..0000000
--- a/apis/rackspace-cloudidentity/src/test/resources/auth1_1.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "auth": {
- "token": {
- "id": "118fb907-0786-4799-88f0-9a5b7963d1ab",
- "expires": "2012-01-30T02:30:54.000-06:00"
- },
- "serviceCatalog": {
- "cloudFilesCDN": [{
- "region": "LON",
- "publicURL": "https:\/\/cdn3.clouddrive.com\/v1\/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953",
- "v1Default": true
- }],
- "cloudFiles": [{
- "region": "LON",
- "publicURL": "https:\/\/storage101.lon3.clouddrive.com\/v1\/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953",
- "v1Default": true,
- "internalURL": "https:\/\/snet-storage101.lon3.clouddrive.com\/v1\/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953"
- }],
- "cloudServers": [{
- "publicURL": "https:\/\/lon.servers.api.rackspacecloud.com\/v1.0\/10001786",
- "v1Default": true
- }]
- }
- }
-}