Skip to content

Commit

Permalink
MID-8842 ninja - initial objects action fixes - encryption, better lo…
Browse files Browse the repository at this point in the history
…gging, after action task improvements
  • Loading branch information
1azyman committed Sep 11, 2023
1 parent 1674cf1 commit 209f2dd
Showing 1 changed file with 17 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import com.evolveum.midpoint.common.crypto.CryptoUtil;
import com.evolveum.midpoint.ninja.action.Action;
import com.evolveum.midpoint.ninja.action.ActionResult;
import com.evolveum.midpoint.ninja.impl.LogTarget;
import com.evolveum.midpoint.ninja.util.ConsoleFormat;
import com.evolveum.midpoint.ninja.util.NinjaUtils;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.crypto.EncryptionException;
import com.evolveum.midpoint.prism.crypto.Protector;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.repo.api.RepoAddOptions;
Expand Down Expand Up @@ -323,7 +326,9 @@ private <O extends ObjectType> boolean addObject(
throws SchemaException, IOException {

if (!options.isForceAdd() && !overwrite) {
log.info("Skipping object add (force-add options is not set), object will be correctly added during midpoint startup.");
log.info(
"Skipping object add (force-add options is not set), object {} will be correctly added during midpoint startup.",
NinjaUtils.printObjectNameOidAndType(object));
return false;
}

Expand All @@ -337,14 +342,17 @@ private <O extends ObjectType> boolean addObject(
NinjaUtils.printObjectNameOidAndType(object), options.isDryRun() ? "(dry run)" : "");

if (!options.isDryRun()) {
Protector protector = context.getApplicationContext().getBean(Protector.class);
CryptoUtil.encryptValues(protector, object);

RepoAddOptions opts = overwrite ? RepoAddOptions.createOverwrite() : null;

context.getRepository().addObject(object, opts, result);
added = true;
}

actionResult.incrementAdded();
} catch (ObjectAlreadyExistsException | SchemaException ex) {
} catch (ObjectAlreadyExistsException | SchemaException | EncryptionException ex) {
log.error("Couldn't add object {} to repository", ex, NinjaUtils.printObjectNameOidAndType(object));

actionResult.incrementError();
Expand All @@ -363,10 +371,16 @@ private PrismObject<TaskType> createRecomputeTask(List<ObjectReferenceType> refs
.oid(SystemObjectsType.USER_ADMINISTRATOR.value())
.type(UserType.COMPLEX_TYPE));

ObjectReferenceType archetypeRef = new ObjectReferenceType()
.oid(SystemObjectsType.ARCHETYPE_ITERATIVE_BULK_ACTION_TASK.value())
.type(ArchetypeType.COMPLEX_TYPE);

AssignmentType assignment = new AssignmentType()
.targetRef(SystemObjectsType.ARCHETYPE_ITERATIVE_BULK_ACTION_TASK.value(), ArchetypeType.COMPLEX_TYPE);
.targetRef(archetypeRef);
task.getAssignment().add(assignment);

task.getArchetypeRef().add(archetypeRef.clone());

task.schedule(new ScheduleType().recurrence(TaskRecurrenceType.SINGLE));

ObjectFilter filter = context.getPrismContext().queryFor(ObjectType.class)
Expand Down

0 comments on commit 209f2dd

Please sign in to comment.