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/11 15:41:23 UTC
[40/50] [abbrv] jclouds git commit: Allow the Domain id as a scope
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/f565dd7d
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f565dd7d
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f565dd7d
Branch: refs/heads/keystonev3
Commit: f565dd7d83ec2e00f4548cd09e8caa6bf801b656
Parents: 851aae7
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Jan 10 16:47:07 2018 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Jan 11 16:21:31 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/f565dd7d/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/f565dd7d/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();