[midPoint] APLITT QUESTIONS 1 [19.04.2021] TO "MIDPOINT" COMMUNITY - midPoint General Discussion

Jarosław Król jaroslaw.krol at aplitt.pl
Mon Apr 19 10:29:28 CEST 2021


APLITT QUESTIONS:

First things first, I was originally planning to put together a list of all challenges Midpoint has posed so far, but actually I prefer to deal with them sequentially, following the pace of the book (https://docs.evolveum.com/book/).

Starting with HR Feed CSV example, at first I looked into the exercise https://docs.evolveum.com/midpoint/exercises/01-hr-feed/. I created a CSV 'system' and saved it at the first tab, right after having configured it to use the CSV connector.

Then I went back to edit the XML form of the HR Feed. At this stage, the XML contains merely the following:

<resource xmlns=http://midpoint.evolveum.com/xml/ns/public/common/common-3 xmlns:c=http://midpoint.evolveum.com/xml/ns/public/common/common-3 xmlns:icfs=http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3 xmlns:org=http://midpoint.evolveum.com/xml/ns/public/common/org-3 xmlns:q=http://prism.evolveum.com/xml/ns/public/query-3 xmlns:ri=http://midpoint.evolveum.com/xml/ns/public/resource/instance-3 xmlns:t=http://prism.evolveum.com/xml/ns/public/types-3 oid="ceda18ec-6cf8-4dca-943d-9908ec03a32f" version="0">
    <name>HR Feed</name>
    <connectorRef oid="09e00f58-8e4d-4ea7-8d85-8d522df28998" relation="org:default" type="c:ConnectorType">
        <!-- ConnId com.evolveum.polygon.connector.csv.CsvConnector v2.3 -->
    </connectorRef>
</resource>

Then I attempted to continue with the excercise based on chapter 5 of the handbook. I completed all parts of XML config and when trying to save the configuration got the following error:

<result xmlns=http://midpoint.evolveum.com/xml/ns/public/common/common-3 xmlns:c=http://midpoint.evolveum.com/xml/ns/public/common/common-3 xmlns:icfs=http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3 xmlns:org=http://midpoint.evolveum.com/xml/ns/public/common/org-3 xmlns:q=http://prism.evolveum.com/xml/ns/public/query-3 xmlns:ri=http://midpoint.evolveum.com/xml/ns/public/resource/instance-3 xmlns:t=http://prism.evolveum.com/xml/ns/public/types-3 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:type="c:OperationResultType">
    <operation>com.evolveum.midpoint.web.page.admin.configuration.PageDebugView.saveObject</operation>
    <status>fatal_error</status>
    <importance>normal</importance>
    <end>2021-04-16T14:11:11.334+02:00</end>
    <token>1000000000000048535</token>
    <message>Item {http://midpoint.evolveum.com/xml/ns/public/common/common-3}configurationProperties has no definition (schema present, in container PCD:{.../common/common-3}connectorConfiguration {.../common/common-3}ConnectorConfigurationType[1,1],RAM,runtime)while parsing (
  {...common/common-3}configurationProperties =>
    (
      {...common/common-3}filePath =>
        parser ValueParser(DOMe, {.../common/common-3}filePath: /var/opt/hr/export.csv)
      {...common/common-3}encoding =>
        parser ValueParser(DOMe, {.../common/common-3}encoding: utf-8)
      {...common/common-3}fieldDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}fieldDelimiter: ,)
      {...common/common-3}multivalueDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}multivalueDelimiter: ;)
      {...common/common-3}uniqueAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}uniqueAttribute: empno)
      {...common/common-3}passwordAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}passwordAttribute: password)
    )
)</message>
    <partialResults>
        <operation>com.evolveum.midpoint.common.operation.import.object</operation>
        <status>fatal_error</status>
        <importance>normal</importance>
        <start>2021-04-16T14:11:11.325+02:00</start>
        <end>2021-04-16T14:11:11.334+02:00</end>
        <microseconds>8686</microseconds>
        <invocationId>906584</invocationId>
        <context>
            <entry key="endLineNumber">
                <paramValue>113</paramValue>
            </entry>
            <entry key="progress">
                <paramValue>1</paramValue>
            </entry>
            <entry key="startLineNumber">
                <paramValue>1</paramValue>
            </entry>
        </context>
        <token>1000000000000048537</token>
        <message>Item {http://midpoint.evolveum.com/xml/ns/public/common/common-3}configurationProperties has no definition (schema present, in container PCD:{.../common/common-3}connectorConfiguration {.../common/common-3}ConnectorConfigurationType[1,1],RAM,runtime)while parsing (
  {...common/common-3}configurationProperties =>
    (
      {...common/common-3}filePath =>
        parser ValueParser(DOMe, {.../common/common-3}filePath: /var/opt/hr/export.csv)
      {...common/common-3}encoding =>
        parser ValueParser(DOMe, {.../common/common-3}encoding: utf-8)
      {...common/common-3}fieldDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}fieldDelimiter: ,)
      {...common/common-3}multivalueDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}multivalueDelimiter: ;)
      {...common/common-3}uniqueAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}uniqueAttribute: empno)
      {...common/common-3}passwordAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}passwordAttribute: password)
    )
)</message>
        <details>com.evolveum.midpoint.util.exception.SchemaException: Item {http://midpoint.evolveum.com/xml/ns/public/common/common-3}configurationProperties has no definition (schema present, in container PCD:{.../common/common-3}connectorConfiguration {.../common/common-3}ConnectorConfigurationType[1,1],RAM,runtime)while parsing (
  {...common/common-3}configurationProperties =>
    (
      {...common/common-3}filePath =>
        parser ValueParser(DOMe, {.../common/common-3}filePath: /var/opt/hr/export.csv)
      {...common/common-3}encoding =>
        parser ValueParser(DOMe, {.../common/common-3}encoding: utf-8)
      {...common/common-3}fieldDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}fieldDelimiter: ,)
      {...common/common-3}multivalueDelimiter =>
        parser ValueParser(DOMe, {.../common/common-3}multivalueDelimiter: ;)
      {...common/common-3}uniqueAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}uniqueAttribute: empno)
      {...common/common-3}passwordAttribute =>
        parser ValueParser(DOMe, {.../common/common-3}passwordAttribute: password)
    )
)
com.evolveum.midpoint.prism.impl.ParsingContextImpl.warnOrThrow(ParsingContextImpl.java:90)
com.evolveum.midpoint.prism.impl.ParsingContextImpl.warnOrThrow(ParsingContextImpl.java:82)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValueFromMap(PrismUnmarshaller.java:303)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValue(PrismUnmarshaller.java:224)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValueToContainer(PrismUnmarshaller.java:200)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainer(PrismUnmarshaller.java:193)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseItemInternal(PrismUnmarshaller.java:170)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValueFromMap(PrismUnmarshaller.java:326)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValue(PrismUnmarshaller.java:224)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainerValueToContainer(PrismUnmarshaller.java:200)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseContainer(PrismUnmarshaller.java:193)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseItemInternal(PrismUnmarshaller.java:170)
com.evolveum.midpoint.prism.impl.marshaller.PrismUnmarshaller.parseObject(PrismUnmarshaller.java:80)
com.evolveum.midpoint.prism.impl.marshaller.PrismParserImpl.doParse(PrismParserImpl.java:134)
com.evolveum.midpoint.prism.impl.marshaller.PrismParserImplNoIO.parse(PrismParserImplNoIO.java:102)
com.evolveum.midpoint.common.validator.LegacyValidator.validateObjectInternal(LegacyValidator.java:376)
com.evolveum.midpoint.common.validator.LegacyValidator.readFromStreamAndValidate(LegacyValidator.java:326)
com.evolveum.midpoint.common.validator.LegacyValidator.validate(LegacyValidator.java:199)
com.evolveum.midpoint.common.validator.LegacyValidator.validate(LegacyValidator.java:164)
com.evolveum.midpoint.gui.api.page.PageBase.parseObject(PageBase.java:1638)
com.evolveum.midpoint.web.page.admin.configuration.PageDebugView.validateObject(PageDebugView.java:358)
com.evolveum.midpoint.web.page.admin.configuration.PageDebugView.savePerformed(PageDebugView.java:302)
com.evolveum.midpoint.web.page.admin.configuration.PageDebugView$4.onSubmit(PageDebugView.java:265)
org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:111)
org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:223)
org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1308)
org.apache.wicket.markup.html.form.Form.process(Form.java:1001)
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:825)
org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:176)
org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:127)
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:598)
org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:280)
org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:222)
org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
com.evolveum.midpoint.web.util.MidPointProfilingServletFilter.doFilter(MidPointProfilingServletFilter.java:85)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:124)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
com.evolveum.midpoint.web.boot.TomcatRootValve.invoke(TomcatRootValve.java:60)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:834)
</details>
    </partialResults>
</result>

Then after discovering that files used for the excercise are published (as it stands in handbook chapter "directly usable in Midpoint") I headed over to grab the XML file from https://raw.githubusercontent.com/Evolveum/midpoint-samples/master/samples/book/5/resource-csv-hr.xml, to try to replace my faulty config with the one supplied on github.
Not only did it not correct the configuration, but also proved to be different from the file coming of chapter 5. It obviously contains different resource OID but also some additional keywords within XML tag :

icfc:configurationProperties
                xmlns:icfccsvfile=http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/com.evolveum.polygon.connector-csv/com.evolveum.polygon.connector.csv.CsvConnector>
            <icfccsvfile:filePath>/opt/midpoint/var/resources/hr.csv</icfccsvfile:filePath>
            <icfccsvfile:encoding>utf-8</icfccsvfile:encoding>
            <icfccsvfile:fieldDelimiter>,</icfccsvfile:fieldDelimiter>
            <icfccsvfile:multivalueDelimiter>;</icfccsvfile:multivalueDelimiter>
            <icfccsvfile:uniqueAttribute>empno</icfccsvfile:uniqueAttribute>
            <icfccsvfile:passwordAttribute>password</icfccsvfile:passwordAttribute>


Okay, so back to my previous XML config, closely following handbook's chapter 5 (with the only exception for csv file path), and I attempted to add the missing icfccsvfile keywords. Unfortunately I still get the error and cannot continue with the excercise.
Could you please help with this?

Also :

  *   Is there a way to initialize a fresh new System configuration starting with XML editor instead of the configuration wizard? It would save two steps upon repeated attempts.
  *   Which configuration files should I follow? The ones published as github examples or the ones dissected across handbook chapters? It makes it very hard to figure out Midpoint, if there is discrepancy between configuration examples. Look at hr.csv example file in the Exercise 1: HR Feed (https://docs.evolveum.com/midpoint/exercises/01-hr-feed/) and at another one posted on github as exercise example at https://raw.githubusercontent.com/Evolveum/midpoint-samples/master/samples/book/5/hr.csv, to which the handbook chapter refers to. They got different columns defined, and only one of them matches the real exercise configuration if I am correct.

Best regards,
APLITT

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20210419/ce883352/attachment-0001.htm>


More information about the midPoint mailing list