Hello Yair Zaslavsky,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/30487

to review the following change.

Change subject: aaa: more fixes to sync and usages
......................................................................

aaa: more fixes to sync and usages

More fixes were introcued to sync and usages- especially around
adding an already added group/principal.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120720
Change-Id: I0d6198409b7c3e66054716e1abdfcd06e8dd204d
Signed-off-by: Yair Zaslavsky <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
M packaging/dbscripts/user_sp.sql
4 files changed, 29 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/30487/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
index ce75c35..bc82f07 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
@@ -47,6 +47,7 @@
         }
         else {
             dao.update(dbGroup);
+            groupToAdd = dbGroup;
         }
 
         // Return the identifier of the created group:
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
index 3d5633b..a1a4434 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.core.bll;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -10,7 +9,6 @@
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.businessentities.DbUser;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
 public class AddUserCommand<T extends AddUserParameters> extends 
CommandBase<T> {
@@ -38,20 +36,21 @@
 
     @Override
     protected void executeCommand() {
-        DbUser userToAdd = getParameters().getUserToAdd();
-        for (DbUser syncedUser : SyncUsers.sync(Arrays.asList(userToAdd))) {
-            if (Guid.isNullOrEmpty(syncedUser.getId())) {
-                if (syncedUser.isActive()) {
-                    DbFacade.getInstance().getDbUserDao().save(syncedUser);
-                }
-            } else {
-                DbFacade.getInstance().getDbUserDao().update(syncedUser);
-            }
-        }
+        DbUser user = getParameters().getUserToAdd();
+        DbUser syncResult = SyncUsers.sync(user);
+        user = syncResult != null ? syncResult : user;
         DbUser userFromDb =
-                
DbFacade.getInstance().getDbUserDao().getByExternalId(userToAdd.getDomain(), 
userToAdd.getExternalId());
-        setActionReturnValue(userFromDb.getId());
-        setSucceeded(userFromDb.isActive());
+                
DbFacade.getInstance().getDbUserDao().getByExternalId(user.getDomain(), 
user.getExternalId());
+        if (userFromDb == null) {
+            if (user.isActive()) {
+                DbFacade.getInstance().getDbUserDao().save(user);
+            }
+        } else {
+            user.setId(userFromDb.getId());
+            DbFacade.getInstance().getDbUserDao().update(user);
+        }
+        setActionReturnValue(user.getId());
+        setSucceeded(user.isActive());
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
index bce943e..1ab64fd 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.bll;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -20,6 +21,11 @@
 public class SyncUsers {
 
     private static final Log log = LogFactory.getLog(SyncUsers.class);
+
+    public static DbUser sync(DbUser dbUser) {
+        List<DbUser> synchedUsers = sync(Arrays.asList(dbUser));
+        return synchedUsers.isEmpty() ? null : synchedUsers.get(0);
+    }
 
     public static List<DbUser> sync(List<DbUser> dbUsers) {
         List<DbUser> usersToUpdate = new ArrayList<>();
@@ -61,22 +67,22 @@
                     if (activeUser != null) {
                         if (!activeUser.equals(dbUser)) {
                             activeUser.setId(dbUser.getId());
-                            log.info(String.format("The user %1$s from authz 
extension %2$s got updated since last interval",
+                            log.infoFormat("Principal {0}::{1} synchronized",
                                     activeUser.getLoginName(),
-                                    activeUser.getDomain()));
+                                    activeUser.getDomain());
                             usersToUpdate.add(activeUser);
                         }
                     } else {
-                        log.info(String.format("The user %1$s from authz 
extension %2$s could not be found, and will be marked as inactive",
+                        log.infoFormat("Deactivating non existing principal 
{0}::{1}",
                                 dbUser.getLoginName(),
-                                dbUser.getDomain()));
+                                dbUser.getDomain());
                         dbUser.setActive(false);
                         usersToUpdate.add(dbUser);
                     }
                 }
             } catch (Exception ex) {
-                log.error(String.format("Error during user synchronization of 
extension %1$s. Exception message is %2$s",
-                        authz, ex.getMessage()));
+                log.errorFormat("Error during user synchronization of 
extension {0}. Exception message is {1}",
+                        authz, ex.getMessage());
                 log.debug("", ex);
             }
         }
diff --git a/packaging/dbscripts/user_sp.sql b/packaging/dbscripts/user_sp.sql
index 5b49e4f..c4c8379 100644
--- a/packaging/dbscripts/user_sp.sql
+++ b/packaging/dbscripts/user_sp.sql
@@ -62,7 +62,7 @@
       external_id = v_external_id,
       namespace = v_namespace,
       _update_date = CURRENT_TIMESTAMP
-      WHERE user_id = v_user_id;
+      WHERE external_id = v_external_id AND domain = v_domain;
       GET DIAGNOSTICS updated_rows = ROW_COUNT;
       RETURN updated_rows;
 
@@ -95,7 +95,7 @@
       PERFORM UpdateUserImpl(v_department, v_domain, v_email, v_groups, 
v_name, v_note, v_role, v_active, v_surname, v_user_id, v_username, 
v_group_ids, v_external_id, v_namespace);
       UPDATE users SET
       last_admin_check_status = v_last_admin_check_status
-      WHERE user_id = v_user_id;
+      WHERE domain = v_domain AND external_id = v_external_id;
 END; $procedure$
 LANGUAGE plpgsql;
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0d6198409b7c3e66054716e1abdfcd06e8dd204d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Alon Bar-Lev <[email protected]>
Gerrit-Reviewer: Yair Zaslavsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to