You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/10 15:47:15 UTC

jclouds git commit: Allow the Domain id as a scope

Repository: jclouds
Updated Branches:
  refs/heads/keystonev3 83bc9b629 -> 67e20a288


Allow the Domain id as a scope


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

Branch: refs/heads/keystonev3
Commit: 67e20a2880f04ea7384244c385e9eec3c7c31f78
Parents: 83bc9b6
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Jan 10 16:47:07 2018 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Jan 10 16:47:07 2018 +0100

----------------------------------------------------------------------
 .../keystone/v3/binders/BindAuthToJsonPayload.java   | 15 +++++++++++----
 .../jclouds/openstack/keystone/v3/domain/Auth.java   | 11 +++++++++++
 2 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/67e20a28/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/binders/BindAuthToJsonPayload.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/binders/BindAuthToJsonPayload.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/binders/BindAuthToJsonPayload.java
index 9ecbad7..c706877 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/binders/BindAuthToJsonPayload.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/binders/BindAuthToJsonPayload.java
@@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Predicates.instanceOf;
 import static com.google.common.collect.Iterables.tryFind;
 import static org.jclouds.openstack.keystone.v3.domain.Auth.Scope.DOMAIN;
+import static org.jclouds.openstack.keystone.v3.domain.Auth.Scope.DOMAIN_ID;
 import static org.jclouds.openstack.keystone.v3.domain.Auth.Scope.PROJECT;
 
 import java.util.Map;
@@ -30,6 +31,7 @@ import org.jclouds.json.Json;
 import org.jclouds.openstack.keystone.auth.domain.TenantOrDomainAndCredentials;
 import org.jclouds.openstack.keystone.v3.domain.Auth;
 import org.jclouds.openstack.keystone.v3.domain.Auth.Domain;
+import org.jclouds.openstack.keystone.v3.domain.Auth.DomainIdScope;
 import org.jclouds.openstack.keystone.v3.domain.Auth.DomainScope;
 import org.jclouds.openstack.keystone.v3.domain.Auth.Id;
 import org.jclouds.openstack.keystone.v3.domain.Auth.ProjectScope;
@@ -85,10 +87,15 @@ public abstract class BindAuthToJsonPayload<T> extends BindToJsonPayload impleme
       // Otherwise, parse if it is a project or domain scope
       String[] parts = scope.split(":");
       checkArgument(parts.length == 2, "Invalid scope: %s", scope);
-      checkArgument(PROJECT.equals(parts[0]) || DOMAIN.equals(parts[0]), "Scope prefix should be '%s' or '%s'",
-            PROJECT, DOMAIN);
-      return PROJECT.equals(parts[0]) ? ProjectScope.create(Id.create(parts[1])) : DomainScope.create(Domain
-            .create(parts[1]));
+      checkArgument(PROJECT.equals(parts[0]) || DOMAIN.equals(parts[0]) || DOMAIN_ID.equals(parts[0]),
+            "Scope prefix should be '%s', '%s' or '%s'", PROJECT, DOMAIN, DOMAIN_ID);
+      if (PROJECT.equals(parts[0])) {
+         return ProjectScope.create(Id.create(parts[1]));
+      } else if (DOMAIN.equals(parts[0])) {
+         return DomainScope.create(Domain.create(parts[1]));
+      } else {
+         return DomainIdScope.create(Id.create(parts[1]));
+      }
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/67e20a28/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 9f2be4c..01d5d60 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
@@ -100,6 +100,7 @@ public abstract class Auth {
    public static class Scope {
       public static final String PROJECT = "project";
       public static final String DOMAIN = "domain";
+      public static final String DOMAIN_ID = "domain";
       public static final String UNSCOPED = "unscoped";
    }
 
@@ -114,6 +115,16 @@ public abstract class Auth {
    }
    
    @AutoValue
+   public abstract static class DomainIdScope {
+      public abstract Id domain();
+
+      @SerializedNames({ Scope.PROJECT })
+      public static DomainIdScope create(Id id) {
+         return new AutoValue_Auth_DomainIdScope(id);
+      }
+   }
+   
+   @AutoValue
    public abstract static class DomainScope {
       public abstract Domain domain();