You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2017/12/19 14:07:16 UTC

[3/3] jclouds git commit: some minor fixes to keystone

some minor fixes to keystone


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

Branch: refs/heads/keystonev3
Commit: 05b9195b76e6ecf73ad3d3a1d6647e5b76011f24
Parents: f4250d1
Author: Andrea Turli <an...@gmail.com>
Authored: Tue Dec 19 15:04:10 2017 +0100
Committer: Andrea Turli <an...@gmail.com>
Committed: Tue Dec 19 15:04:10 2017 +0100

----------------------------------------------------------------------
 .../openstack/keystone/v3/domain/Auth.java      |  2 +-
 .../keystone/v3/features/TokenApi.java          | 11 +++-
 .../v3/auth/V3AuthenticationApiLiveTest.java    | 68 ++++++++++++++++++++
 .../keystone/v3/features/TokenApiLiveTest.java  | 15 ++---
 .../keystone/v3/features/TokenApiMockTest.java  |  2 +-
 .../v3/internal/BaseV3KeystoneApiLiveTest.java  | 12 +++-
 .../v3/internal/BaseV3KeystoneApiMockTest.java  |  2 +-
 .../src/test/resources/logback-test.xml         | 42 ------------
 .../src/test/resources/logback.xml              | 42 ++++++++++++
 9 files changed, 138 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/domain/Auth.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/domain/Auth.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/domain/Auth.java
index fb2caf5..e716d35 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/domain/Auth.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/domain/Auth.java
@@ -38,7 +38,7 @@ public abstract class Auth {
       
       public abstract List<String> methods();
       @Nullable public abstract TokenAuth token();
-      public abstract PasswordAuth password();
+      @Nullable public abstract PasswordAuth password();
 
       @SerializedNames({ "methods", "token", "password" })
       public static Identity create(List<String> methods, TokenAuth token, PasswordAuth password) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/TokenApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/TokenApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/TokenApi.java
index 75ade88..34d9b42 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/TokenApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/TokenApi.java
@@ -20,7 +20,11 @@ import java.util.List;
 import java.util.Set;
 
 import javax.inject.Named;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.HEAD;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
@@ -80,9 +84,10 @@ public interface TokenApi {
     *
     * @return true if the token is valid
     */
-   @Named("token:valid")
+   @Named("token:check")
    @HEAD
-   @Path("/auth/tokens/{token}")
+   @Path("/auth/tokens")
+   @Headers( keys = "X-Subject-Token", values = "{token}")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean isValid(@PathParam("token") String token);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
new file mode 100644
index 0000000..55b4216
--- /dev/null
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.openstack.keystone.v3.auth;
+
+import static org.testng.Assert.assertNotNull;
+
+import org.jclouds.openstack.keystone.auth.AuthenticationApi;
+import org.jclouds.openstack.keystone.auth.domain.PasswordCredentials;
+import org.jclouds.openstack.keystone.auth.domain.TenantAndCredentials;
+import org.jclouds.openstack.keystone.auth.domain.TokenCredentials;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.v3.KeystoneApi;
+import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiLiveTest;
+import org.jclouds.rest.ApiContext;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
+import com.google.common.reflect.TypeToken;
+
+@Test(groups = "live", testName = "V3AuthenticationApiLiveTest")
+public class V3AuthenticationApiLiveTest extends BaseV3KeystoneApiLiveTest {
+
+   private String tenant;
+   private String user;
+   private ApiContext<KeystoneApi> context;
+
+   @BeforeClass
+   public void parseCredentials() {
+      tenant = Iterables.get(Splitter.on(":").split(identity), 0);
+      user = Iterables.get(Splitter.on(":").split(identity), 1);
+      context = newBuilder().modules(setupModules()).overrides(setupProperties())
+            .build(new TypeToken<ApiContext<KeystoneApi>>() {
+            });
+
+      grabToken(context.utils().injector().getInstance(AuthenticateRequest.class));
+   }
+
+   public void testAuthenticatePassword() {
+      assertNotNull(api().authenticatePassword(TenantAndCredentials.<PasswordCredentials> builder().tenantName(tenant)
+            .credentials(PasswordCredentials.builder().username(user).password(credential).build()).build()));
+   }
+
+   public void testAuthenticateToken() {
+      assertNotNull(api().authenticateToken(TenantAndCredentials.<TokenCredentials> builder().tenantName(tenant)
+            .credentials(TokenCredentials.builder().id(token).build()).build()));
+   }
+
+   protected AuthenticationApi api() {
+      return context.utils().injector().getInstance(AuthenticationApi.class);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiLiveTest.java
index 8799efa..79e9647 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiLiveTest.java
@@ -16,10 +16,8 @@
  */
 package org.jclouds.openstack.keystone.v3.features;
 
-import com.google.common.collect.Iterables;
 import com.google.inject.Injector;
 import com.google.inject.Module;
-import org.jclouds.http.HttpRequest;
 import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiLiveTest;
@@ -27,11 +25,12 @@ import org.testng.annotations.Test;
 
 import java.util.Properties;
 
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
 @Test(groups = "live", testName = "TokenApiLiveTest")
 public class TokenApiLiveTest extends BaseV3KeystoneApiLiveTest {
 
-   protected String token;
-
    @Override
    protected KeystoneApi create(Properties props, Iterable<Module> modules) {
       Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
@@ -39,14 +38,12 @@ public class TokenApiLiveTest extends BaseV3KeystoneApiLiveTest {
       return injector.getInstance(KeystoneApi.class);
    }
 
-   // Get the token currently in use
-   private void grabToken(AuthenticateRequest ar) {
-      HttpRequest test = ar.filter(HttpRequest.builder().method("GET").endpoint(endpoint).build());
-      token = Iterables.getOnlyElement(test.getHeaders().get("X-Auth-Token"));
+   public void testIsTokenValid() {
+      assertTrue(api().isValid(token));
    }
 
    public void testGetToken() {
-      System.out.println(api().get(token));
+      assertNotNull(api().get(token));
    }
 
    private TokenApi api() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
index ff64eb3..118b2fd 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
@@ -54,7 +54,7 @@ public class TokenApiMockTest extends BaseV3KeystoneApiMockTest {
    }
    
    private Token tokenFromResource(String resource) {
-      return onlyObjectFromResource(resource, new TypeToken<Map<String, Token>>() {
+      return onlyObjectFromResource(resource, new TypeToken<Token>() {
          private static final long serialVersionUID = 1L;
       });
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
index acde256..ac917a7 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
@@ -18,12 +18,17 @@ package org.jclouds.openstack.keystone.v3.internal;
 
 import java.util.Properties;
 
+import com.google.common.collect.Iterables;
 import org.jclouds.apis.BaseApiLiveTest;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.openstack.keystone.v3.KeystoneApi;
 
 public class BaseV3KeystoneApiLiveTest extends BaseApiLiveTest<KeystoneApi> {
 
+   protected String token;
+
    public BaseV3KeystoneApiLiveTest() {
       provider = "openstack-keystone-3";
    }
@@ -31,9 +36,14 @@ public class BaseV3KeystoneApiLiveTest extends BaseApiLiveTest<KeystoneApi> {
    @Override
    protected Properties setupProperties() {
       Properties props = super.setupProperties();
-      props.setProperty("jclouds.api-version", "v3");
       setIfTestSystemPropertyPresent(props, KeystoneProperties.CREDENTIAL_TYPE);
       return props;
    }
 
+   // Get the token currently in use
+   protected void grabToken(AuthenticateRequest ar) {
+      HttpRequest test = ar.filter(HttpRequest.builder().method("GET").endpoint(endpoint).build());
+      token = Iterables.getOnlyElement(test.getHeaders().get("X-Auth-Token"));
+   }
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
index 1d134e0..1d87cf8 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
@@ -108,7 +108,7 @@ public class BaseV3KeystoneApiMockTest {
       }
    }
    
-   protected <T> T onlyObjectFromResource(String resourceName, TypeToken<Map<String, T>> type) {
+   protected <T> T onlyObjectFromResource(String resourceName, TypeToken<T> type) {
       // Assume JSON objects passed here will be in the form: { "entity": { ... } }
       String text = stringFromResource(resourceName);
       Map<String, T> object = json.fromJson(text, type.getType());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/logback-test.xml b/apis/openstack-keystone/src/test/resources/logback-test.xml
deleted file mode 100644
index 4cac342..0000000
--- a/apis/openstack-keystone/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<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="COMPUTEFILE" class="ch.qos.logback.core.FileAppender">
-        <file>target/jclouds-compute.log</file>
-        <encoder>
-            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
-        </encoder>
-    </appender>
-
-    <logger name="org.jclouds">
-        <level value="DEBUG" />
-        <appender-ref ref="FILE" />
-    </logger>
-    <logger name="jclouds.compute">
-        <level value="DEBUG" />
-        <appender-ref ref="COMPUTEFILE" />
-    </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>
-    
-    <root>
-        <level value="INFO" />
-    </root>
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/05b9195b/apis/openstack-keystone/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/logback.xml b/apis/openstack-keystone/src/test/resources/logback.xml
new file mode 100644
index 0000000..4cf5016
--- /dev/null
+++ b/apis/openstack-keystone/src/test/resources/logback.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<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="COMPUTEFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/jclouds-compute.log</file>
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <logger name="org.jclouds">
+        <level value="DEBUG" />
+        <appender-ref ref="FILE" />
+    </logger>
+    <logger name="jclouds.compute">
+        <level value="DEBUG" />
+        <appender-ref ref="COMPUTEFILE" />
+    </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>
+
+    <root>
+        <level value="INFO" />
+    </root>
+</configuration>
\ No newline at end of file