Вышло обновление 1.01 IDM Midpoint DEMO EPPL помимо исправления ошибок были добавлены новые функции:

- Ускоренная реконсиляция на нескольких Node

- Стоп лист для генерации логинов

- Бесконечные логины


Схема тоже чуть-чуть изменилась

Files: SVG PNG
Files: SVG PNG

Код на Github: IDM Midpoint DEMO EPPL 

Docker-образ: Docker Compose IDM Midpoint DEMO EPPL

К знакомству с новыми функциями надо приступать на чистом запуске Docker Compose проделав все этапы до демонстрационной части, но без реконсиляций с HR источником, описанные в Docker Demo IDM Midpoint EPPL c трудоустройствами, назначениями, проектами и LDAP

Версия Midpoint все еще 4.9.1 потому что в 4.9.2-3 Evolveum добавило BUG с filter в момент выбора Person of inrerest в GUI Request access - Fatal Error.


Ускоренная реконсиляция на нескольких Node

Они существуют! И не просто подсоединяются, но и делают что-то это видно по скачку использованию CPU на каждой из Node в Docket Desktop, и по сокращению длительности первой реконсиляции, а так же в самом Midpoint если посмотреть статистику в меню Subtasks...но нажимать на меню Subtasks нельзя сразу ошибка 500, но об этом позже.


Замер времени исполнения task реконсиляции

Ускорение от задействования Multi Node было замечено только при первой реконсиляции, и в тех случаях когда идет массированное создание чего-то в Midpoint с обновлением цепочки связанной Links.

Кстати не все можно повесть на Node вот тут описывается что можно: Work Definition (Types of Activities)

Для создания clustera в файл docker-compose.ymp оставляем только код

midpoint_server_A:
    image: evolveum/midpoint:4.9.3-alpine
    depends_on:
      data_init:
        condition: service_completed_successfully
      midpoint_data:
        condition: service_started
    command: [ "/opt/midpoint/bin/midpoint.sh", "container" ]
    ports:
     - 8080:8080
    environment:
     - MP_SET_midpoint_repository_jdbcUsername=midpoint
     - MP_SET_midpoint_repository_jdbcPassword=db.secret.pw.007
     - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint
     - MP_SET_midpoint_repository_database=postgresql
     - MP_SET_midpoint_administrator_initialPassword=Test5ecr3t
     - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1
     - MP_SET_midpoint_taskManager_clustered=true
     - MP_SET_midpoint_nodeId=Alpha
     - MP_NO_ENV_COMPAT=1
    networks:
     - net
    volumes:
     - midpoint_home:/opt/midpoint/var
     - ./DATA/EPPL.xsd:/opt/midpoint/var/schema/EPPL.xsd
     - ./DATA/EPPL_HR_DATA.csv:/opt/midpoint/var/info/EPPL_HR_DATA.csv

вместе прежнего midpoint_server:

И множим его сколько вам надо, убирая ports: и меняя

midpoint_server_A:

на

midpoint_server_Т:

a

- MP_SET_midpoint_nodeId=Alpha

на

- MP_SET_midpoint_nodeId=Teta

например

Можно и каждой Node прописать ports: тогда на них тоже можно будет заходить в GUI, и даже можно поднять балансировщик GUI на Nginx.

Запускаем Docker Compose и смотрим в ADMINISTRATION\Nodes\All Nodes.

А вот так они выглядят в Docker Desktop.

Теперь стартуем реконсиляционные таски как описывалось ранее, доходим до 04 и 05 и тут запускаем в соответствующих ресурсах:

04 Recon Employment as User [Multi-node]

05 Recon Position User [Multi-node]

Первый раз на нескольких нодах реконсилируется быстрее чем без Node… второй раз на нескольких Node будет медленнее чем на одной, потому что изменений, а по ним действий особых нет, а деление на корзины занимает гораздо больше времени чем просто вторая реконсиляция.

Зайдем в один из тасков ADMINISTRATION\Resources\All Resources\EPPL 03 POSITIONS USER\05 Recon Position User [Multi-node]\ и тут в Activity\Tailoring заполнено

Почему заполнено так, а не иначе...нет объяснения, скажу только что String segmentation единственная bucket которая работает (оказывает осязаемый эффект на процесс реконсиляции). Вот тут написано что и другие bucket должны бы работать Multi-node, partitioned and stateful tasks но не сегодня, на самых свежих примерах в github'e от Evolveum, 4-х годичной давности, может быть да, но сегодня нет.

Midpoint создает 10 корзин — повезло! У нас 3 ноды 10 корзин отлично, атрибут Number of buckets в String segmentation есть но, не оказывает осязаемый эффект на процесс реконсиляции, какие бы цифорки куда бы не были вставлены. Нам в DEMO опять же повезло что у нас есть атрибут number_eppl а там цифорки…

Этот Task создает на каждую ноду Subtask и там можно посмотреть статистику. Сразу после завершения реконсиляции нажать на 05 Recon Position User [Multi-node]\Subtasks нельзя ошибка 500.

Надо выйти в общий список тасков этого ресурса, туда Midpoint кинул таски для нод.

Вот тут уже можно заходить в каждый Worker и смотреть в Performance\Internal performance что да нода нагружена была!

Замечено что и без всяких настроек, task’и которые запускаются по таймеру кидаются на разные ноды!


Стоп лист для генерации логинов

Заходим под админом в ADMINISTRATION\Roles\nickName Roles тут у нас рукотворная роль.

Заполнено Name и Email, роль есть и Midpoint не может сгенерировать логин FArt.

И действительно заходим в GUI Midpoint под начальников:

Url: http://localhost:8080/midpoint/

Login: 600677

Password: Password123

Выбираем всех подчинённых с фамилией Арт и запрашиваем им роль [1] EMP001002 FR: Employment LDAP Account for Position.

Возвращаемся под админом и смотрим(не сразу Server Task еще не отработал) созданные аккаунты.

Смотрим в Full Name и сразу фильтруем по Art.

Сотрудника с логином FArt нет, есть сотрудник со следующим в переборе логином FLArt!

Бесконечные логины

Это тоже видно на предыдущем кадре. У нас 7 сотрудников с одинаковым ФИО, да еще и коротким, да еще и минус неприличный логин. Так что буквенные логины быстро кончается и начинается подставляться цифра. Единственная доступная нам в моменте цифра это количество итерация в переборе, поэтому 4-ому сотруднику дается цифра 5.


Коротко прочие улучшения

Наследование названия головного департамента из роли Компании. Изменена схема, головному департаменту назначена роль Компания и он получает из неё название головного департамента.

В поисковую панель добавлено personalNumber там где этого сильно не хватало, и галка Dep.Managers only в User Positions.

Перекрашена и переписана ошибка «not authorized for operation», чтобы не пугать сотрудников. Но прочие ошибки остались, но из них убраны подробности.

Картинка при удалении участника проекта из проекта

Комментарии (0)