[midPoint] bulk action task for removing assignment

Black, Carey Matthew blackcm at purdue.edu
Fri Aug 18 15:16:06 CEST 2023


As you likely already understand “Java heap space” is equivalent of an “out of memory”  error.


I think you have at least these two options. (Just a guess… )
1) Give it more resources.  How much more… I don’t know… add more until it works?
2) Maybe the job/task/process can be split into non-overlapping sub groups? 27 jobs should get it done in smaller bites.
Do 26 jobs , one for each letter of the alphabet, run all of them, one at a time.
Last run the “do all of them job” too. Just to deal with cases of “null names” or names that start with non-alphabetic characters.

Just a simple “brute force” way to solve it.

I could be wrong but some things in MidPoint have ways to build “pools”/”chunks” ( maybe not the right Midpoint terms) that are handled by different backend processes. So maybe 26 jobs are needed, but some way to “split the results” into smaller chunks to be handled by a “same sized, but wider” deployment model.

I hope there is a more surgical way. 😊

--
Carey Matthew Black


From: midPoint <midpoint-bounces at lists.evolveum.com> On Behalf Of Paul Caskey via midPoint
Sent: Friday, August 18, 2023 9:06 AM
To: midPoint General Discussion <midpoint at lists.evolveum.com>
Cc: Paul Caskey <pcaskey at internet2.edu>; Pavol Mederly <mederly at evolveum.com>
Subject: Re: [midPoint] bulk action task for removing assignment

---- External Email: Use caution with attachments, links, or sharing data ----

Is there anyway to place limits on the bulk action task below?

It crashes midpoint completely within about an hour, forcing a hard reboot (version 4.7.1).

This was the error:
Couldn't execute script: com.evolveum.midpoint.util.exception.ScriptExecutionException: Couldn't execute action 'unassign' on POV:user:1fb687f6-028e-4758-a877-3a6b932b1097(someone at somedomain.com<mailto:someone at somedomain.com>): Java heap space




From: midPoint <midpoint-bounces at lists.evolveum.com<mailto:midpoint-bounces at lists.evolveum.com>> On Behalf Of Paul Caskey via midPoint
Sent: Thursday, August 17, 2023 2:03 PM
To: midPoint General Discussion <midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>>
Cc: Paul Caskey <pcaskey at internet2.edu<mailto:pcaskey at internet2.edu>>; Pavol Mederly <mederly at evolveum.com<mailto:mederly at evolveum.com>>
Subject: Re: [midPoint] bulk action task for removing assignment

Thanks, Pavol!

For the benefit of the list, here is the bulk action script which will remove all OrgType assignments from all users:

<s:search xmlns:s=http://midpoint.evolveum.com/xml/ns/public/model/scripting-3
          xmlns:q=http://prism.evolveum.com/xml/ns/public/query-3>
    <s:type>UserType</s:type>
    <s:unassign>
        <s:filter>
            <q:ref>
                <q:path>targetRef</q:path>
                <q:value type="OrgType"/>
            </q:ref>
        </s:filter>
    </s:unassign>
</s:search>


From: midPoint <midpoint-bounces at lists.evolveum.com<mailto:midpoint-bounces at lists.evolveum.com>> On Behalf Of Pavol Mederly via midPoint
Sent: Thursday, August 17, 2023 1:35 PM
To: midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>
Cc: Pavol Mederly <mederly at evolveum.com<mailto:mederly at evolveum.com>>
Subject: Re: [midPoint] bulk action task for removing assignment


Hello Paul,

this is a quirk from the prehistory of midPoint: references are not filtered using q:equal but using q:ref.

Furthermore, you may eliminate custom coding by using "unassign" action that provides a filter for assigments to be removed.

See e.g. https://github.com/Evolveum/midpoint/blob/75e549f2e5ce52ab4b008c18e2e7ba8b2072e151/model/model-intest/src/test/resources/scripting/unassign-captain-from-jack.xml#L18-L26 for an example.

Hope this helps. No guarantees, though. :)

--

Pavol Mederly

Software developer

evolveum.com
On 17/08/2023 17:03, Paul Caskey via midPoint wrote:
I am trying to remove all user assignments to OrgType objects in a bulk action task but am having trouble.

I think I have the filter correct, but I’m having trouble with the script when it tries to examine the type on a given assignment (to prepare it for deletion).

This is the filter:
                        <q:filter>
                            <q:equal>
                                <q:path>assignment/targetRef</q:path>
                                <q:value type="OrgType" />
                            </q:equal>
                        </q:filter>

And this is the first part of the script that checks the assignment for a user:
                                  UserType user = input as UserType
                                  for (AssignmentType assignment : user.getAssignment()) {
                                        if (aassignment.targetRef.type == 'OrgType') {


The error I am getting is:
class com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl cannot be cast to class com.evolveum.midpoint.prism.PrismPropertyValue (com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl and com.evolveum.midpoint.prism.PrismPropertyValue are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @2e0fa5d3)


Thanks in advance for any help!
-Paul



_______________________________________________

midPoint mailing list

midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

https://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20230818/8f63ea5b/attachment-0001.htm>


More information about the midPoint mailing list