From 6c5c58f3a99990cdbfae5c83edb8e868eba44e07 Mon Sep 17 00:00:00 2001 From: Ethan Kromhout Date: Tue, 1 Dec 2020 13:34:01 -0500 Subject: [PATCH 1/2] Adding midPoint and Grouper initial objects --- .../container_files/tmp/initialize.gsh | 53 +++++++++++++++++++ .../tasks/996-task-import-sis-persons.xml | 34 ++++++++++++ .../tasks/997-task-async-update-grouper.xml | 40 ++++++++++++++ ...998-task-reconciliation-grouper-groups.xml | 41 ++++++++++++++ .../tasks/999-task-recomputation-users.xml | 22 ++++++++ 5 files changed, 190 insertions(+) create mode 100644 Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml create mode 100644 Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml create mode 100644 Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml create mode 100644 Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml diff --git a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh index 67ebc1a..31ccd9c 100644 --- a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh +++ b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh @@ -30,4 +30,57 @@ idmfans = new GroupSave(gs).assignName("app:mailinglist:idm-fans").assignCreateP cs = new GroupSave(gs).assignName("app:cs").assignCreateParentStemsIfNotExist(true).save() volunteers = new GroupSave(gs).assignName("test:volunteers").assignCreateParentStemsIfNotExist(true).save() + +group = new GroupSave(gs).assignName("etc:affiliationLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderGroupTypes", "addIncludeExclude") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:affiliation:',affiliation,'_systemOfRecord') as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_AFFILIATIONS") + +group = new GroupSave(gs).assignName("etc:deptLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:dept:',department) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_PERSONS where department is not null") + +group = new GroupSave(gs).assignName("etc:coursesLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:course:',courseId) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_COURSES") + +edu.internet2.middleware.grouper.app.loader.GrouperLoaderType.scheduleLoads() + + + +def addGroups(gs,stem,owner,regexp) { + for (group in stem.childGroups) { + if (!group.name.endsWith('_includes') && + !group.name.endsWith('_excludes') && + !group.name.endsWith('_systemOfRecord') && + !group.name.endsWith('_systemOfRecordAndIncludes') && + (regexp == null || group.extension ==~ regexp)) { + println 'Adding: ' + group + def s = SubjectFinder.findById(group.getId(), 'group', 'g:gsa') + owner.addMember(s, false) + } else { + println 'Ignoring: ' + group + } + } +} + +def cs = GroupFinder.findByName(gs, "app:cs", true) + +addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/) + System.out.println("************** initialize.gsh done.") diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml new file mode 100644 index 0000000..58189c0 --- /dev/null +++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml @@ -0,0 +1,34 @@ + + Import from SIS persons + + account + ri:AccountObjectClass + + + + + + 1535407239440-0-1 + + runnable + ImportingAccounts + + single + loose + diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml new file mode 100644 index 0000000..5007ae4 --- /dev/null +++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml @@ -0,0 +1,40 @@ + + + + Grouper async updates + + 1 + + + + + 1552664339630-0-2 + + + + runnable + AsynchronousUpdate + + + + single + loose + restart + diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml new file mode 100644 index 0000000..4e024cc --- /dev/null +++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml @@ -0,0 +1,41 @@ + + + + Grouper reconciliation (groups) + + ri:Group + + + + + 605a0127-a313-442a-9d5e-151eac8b0745 + + + + runnable + Reconciliation + + + + single + loose + restart + diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml new file mode 100644 index 0000000..179b565 --- /dev/null +++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml @@ -0,0 +1,22 @@ + + User recomputation + + c:UserType + + + + + + 1571729899646-0-1 + + + + http://midpoint.evolveum.com/xml/ns/public/provisioning/channels-3#recompute + runnable + Recomputation + single + tight + From 778af20741c301bed23ec52fba1cf662caa6f2b8 Mon Sep 17 00:00:00 2001 From: Ethan Kromhout Date: Tue, 1 Dec 2020 14:03:45 -0500 Subject: [PATCH 2/2] Adding midPoint and Grouper initial objects --- Workbench/grouper_daemon/container_files/tmp/initialize.gsh | 1 + 1 file changed, 1 insertion(+) diff --git a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh index 31ccd9c..844a49a 100644 --- a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh +++ b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh @@ -81,6 +81,7 @@ def addGroups(gs,stem,owner,regexp) { def cs = GroupFinder.findByName(gs, "app:cs", true) +gs = GrouperSession.startRootSession() addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/) System.out.println("************** initialize.gsh done.")