Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: Intrdoucing of ExtensionException
......................................................................

aaa: Intrdoucing of ExtensionException

The following patch introduces the Exception class to be thrown from 
extensions, and
the error enum representing the type of error.
Changes to Directory and Authenticator method signatures were applied where 
needed.

Topic: AAA
Change-Id: Ie5cb41bf103c6345e501a81cbe247dc53051d0db
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java
M 
backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java
M 
backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java
M 
backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java
A 
backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java
7 files changed, 71 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/25507/1

diff --git 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java
 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java
index 6ed8a36..c31c624 100644
--- 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java
+++ 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java
@@ -6,6 +6,7 @@
 
 import org.ovirt.engine.core.common.utils.ExternalId;
 import org.ovirt.engine.core.extensions.mgr.Extension;
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
 
 /**
  * A directory is an object that manages a collection of users and groups, 
usually stored in an external system like an
@@ -33,7 +34,7 @@
      * @param name the name of the user
      * @return the user corresponding to the given name or {@code null} if no 
such user can be found
      */
-    public abstract DirectoryUser findUser(String name);
+    public abstract DirectoryUser findUser(String name) throws 
ExtensionException;
 
     /**
      * Retrieves a user from the directory given its identifier.
@@ -41,7 +42,7 @@
      * @param id the identifier of the user
      * @return the user corresponding to the given identifier or {@code null} 
if no such user can be found
      */
-    public abstract DirectoryUser findUser(ExternalId id);
+    public abstract DirectoryUser findUser(ExternalId id) throws 
ExtensionException;
 
     /**
      * Retrieves a list of users from the directory given their identifiers.
@@ -50,7 +51,7 @@
      * @return a list containing at most on user for each identifier in the 
given set with no particular order, note
      *     that the returned list may contain less elements than the given 
list of identifiers
      */
-    public abstract List<DirectoryUser> findUsers(List<ExternalId> ids);
+    public abstract List<DirectoryUser> findUsers(List<ExternalId> ids) throws 
ExtensionException;
 
     /**
      * Retrieves a group from the directory given its name.
@@ -58,7 +59,7 @@
      * @param name the name of the group
      * @return the group corresponding to the given name or {@code null} if no 
such group can be found
      */
-    public abstract DirectoryGroup findGroup(String name);
+    public abstract DirectoryGroup findGroup(String name) throws 
ExtensionException;
 
     /**
      * Retrieves a group from the directory given its identifier.
@@ -66,7 +67,7 @@
      * @param id the identifier of the group
      * @return the group corresponding to the given identifier or {@code null} 
if no such group can be found
      */
-    public abstract DirectoryGroup findGroup(ExternalId id);
+    public abstract DirectoryGroup findGroup(ExternalId id) throws 
ExtensionException;
 
     /**
      * Search the directory looking for users that match the given search 
query. Note that the query uses the LDAP query
@@ -76,7 +77,7 @@
      * @param query the LDAP query
      * @return a list containing the users that match the given query
      */
-    public abstract List<DirectoryUser> queryUsers(String query);
+    public abstract List<DirectoryUser> queryUsers(String query) throws 
ExtensionException;
 
     /**
      * Search the directory looking for groups that match the given search 
query. Note that the query uses the LDAP
@@ -86,7 +87,7 @@
      * @param query the LDAP query
      * @return a list containing the groups that match the given query
      */
-    public abstract List<DirectoryGroup> queryGroups(String query);
+    public abstract List<DirectoryGroup> queryGroups(String query) throws 
ExtensionException;
 
     @Override
     public void setContext(Map<ExtensionProperties, Object> context) {
diff --git 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java
 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java
index 73a0203..e95aba2 100644
--- 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java
+++ 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.core.aaa;
 
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
+
 /**
  * A password authenticator checks a user name and a password. Returns an 
AuthenticationResult object representing the
  * result of the authenticate call.
@@ -17,5 +19,5 @@
      * @param password
      * @return AuthenticationResult object that holds the authentication result
      */
-    public abstract AuthenticationResult authenticate(String name, String 
password);
+    public abstract AuthenticationResult authenticate(String name, String 
password) throws ExtensionException;
 }
diff --git 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java
 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java
index dcf9ceb..82c96a7 100644
--- 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java
+++ 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java
@@ -2,6 +2,7 @@
 
 import org.ovirt.engine.core.aaa.AuthenticationResult;
 import org.ovirt.engine.core.aaa.PasswordAuthenticator;
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -15,7 +16,7 @@
     }
 
     @Override
-    public AuthenticationResult authenticate(String name, String password) {
+    public AuthenticationResult authenticate(String name, String password) 
throws ExtensionException {
         return new NopAuthenticationResult();
     }
 
diff --git 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java
 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java
index 4ade609..762252a 100644
--- 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java
+++ 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.core.aaa.DirectoryGroup;
 import org.ovirt.engine.core.aaa.DirectoryUser;
 import org.ovirt.engine.core.common.utils.ExternalId;
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
 
 public class NopDirectory extends Directory {
     /**
@@ -20,7 +21,7 @@
      * {@inheritDoc}
      */
     @Override
-    public DirectoryUser findUser(String name) {
+    public DirectoryUser findUser(String name) throws ExtensionException {
         ExternalId id = null;
         try {
             id = new ExternalId(name.getBytes("UTF-8"));
@@ -34,7 +35,7 @@
      * {@inheritDoc}
      */
     @Override
-    public DirectoryUser findUser(ExternalId id) {
+    public DirectoryUser findUser(ExternalId id) throws ExtensionException {
         String name = null;
         try {
             name = new String(id.getBytes(), "UTF-8");
@@ -48,7 +49,7 @@
      * {@inheritDoc}
      */
     @Override
-    public List<DirectoryUser> findUsers(List<ExternalId> ids) {
+    public List<DirectoryUser> findUsers(List<ExternalId> ids) throws 
ExtensionException {
         List<DirectoryUser> users = new ArrayList<>(ids.size());
         for (ExternalId id : ids) {
             DirectoryUser user = findUser(id);
@@ -63,7 +64,7 @@
      * {@inheritDoc}
      */
     @Override
-    public DirectoryGroup findGroup(String name) {
+    public DirectoryGroup findGroup(String name) throws ExtensionException {
         return null;
     }
 
@@ -71,7 +72,7 @@
      * {@inheritDoc}
      */
     @Override
-    public DirectoryGroup findGroup(ExternalId id) {
+    public DirectoryGroup findGroup(ExternalId id) throws ExtensionException {
         return null;
     }
 
@@ -79,7 +80,7 @@
      * {@inheritDoc}
      */
     @Override
-    public List<DirectoryUser> queryUsers(String query) {
+    public List<DirectoryUser> queryUsers(String query) throws 
ExtensionException {
         return Collections.emptyList();
     }
 
@@ -87,7 +88,7 @@
      * {@inheritDoc}
      */
     @Override
-    public List<DirectoryGroup> queryGroups(String query) {
+    public List<DirectoryGroup> queryGroups(String query) throws 
ExtensionException {
         return Collections.emptyList();
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java
index c7a4ef7..f930f5a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java
@@ -8,6 +8,7 @@
 import org.ovirt.engine.core.bll.adbroker.LdapReturnValueBase;
 import org.ovirt.engine.core.bll.adbroker.LdapUserPasswordBaseParameters;
 import org.ovirt.engine.core.bll.adbroker.UserAuthenticationResult;
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
 import org.ovirt.engine.core.extensions.mgr.Extension.ExtensionProperties;
 
 /**
@@ -43,7 +44,7 @@
      * {@inheritDoc}
      */
     @Override
-    public AuthenticationResult authenticate(String name, String password) {
+    public AuthenticationResult authenticate(String name, String password) 
throws ExtensionException {
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.AuthenticateUser,
                 new LdapUserPasswordBaseParameters(getProfileName(), name, 
password)
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java
index 34b0283..f6da037 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java
@@ -20,6 +20,7 @@
 import org.ovirt.engine.core.common.businessentities.LdapGroup;
 import org.ovirt.engine.core.common.businessentities.LdapUser;
 import org.ovirt.engine.core.common.utils.ExternalId;
+import org.ovirt.engine.core.extensions.mgr.ExtensionException;
 import org.ovirt.engine.core.extensions.mgr.Extension.ExtensionProperties;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
@@ -55,7 +56,7 @@
     }
 
     @Override
-    public DirectoryUser findUser(ExternalId id) {
+    public DirectoryUser findUser(ExternalId id) throws ExtensionException {
         // Find the user with the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.GetAdUserByUserId,
@@ -68,7 +69,7 @@
     }
 
     @Override
-    public DirectoryUser findUser(String name) {
+    public DirectoryUser findUser(String name) throws ExtensionException {
         // Find the user with the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.GetAdUserByUserName,
@@ -84,7 +85,7 @@
     }
 
     @Override
-    public List<DirectoryUser> findUsers(List<ExternalId> ids) {
+    public List<DirectoryUser> findUsers(List<ExternalId> ids) throws 
ExtensionException {
         // Find the users using the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.GetAdUserByUserIdList,
@@ -98,11 +99,11 @@
     }
 
     @Override
-    public List<DirectoryUser> queryUsers(String query) {
+    public List<DirectoryUser> queryUsers(String query) throws 
ExtensionException {
         throw new UnsupportedOperationException();
     }
 
-    public List<DirectoryUser> queryUsers(LdapQueryData data) {
+    public List<DirectoryUser> queryUsers(LdapQueryData data) throws 
ExtensionException {
         // Find the users using the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.SearchUserByQuery,
@@ -175,13 +176,13 @@
     }
 
     @Override
-    public DirectoryGroup findGroup(String name) {
+    public DirectoryGroup findGroup(String name) throws ExtensionException {
         // Retrieving groups by name isn't currently supported or needed.
         return null;
     }
 
     @Override
-    public DirectoryGroup findGroup(ExternalId id) {
+    public DirectoryGroup findGroup(ExternalId id) throws ExtensionException {
         // Find the group using the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.GetAdGroupByGroupId,
@@ -194,11 +195,11 @@
     }
 
     @Override
-    public List<DirectoryGroup> queryGroups(String query) {
+    public List<DirectoryGroup> queryGroups(String query) throws 
ExtensionException {
         throw new UnsupportedOperationException();
     }
 
-    public List<DirectoryGroup> queryGroups(LdapQueryData data) {
+    public List<DirectoryGroup> queryGroups(LdapQueryData data) throws 
ExtensionException {
         // Find the groups using the old mechanism:
         LdapReturnValueBase ldapResult = broker.runAdAction(
             AdActionType.SearchGroupsByQuery,
diff --git 
a/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java
 
b/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java
new file mode 100644
index 0000000..b532e20
--- /dev/null
+++ 
b/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java
@@ -0,0 +1,38 @@
+package org.ovirt.engine.core.extensions.mgr;
+
+public class ExtensionException extends RuntimeException {
+
+
+    public enum ExtensionError { INCORRET_CREDENTIALS,
+                                 CREDENTIALS_EXPIRED,
+                                 INVALID_CONFIGURATION,
+                                 SERVER_IS_NOT_AVAILABLE,
+                                 GENERAL_ERROR
+                                 };
+
+    public ExtensionException(ExtensionError error) {
+        this.error = error;
+    }
+
+    public ExtensionException(ExtensionError error, Throwable cause) {
+        super(cause);
+        this.error = error;
+    }
+
+    public ExtensionException(ExtensionError error, String message) {
+        super(message);
+        this.error = error;
+    }
+
+    public ExtensionException(ExtensionError error, String message, Throwable 
cause) {
+        super(message, cause);
+        this.error = error;
+    }
+
+    private ExtensionError error;
+
+    public ExtensionError getError() {
+        return error;
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie5cb41bf103c6345e501a81cbe247dc53051d0db
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to