JobScheduler 2.3.2 → 2.4.1 アップデート時のメモ

# 概要

JobScheduler 2.4.1 アップデート時に対応した箇所のメモ。
※私が利用している環境における対応のメモです。
※導入時期や、利用している機能によって、必要な対応は異なります。

# ローカル認証時のIdentity 修正

## 問題

アップデート後、shiroでのログインができなくなった。

## 対応

過去バージョン(恐らく 2.1.x 以前)より利用している場合、JS7ログイン時のローカル認証がshiro となっている。
この場合、事前に認証の切り替えを行ってからアップデートを行う。

Identity Service Type が JOC の場合は問題なし。
Identity Service Type が SHIRO の場合は、JOC認証を追加し、そちらに必要Rolle、Accountを追加。
JOC認証に切り替えたのち、SHIROの認証設定を削除する。

※既存のSHIROをJOCに修正すると、Rolles、Accounts は空になってしまうので注意。

## 【参考】管理者アカウントをroot以外に変更したい場合

Settings - JOC にて `default_profile_account` にてroot以外のアカウントに変更することで、該当アカウントに特権がつきます。
（Profile のメニュー項目が異なる）

# LDAP認証でログインができなくなる

## 問題

openldapを使っての認証ができなくなった。

ver. 2.4.0 までは、LDAP認証ができることを確認
ver. 2.4.1 より、認証エラーとなる。※LDAP認証関連のメニューに変化あり。

この修正の影響と思われる
https://change.sos-berlin.com/browse/JOC-1342?src=confmacro

## 対応

パッチの適用で対応可能

パッチはこちらで提供されている
https://change.sos-berlin.com/browse/JOC-1382?src=confmacro

パッチの適用方法はこちらを参照
https://kb.sos-berlin.com/display/JS7/JS7+-+Patches+for+JOC+Cockpit

```shell
# 該当ディレクトリでパッチをダウンロード
cd /opt/sos-berlin.com/js7/joc/webapps/joc/WEB-INF/classes
curl -O https://download.sos-berlin.com/patches/patch-20221004-JOC-1382-2.4.1.jar

# ファイルを展開し、サービス再起動
unzip patch-20221004-JOC-1382-2.4.1.jar
sudo systemctl restart joc

rm patch-20221004-JOC-1382-2.4.1.jar
```

この対応でLDAP認証ができるようになったことを確認

:::note
こちらは2.5.0 で修正されます。
:::

# Notification スキーマ差し替え（docker版のみ）

## 問題

Notification の設定にて、TimeZoneの設定が表示されない。

## 対応

docker版jocは、マウント先を再作成しない限り、スキーマファイルの更新が行われない。
この影響で、docker版でアップデートをした場合、NotificationのMessage-TimeZoneメニューが表示されない。
対策として、手動での差し替えが必要。
https://kb.sos-berlin.com/display/JS7/JS7+-+Notification+XSD+Schema+file+not+found

上記サイトより、`Notification_configuration_v1.0.xsd` をダウンロードし、`JETTY_BASE/resources/joc/xsd/notification/Notification_configuration_v1.0.xsd`を上書きします。

こちらの記事で構築した場合は、下記ファイルを上書きしてください。
[JS7® JobScheduler docker-compose で起動(MySQL版)](https://qiita.com/saitamanokusa/items/ffb8f05cbc8e75d435ce)
[JS7® JobScheduler docker-compose で起動(PostgreSQL版)](https://qiita.com/saitamanokusa/items/a418bb1832c2330d0405)
`js7-joc-primary-config/xsd/notification/Notification_configuration_v1.0.xsd`

上書き後、Notificationメニューを開き直すとTimeZoneが選べるようになります。
（サービス再起動もなく、既存の設定のまま、メニュー変更が反映された）

※2.4.1 で新規セットアップの場合は不要

※通常のセットアップ環境では、アンインストール、インストールのタイミングで更新されます。

# Notification TimeZone設定

## 問題

Slack通知で時刻表記が崩れる。うまくJST表示にならない。

## 対応

Notification にTimeZone設定が追加されたことによるよる影響。
※通知に利用されるモニター変数の時刻の表記が変更された。

対象モニター変数
`${MON_O_START_TIME}`,`${MON_O_END_TIME}`,`${MON_OS_START_TIME}`,`${MON_OS_END_TIME}`

- ver. 2.3まで `2022-10-16T15:04:45` UTC固定
- ver. 2.4以降 `2022-10-16T15:13:45+0900` TimeZoneを含めた表記となった

メール、Slack通知を行っている場合は、必要に応じて修正を行う。
※こちらの記事を、ver. 2.4以降にも対応しました。
[JS7® JobScheduler メール通知設定](https://qiita.com/saitamanokusa/items/704d3a0e4c07dc84c247)
[JS7® JobScheduler Slack通知設定](https://qiita.com/saitamanokusa/items/5df00c5f7245f1cd4353)

# Time elapsed が表示されない

## 問題

モニター変数`${MON_O_TIME_ELAPSED}`, `${MON_OS_TIME_ELAPSED}` が表示されなくなった。（TimeZone修正の影響？）

## 対応（保留）

影響は軽微であるため、そのまま保留。

# Notification Error通知について

## 問題

Workflowにて、Failパーツを利用した場合は、type ERROR の場合でも、Success で通知が飛ぶ
type WARNING、SUCCESS の場合は問題なし

## 対応

ObjectFragments でデフォルトの`any`の設定を修正する。
ObjectFragments - Workflows - WorkflowJob の設定が入っている場合、WorkflowJob を削除することで、意図したとおりの通知が飛ぶようになった。