Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: Distinguishing between get domains and get profiles
......................................................................

aaa: Distinguishing between get domains and get profiles

Frontend should work with profiles.
REST-API should return domains (authz) for /api/domains

Topic: AAA
Change-Id: Id1aeff31ef23ffff8d1e0cd7f65269daad77f49a
Signed-off-by: Yair Zaslavsky <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetProfilesListQuery.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetDomainListQueryTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
11 files changed, 90 insertions(+), 42 deletions(-)


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

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
index 6bd7f05..feca61b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
@@ -608,7 +608,7 @@
     @Override
     public VdcQueryReturnValue runPublicQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters) {
         switch (actionType) {
-        case GetDomainList:
+        case GetProfilesList:
         case RegisterVds:
         case CheckDBConnection:
         case ValidateSession:
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java
index 82f11dd..ccc1f19 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java
@@ -5,11 +5,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.ovirt.engine.core.aaa.AuthenticationProfile;
-import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
+import org.ovirt.engine.api.extensions.aaa.Authz;
+import org.ovirt.engine.core.aaa.AuthzUtils;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.queries.GetDomainListParameters;
+import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
+import org.ovirt.engine.core.extensions.mgr.ExtensionsManager;
+import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager;
 
 public class GetDomainListQuery<P extends GetDomainListParameters> extends 
QueriesCommandBase<P> {
     public GetDomainListQuery(P parameters) {
@@ -22,10 +25,11 @@
         String internal = Config.<String> getValue(ConfigValues.AdminDomain);
 
         // Get the list of authentication profile names:
-        List<AuthenticationProfile> profiles = 
AuthenticationProfileRepository.getInstance().getProfiles();
-        List<String> names = new ArrayList<>(profiles.size());
-        for (AuthenticationProfile profile : profiles) {
-            names.add(profile.getName());
+        List<ExtensionProxy> extensions =
+                
getExtensionsManager().getExtensionsByService(Authz.class.getName());
+        List<String> names = new ArrayList<>(extensions.size());
+        for (ExtensionProxy extension : extensions) {
+            names.add(AuthzUtils.getName(extension));
         }
         if (getParameters().getFilterInternalDomain()) {
             names.remove(internal);
@@ -37,4 +41,8 @@
         // Return the sorted list:
         getQueryReturnValue().setReturnValue(names);
     }
+
+    protected ExtensionsManager getExtensionsManager() {
+        return EngineExtensionsManager.getInstance();
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetProfilesListQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetProfilesListQuery.java
new file mode 100644
index 0000000..65e5fee
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetProfilesListQuery.java
@@ -0,0 +1,26 @@
+package org.ovirt.engine.core.bll;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.aaa.AuthenticationProfile;
+import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+
+public class GetProfilesListQuery<P extends VdcQueryParametersBase> extends 
QueriesCommandBase<P> {
+
+    public GetProfilesListQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        List<AuthenticationProfile> profiles = 
AuthenticationProfileRepository.getInstance().getProfiles();
+        List<String> names = new ArrayList<>(profiles.size());
+        for (AuthenticationProfile profile : profiles) {
+            names.add(profile.getName());
+        }
+        getQueryReturnValue().setReturnValue(names);
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetDomainListQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetDomainListQueryTest.java
index 146ddde..ea63a7b 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetDomainListQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetDomainListQueryTest.java
@@ -5,8 +5,10 @@
 import static org.mockito.Mockito.mock;
 import static org.ovirt.engine.core.utils.MockConfigRule.mockConfig;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.junit.Before;
@@ -14,12 +16,12 @@
 import org.junit.Test;
 import org.ovirt.engine.api.extensions.Base;
 import org.ovirt.engine.api.extensions.ExtMap;
-import org.ovirt.engine.core.aaa.AuthenticationProfile;
-import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
+import org.ovirt.engine.api.extensions.aaa.Authz;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.queries.GetDomainListParameters;
 import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
 import org.ovirt.engine.core.utils.MockConfigRule;
+import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager;
 
 /**
  * A test case for the {@link GetDomainListQuery} class.
@@ -27,27 +29,49 @@
 public class GetDomainListQueryTest
         extends AbstractQueryTest<GetDomainListParameters, 
GetDomainListQuery<GetDomainListParameters>> {
 
+    private static class MockEngineExtensionsManager extends 
EngineExtensionsManager {
+
+        private List<ExtensionProxy> extensions = new 
ArrayList<ExtensionProxy>();
+
+        public void addExtension(ExtensionProxy extension) {
+            extensions.add(extension);
+        }
+
+        @Override
+        public List<ExtensionProxy> getExtensionsByService(String provides) {
+            return extensions;
+        }
+
+        public void clear() {
+            extensions.clear();
+        }
+    }
+
     // The name of the internal authentication profile:
     private static final String INTERNAL = "internal";
 
     // The list of authentication profile names:
     private String[] NAMES = {
-        INTERNAL,
-        "zzz",
-        "aaa"
+            INTERNAL,
+            "zzz",
+            "aaa"
     };
+
+    private MockEngineExtensionsManager extMgr = new 
MockEngineExtensionsManager();
 
     @ClassRule
     public static final MockConfigRule MCR = new MockConfigRule(
-        mockConfig(ConfigValues.AdminDomain, INTERNAL)
-    );
+            mockConfig(ConfigValues.AdminDomain, INTERNAL)
+            );
 
     @Before
     @Override
     public void setUp() throws Exception {
         super.setUp();
+        extMgr.clear();
+        doReturn(extMgr).when(getQuery()).getExtensionsManager();
         for (String name : NAMES) {
-            setUpProfileMock(name);
+            setUpAuthzMock(name);
         }
     }
 
@@ -57,18 +81,13 @@
      *
      * @param name the name for the mocked authenticator, directory and 
authentication profile
      */
-    private void setUpProfileMock(String name) {
+    private void setUpAuthzMock(String name) {
         ExtensionProxy authzMock = mock(ExtensionProxy.class);
         ExtMap mockContext = mock(ExtMap.class);
         doReturn(name).when(mockContext).get(Base.ContextKeys.INSTANCE_NAME);
+        
doReturn(Arrays.asList(Authz.class.getName())).when(mockContext).get(Base.ContextKeys.PROVIDES);
         doReturn(mockContext).when(authzMock).getContext();
-        ExtensionProxy authnMock = mock(ExtensionProxy.class);
-        doReturn(mockContext).when(authnMock).getContext();
-        AuthenticationProfile profileMock = mock(AuthenticationProfile.class);
-        doReturn(name).when(profileMock).getName();
-        doReturn(authzMock).when(profileMock).getAuthz();
-        doReturn(authnMock).when(profileMock).getAuthn();
-        
AuthenticationProfileRepository.getInstance().registerProfile(profileMock);
+        extMgr.addExtension(authzMock);
     }
 
     @Test
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index 0480b74..077ae97 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -204,6 +204,7 @@
 
     // Public services
     GetDomainList(VdcQueryAuthType.User),
+    GetProfilesList(VdcQueryAuthType.User),
     RegisterVds(VdcQueryAuthType.User),
     CheckDBConnection(VdcQueryAuthType.User),
     ValidateSession(VdcQueryAuthType.User),
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index 44680f2..9e50d23 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -90,7 +90,6 @@
 import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
 import 
org.ovirt.engine.core.common.queries.GetConnectionsByDataCenterAndStorageTypeParameters;
 import 
org.ovirt.engine.core.common.queries.GetDataCentersWithPermittedActionOnClustersParameters;
-import org.ovirt.engine.core.common.queries.GetDomainListParameters;
 import 
org.ovirt.engine.core.common.queries.GetEntitiesWithPermittedActionParameters;
 import 
org.ovirt.engine.core.common.queries.GetExistingStorageDomainListParameters;
 import 
org.ovirt.engine.core.common.queries.GetHostListFromExternalProviderParameters;
@@ -441,7 +440,7 @@
         return diskInterfaces;
     }
 
-    public static void getDomainListViaPublic(AsyncQuery aQuery, boolean 
filterInternalDomain) {
+    public static void getAAAProfilesListViaPublic(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
             public Object Convert(Object source, AsyncQuery _asyncQuery)
@@ -450,9 +449,7 @@
                         : new ArrayList<String>();
             }
         };
-        GetDomainListParameters tempVar = new GetDomainListParameters();
-        tempVar.setFilterInternalDomain(filterInternalDomain);
-        Frontend.getInstance().runPublicQuery(VdcQueryType.GetDomainList, 
tempVar, aQuery);
+        Frontend.getInstance().runPublicQuery(VdcQueryType.GetProfilesList, 
new VdcQueryParametersBase(), aQuery);
     }
 
     public static void getIsoDomainByDataCenterId(AsyncQuery aQuery, Guid 
dataCenterId) {
@@ -1252,7 +1249,7 @@
         }
     }
 
-    public static void getDomainList(AsyncQuery aQuery, boolean 
filterInternalDomain) {
+    public static void getAAAProfilesList(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
             public Object Convert(Object source, AsyncQuery _asyncQuery)
@@ -1261,9 +1258,7 @@
                         : new ArrayList<String>();
             }
         };
-        GetDomainListParameters tempVar = new GetDomainListParameters();
-        tempVar.setFilterInternalDomain(filterInternalDomain);
-        Frontend.getInstance().runQuery(VdcQueryType.GetDomainList, tempVar, 
aQuery);
+        Frontend.getInstance().runQuery(VdcQueryType.GetProfilesList, new 
VdcQueryParametersBase(), aQuery);
     }
 
     public static void getRoleList(AsyncQuery aQuery) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java
index 52bf951..9658255 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java
@@ -203,7 +203,7 @@
 
             }
         };
-        AsyncDataProvider.getDomainListViaPublic(_asyncQuery, false);
+        AsyncDataProvider.getAAAProfilesListViaPublic(_asyncQuery);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
index fc44185..ecec2f1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
@@ -173,13 +173,13 @@
         setIsTimerDisabled(true);
 
 
-        AsyncDataProvider.getDomainList(new AsyncQuery(this, new 
INewAsyncCallback() {
+        AsyncDataProvider.getAAAProfilesList(new AsyncQuery(this, new 
INewAsyncCallback() {
 
             @Override
             public void onSuccess(Object model, Object result) {
                 populateDomains((List<String>) result);
             }
-        }), false);
+        }));
 
 
         AsyncDataProvider.getRoleList(new AsyncQuery(this, new 
INewAsyncCallback() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java
index 20751fb..d11bf80 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java
@@ -927,7 +927,7 @@
 
     private void updateDomainList() {
         // Update Domain list
-        AsyncDataProvider.getDomainList(new AsyncQuery(this,
+        AsyncDataProvider.getAAAProfilesList(new AsyncQuery(this,
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
@@ -942,7 +942,7 @@
                             
getSysPrepDomainName().setSelectedItem(selectedDomain);
                         }
                     }
-                }), true);
+                }));
     }
 
     public void sysPrepListBoxChanged() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index bbeebde..8ce6123 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -23,8 +23,8 @@
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
-import org.ovirt.engine.core.common.businessentities.VmRngDevice;
 import org.ovirt.engine.core.common.businessentities.VmPoolType;
+import org.ovirt.engine.core.common.businessentities.VmRngDevice;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmType;
 import org.ovirt.engine.core.common.businessentities.VmWatchdogAction;
@@ -1380,7 +1380,7 @@
         Frontend.getInstance().subscribe(new VdcQueryType[] { 
VdcQueryType.GetStorageDomainsByStoragePoolId,
                 VdcQueryType.GetImagesListByStoragePoolId,
                 VdcQueryType.GetDefaultTimeZone, 
VdcQueryType.GetStoragePoolsByClusterService,
-                VdcQueryType.GetDomainList, VdcQueryType.GetConfigurationValue,
+                VdcQueryType.GetProfilesList, 
VdcQueryType.GetConfigurationValue,
                 VdcQueryType.GetVdsGroupsByStoragePoolId, 
VdcQueryType.GetVmTemplatesByStoragePoolId,
                 VdcQueryType.GetVmTemplatesDisks, 
VdcQueryType.GetStorageDomainsByVmTemplateId,
                 VdcQueryType.GetStorageDomainById, 
VdcQueryType.GetDataCentersWithPermittedActionOnClusters,
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
index 9b1cd50..b1bde74 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
@@ -1060,7 +1060,7 @@
         // Can't use domain since onSuccess is async call and it have
         // a different stack call.
         currentDomain = domain;
-        AsyncDataProvider.getDomainList(new AsyncQuery(this,
+        AsyncDataProvider.getAAAProfilesList(new AsyncQuery(this,
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
@@ -1074,7 +1074,6 @@
                             getSysprepDomain().setSelectedItem(currentDomain);
                         }
                     }
-                }),
-                true);
+                }));
     }
 }


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

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

Reply via email to