Juan Hernandez has uploaded a new change for review.

Change subject: [WIP] Add internal directory provider
......................................................................

[WIP] Add internal directory provider

This change adds an implementation of the internal directory provider
based on the new directory interface introduced previously. It works
like the previous internal domain, with only one "admin" user.

Change-Id: I7f4e7db1b42ded74f611a9453b3db229c6d069d1
Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectory.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectoryProvider.java
A 
backend/manager/modules/bll/src/main/resources/META-INF/services/org.ovirt.engine.core.bll.directory.DirectorySpi
3 files changed, 97 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/15601/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectory.java
new file mode 100644
index 0000000..ef14049
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectory.java
@@ -0,0 +1,70 @@
+package org.ovirt.engine.core.bll.directory.internal;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
+import org.ovirt.engine.core.common.users.Directory;
+import org.ovirt.engine.core.common.users.DirectoryGroup;
+import org.ovirt.engine.core.common.users.DirectoryUser;
+import org.ovirt.engine.core.compat.Guid;
+
+public class InternalDirectory implements Directory {
+    // This is the only user of this directory:
+    private final DirectoryUser admin = new DirectoryUser(
+       this,
+       Guid.createGuidFromString("fdfc627c-d875-11e0-90f0-83df133b58cc"),
+       Config.<String> GetValue(ConfigValues.AdminUser)
+    );
+
+    @Override
+    public String getName() {
+        return Config.<String> GetValue(ConfigValues.AdminDomain);
+    }
+
+    @Override
+    public DirectoryUser findUserById(Guid id) {
+        if (admin.getId().equals(id)) {
+            return admin;
+        }
+        return null;
+    }
+
+    @Override
+    public DirectoryUser findUserByName(String name) {
+        if (admin.getName().equals(name)) {
+            return admin;
+        }
+        return null;
+    }
+
+    @Override
+    public Set<DirectoryUser> findUsersById(Set<Guid> ids) {
+        Set<DirectoryUser> result = new HashSet<>(ids.size());
+        for (Guid id : ids) {
+            if (admin.equals(id)) {
+                result.add(admin);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public DirectoryGroup findGroupById(Guid id) {
+        return null;
+    }
+
+    @Override
+    public Set<DirectoryUser> findUsersByQuery(String query) {
+        // This directory doesn't support queries, so we just return all the
+        // users regardless of what is the query:
+        return Collections.singleton(admin);
+    }
+
+    @Override
+    public Set<DirectoryGroup> findGroupsByQuery(String query) {
+        return Collections.emptySet();
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectoryProvider.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectoryProvider.java
new file mode 100644
index 0000000..ccc9eff
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/directory/internal/InternalDirectoryProvider.java
@@ -0,0 +1,26 @@
+package org.ovirt.engine.core.bll.directory.internal;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.ovirt.engine.core.bll.directory.DirectorySpi;
+import org.ovirt.engine.core.common.users.Directory;
+
+public class InternalDirectoryProvider implements DirectorySpi {
+    // The list of directories managed by this implementation (will be lazily
+    // initialized later:
+    private volatile List<Directory> directories;
+
+    @Override
+    public List<Directory> getDirectories() {
+        if (directories == null) {
+            synchronized (InternalDirectoryProvider.class) {
+                if (directories == null) {
+                    Directory directory = new InternalDirectory();
+                    directories = Collections.singletonList(directory);
+                }
+            }
+        }
+        return directories;
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/resources/META-INF/services/org.ovirt.engine.core.bll.directory.DirectorySpi
 
b/backend/manager/modules/bll/src/main/resources/META-INF/services/org.ovirt.engine.core.bll.directory.DirectorySpi
new file mode 100644
index 0000000..602ccf3
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/resources/META-INF/services/org.ovirt.engine.core.bll.directory.DirectorySpi
@@ -0,0 +1 @@
+org.ovirt.engine.core.bll.directory.internal.InternalDirectoryProvider


-- 
To view, visit http://gerrit.ovirt.org/15601
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7f4e7db1b42ded74f611a9453b3db229c6d069d1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to