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); + } } }
