Search in sources :

Example 1 with InitialDataImport

use of com.evolveum.midpoint.init.InitialDataImport in project midpoint by Evolveum.

the class PageAbout method resetStateToInitialConfig.

private void resetStateToInitialConfig(AjaxRequestTarget target) {
    OperationResult result = new OperationResult(OPERATION_DELETE_ALL_OBJECTS);
    String taskOid = null;
    String taskName = "Delete all objects";
    QueryFactory factory = getPrismContext().queryFactory();
    TypeFilter nodeFilter = factory.createType(NodeType.COMPLEX_TYPE, factory.createAll());
    final ObjectFilter taskFilter = getPrismContext().queryFor(TaskType.class).item(TaskType.F_NAME).eq(taskName).buildFilter();
    NotFilter notNodeFilter = factory.createNot(nodeFilter);
    NotFilter notTaskFilter = factory.createNot(taskFilter);
    try {
        QName type = ObjectType.COMPLEX_TYPE;
        taskOid = deleteObjectsAsync(type, factory.createQuery(factory.createAnd(notTaskFilter, notNodeFilter)), taskName, result);
    } catch (Exception ex) {
        result.recomputeStatus();
        result.recordFatalError(getString("PageAbout.message.resetStateToInitialConfig.allObject.fatalError"), ex);
        LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete all objects", ex);
    }
    final String taskOidToRemoving = taskOid;
    try {
        while (!getTaskManager().getTaskPlain(taskOid, result).isClosed()) {
            TimeUnit.SECONDS.sleep(5);
        }
        runPrivileged(new Producer<Object>() {

            private static final long serialVersionUID = 1L;

            @Override
            public Object run() {
                Task task = createAnonymousTask(OPERATION_DELETE_TASK);
                OperationResult result = new OperationResult(OPERATION_DELETE_TASK);
                ObjectDelta<TaskType> delta = getPrismContext().deltaFactory().object().createDeleteDelta(TaskType.class, taskOidToRemoving);
                Collection<ObjectDelta<? extends ObjectType>> deltaCollection = Collections.singletonList(delta);
                try {
                    getModelService().executeChanges(deltaCollection, null, task, result);
                } catch (Exception ex) {
                    result.recomputeStatus();
                    result.recordFatalError(getString("PageAbout.message.resetStateToInitialConfig.task.fatalError"), ex);
                    LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete task", ex);
                }
                result.computeStatus();
                return null;
            }
        });
        InitialDataImport initialDataImport = new InitialDataImport();
        initialDataImport.setModel(getModelService());
        initialDataImport.setTaskManager(getTaskManager());
        initialDataImport.setPrismContext(getPrismContext());
        initialDataImport.setConfiguration(getMidpointConfiguration());
        initialDataImport.init(true);
        // TODO consider if we need to go clusterwide here
        getCacheDispatcher().dispatchInvalidation(null, null, true, null);
        getModelService().shutdown();
        getModelService().postInit(result);
    } catch (Exception ex) {
        result.recomputeStatus();
        result.recordFatalError(getString("PageAbout.message.resetStateToInitialConfig.import.fatalError"), ex);
        LoggingUtils.logUnexpectedException(LOGGER, "Couldn't import initial objects", ex);
    }
    showResult(result);
    target.add(getFeedbackPanel());
}
Also used : QueryFactory(com.evolveum.midpoint.prism.query.QueryFactory) Task(com.evolveum.midpoint.task.api.Task) QName(javax.xml.namespace.QName) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) TypeFilter(com.evolveum.midpoint.prism.query.TypeFilter) LabeledString(com.evolveum.midpoint.schema.LabeledString) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) InitialDataImport(com.evolveum.midpoint.init.InitialDataImport) RestartResponseException(org.apache.wicket.RestartResponseException) TaskType(com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType) NotFilter(com.evolveum.midpoint.prism.query.NotFilter) Collection(java.util.Collection) PrismObject(com.evolveum.midpoint.prism.PrismObject) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta)

Aggregations

InitialDataImport (com.evolveum.midpoint.init.InitialDataImport)1 PrismObject (com.evolveum.midpoint.prism.PrismObject)1 ObjectDelta (com.evolveum.midpoint.prism.delta.ObjectDelta)1 NotFilter (com.evolveum.midpoint.prism.query.NotFilter)1 ObjectFilter (com.evolveum.midpoint.prism.query.ObjectFilter)1 QueryFactory (com.evolveum.midpoint.prism.query.QueryFactory)1 TypeFilter (com.evolveum.midpoint.prism.query.TypeFilter)1 LabeledString (com.evolveum.midpoint.schema.LabeledString)1 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)1 Task (com.evolveum.midpoint.task.api.Task)1 TaskType (com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType)1 Collection (java.util.Collection)1 QName (javax.xml.namespace.QName)1 RestartResponseException (org.apache.wicket.RestartResponseException)1