Repository: jclouds
Updated Branches:
  refs/heads/keystonev3 9c4f4eedc -> c41b6f7c3


Properly scope a project name to the domain


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

Branch: refs/heads/keystonev3
Commit: c41b6f7c38d4fd720341002eb022f1718ba8f3b4
Parents: 9c4f4ee
Author: Ignasi Barrera <[email protected]>
Authored: Thu Jan 11 17:52:04 2018 +0100
Committer: Ignasi Barrera <[email protected]>
Committed: Thu Jan 11 17:52:04 2018 +0100

----------------------------------------------------------------------
 .../v3/binders/BindAuthToJsonPayload.java       | 11 +++----
 .../openstack/keystone/v3/domain/Auth.java      | 33 +++++++++++++-------
 2 files changed, 25 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/c41b6f7c/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 928aac6..a27ae12 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
@@ -39,6 +39,7 @@ import org.jclouds.openstack.keystone.v3.domain.Auth.Id;
 import org.jclouds.openstack.keystone.v3.domain.Auth.Name;
 import org.jclouds.openstack.keystone.v3.domain.Auth.ProjectIdScope;
 import org.jclouds.openstack.keystone.v3.domain.Auth.ProjectScope;
+import org.jclouds.openstack.keystone.v3.domain.Auth.ProjectScope.ProjectName;
 import org.jclouds.rest.MapBinder;
 import org.jclouds.rest.binders.BindToJsonPayload;
 import org.jclouds.rest.internal.GeneratedHttpRequest;
@@ -92,13 +93,9 @@ public abstract class BindAuthToJsonPayload<T> extends 
BindToJsonPayload impleme
       checkArgument(SCOPE_PREFIXES.contains(parts[0]), "Scope prefix should 
be: %s", SCOPE_PREFIXES);
 
       if (PROJECT.equals(parts[0])) {
-         if (credentials.tenantOrDomainId() != null) {
-            return ProjectScope.create(Name.create(parts[1]),
-                  
DomainIdScope.create(Id.create(credentials.tenantOrDomainId())));
-         } else {
-            return ProjectScope.create(Name.create(parts[1]),
-                  
DomainScope.create(Name.create(credentials.tenantOrDomainName())));
-         }
+         Object domainScope = credentials.tenantOrDomainId() != null ? 
Id.create(credentials.tenantOrDomainId()) : Name
+               .create(credentials.tenantOrDomainName());
+         return ProjectScope.create(ProjectName.create(parts[1], domainScope));
       } else if (PROJECT_ID.equals(parts[0])) {
          return ProjectIdScope.create(Id.create(parts[1]));
       } else if (DOMAIN.equals(parts[0])) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c41b6f7c/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 97283ba..58c9ee6 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
@@ -107,21 +107,30 @@ public abstract class Auth {
 
    @AutoValue
    public abstract static class ProjectScope {
-      public abstract Name project();
-      @Nullable public abstract DomainScope domainName();
-      @Nullable public abstract DomainIdScope domainId();
+      public abstract ProjectName project();
       
-      @SerializedNames({ Scope.PROJECT, Scope.DOMAIN, Scope.DOMAIN })
-      static ProjectScope create(Name name, DomainScope domainName, 
DomainIdScope domainId) {
-         return new AutoValue_Auth_ProjectScope(name, domainName, domainId);
-      }
-
-      public static ProjectScope create(Name name, DomainScope domain) {
-         return new AutoValue_Auth_ProjectScope(name, domain, null);
+      @SerializedNames({ Scope.PROJECT })
+      public static ProjectScope create(ProjectName project) {
+         return new AutoValue_Auth_ProjectScope(project);
       }
+      
+      @AutoValue
+      public abstract static class ProjectName {
+         public abstract String name();
+         @Nullable public abstract Object domain();
+         
+         @SerializedNames({ "name", Scope.DOMAIN })
+         public static ProjectName create(String name, Object domain) {
+            return new AutoValue_Auth_ProjectScope_ProjectName(name, domain);
+         }
+         
+         public static ProjectName create(String name, Name domain) {
+            return new AutoValue_Auth_ProjectScope_ProjectName(name, domain);
+         }
 
-      public static ProjectScope create(Name name, DomainIdScope domain) {
-         return new AutoValue_Auth_ProjectScope(name, null, domain);
+         public static ProjectName create(String name, Id domain) {
+            return new AutoValue_Auth_ProjectScope_ProjectName(name, domain);
+         }
       }
    }
    

Reply via email to