Skip to content

Commit

Permalink
move initialize of provisioning(connectors) to separate init class
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Sep 20, 2022
1 parent 5bbfd09 commit b327384
Show file tree
Hide file tree
Showing 27 changed files with 85 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ private ImportResult importObject(PrismObject<? extends ObjectType> object,
LOGGER.info("Starting initial import of file {}.", fileName);
model.executeChanges(
MiscUtil.createCollection(delta),
ModelExecuteOptions.create().setIsImport().overwrite(overwrite),
ModelExecuteOptions.create().setIsImport().preAuthorized().overwrite(overwrite),
task,
result);
result.recordSuccess();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* Copyright (C) 2010-2020 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.init;

import com.evolveum.midpoint.model.api.ModelService;
import com.evolveum.midpoint.provisioning.api.ProvisioningService;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;

import org.apache.commons.lang3.Validate;

/**
* @author lazyman
*/
public class ProvisioningInitialSetup {

private static final Trace LOGGER = TraceManager.getTrace(ProvisioningInitialSetup.class);

private ProvisioningService provisioning;

public void setProvisioning(ProvisioningService provisioning) {
Validate.notNull(provisioning, "Provisioning service must not be null.");
this.provisioning = provisioning;
}

public void init() {
LOGGER.info("Provisioning post initialization.");

OperationResult mainResult = new OperationResult("Provisioning Post Initialization");
try {
provisioning.postInit(mainResult);

if (mainResult.isUnknown()) {
mainResult.computeStatus();
}

LOGGER.info("Provisioning post initialization finished successfully.");
} catch (Exception ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Provisioning post initialization failed", ex);
mainResult.recordFatalError("ProvisioningInitialSetup.message.init.fatalError", ex);
} finally {
mainResult.computeStatus("ProvisioningInitialSetup.message.init.fatalError");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import com.evolveum.midpoint.authentication.api.authorization.PageDescriptor;
import com.evolveum.midpoint.authentication.api.authorization.Url;
import com.evolveum.midpoint.gui.impl.page.login.PageLogin;
import com.evolveum.midpoint.init.ProvisioningInitialSetup;
import com.evolveum.midpoint.provisioning.api.ProvisioningService;
import com.evolveum.midpoint.security.api.*;
import com.evolveum.midpoint.authentication.api.util.AuthConstants;
import com.evolveum.midpoint.authentication.api.util.AuthUtil;
Expand Down Expand Up @@ -137,6 +139,7 @@ public class PageAbout extends PageAdminConfiguration {

@Autowired RepositoryCache repositoryCache;
@Autowired protected SystemObjectCache systemObjectCache;
@Autowired ProvisioningService provisioningService;

public PageAbout() {
repoDiagModel = new LoadableModel<RepositoryDiag>(false) {
Expand Down Expand Up @@ -590,6 +593,8 @@ public Object run() {
}
});

provisioningService.postInit(result);

InitialDataImport initialDataImport = new InitialDataImport();
initialDataImport.setModel(getModelService());
initialDataImport.setTaskManager(getTaskManager());
Expand Down
6 changes: 6 additions & 0 deletions gui/admin-gui/src/main/resources/ctx-init.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@
<constructor-arg name="cacheRepositoryService" ref="cacheRepositoryService"/>
</bean>

<bean id="provisioningInitialSetup"
class="com.evolveum.midpoint.init.ProvisioningInitialSetup"
init-method="init">
<property name="provisioning" ref="provisioningService"/>
</bean>

<bean id="initialDataImport"
class="com.evolveum.midpoint.init.InitialDataImport"
init-method="init">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public class MidScaleGuiTest extends AbstractGuiIntegrationTest implements Perfo
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);
userAdministrator = repositoryService.getObject(UserType.class, USER_ADMINISTRATOR_OID, null, initResult);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
logger.trace("initSystem");
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);
userAdministrator = repositoryService.getObject(UserType.class, USER_ADMINISTRATOR_OID, null, initResult);
login(userAdministrator);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
logger.trace("initSystem");
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);
repoAddObjectFromFile(ROLE_SUPERUSER_FILE, true, initResult);
userAdministrator = repoAddObjectFromFile(USER_ADMINISTRATOR_FILE, true, initResult);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ public abstract class TestAbstractAuthenticationEvaluator<V, AC extends Abstract
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
logger.trace("initSystem");
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1754,9 +1754,6 @@ public void postInit(OperationResult parentResult) {

securityContextManager.setUserProfileService(focusProfileService);

// Initialize provisioning
provisioning.postInit(result);

if (result.isUnknown()) {
result.computeStatus();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
mockClockworkHook = new MockClockworkHook();
hookRegistry.registerChangeHook(MOCK_CLOCKWORK_HOOK_URL, mockClockworkHook);

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
InternalsConfig.setAvoidLoggingChange(isAvoidLoggingChange());
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);
ManualConnectorInstance.setRandomDelayRange(0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public class TestConnectorDummyFake extends AbstractConfiguredModelIntegrationTe
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
// Make sure that the connectors are discovered
provisioningService.postInit(initResult);
modelService.postInit(initResult);

// Make sure to call postInit first. This add system config to repo.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ public void test002InitialConfiguration() throws Exception {

// WHEN
repositoryService.postInit(result);
provisioningService.postInit(result);
modelService.postInit(result);

// THEN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ void commonInitialization(OperationResult initResult)
throws CommonException, EncryptionException, IOException {
repoAddObjectFromFile(ROLE_SUPERUSER_FILE, RepoAddOptions.createOverwrite(), false, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);
try {
repoAddObjectFromFile(SYSTEM_CONFIGURATION_FILE, RepoAddOptions.createOverwrite(), false, initResult);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ public abstract class AbstractWfTest extends AbstractModelImplementationIntegrat
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);

PrismObject<SystemConfigurationType> sysconfig = prismContext.parseObject(getSystemConfigurationFile());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
"looks like the previous test haven't cleaned it up", e);
}

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// TODO what now? config is unused
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public abstract class AbstractLongTest extends AbstractModelIntegrationTest {
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti

loadOpenDJWithData();

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration and administrator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ public static void stopResources() {
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public class TestOrgHierarchy extends AbstractModelIntegrationTest {
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration and administrator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ public class TestRunAs extends AbstractLongTest {
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);

// Users
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public void initSystem(Task initTask, OperationResult result) throws Exception {

InternalMonitor.reset();

provisioningService.postInit(result);
getModelService().postInit(result);

result.computeStatus();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public void initSystem(Task initTask, OperationResult result) throws Exception {

InternalMonitor.reset();

provisioningService.postInit(result);
getModelService().postInit(result);

result.computeStatus();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public class AbstractStoryTest extends AbstractModelIntegrationTest {
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
provisioningService.postInit(initResult);
modelService.postInit(initResult);

// System Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
"looks like the previous test haven't cleaned it up", e);
}

provisioningService.postInit(initResult);
modelService.postInit(initResult);

// User administrator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti

// This should discover the connectors
logger.trace("initSystem: trying modelService.postInit()");
provisioningService.postInit(initResult);
modelService.postInit(initResult);
logger.trace("initSystem: modelService.postInit() done");

Expand Down

0 comments on commit b327384

Please sign in to comment.