Sxapiprep

出典: ScalixWikiJP

このセクションは PopulatingPlatformDb(米国サイト)を翻訳したものです。

始めに

SWAとMobileクライアントによるメッセージヘッダへの高速なアクセスを提供するために、Platform APIのデータベースが使われています。 データベースへの登録はユーザ毎に行われ、ユーザがメールボックスの各フォルダへのアクセスするときに行われます。 通常は、ScalixのIMAPサーバからデータベースへの同期は、変更がある毎に次第に行われていきます。 しかし、Scalixへ移行したばかりのときや、サーバを追加したときや、データベースを再作成したときには、全てのメッセージの同期が行われます。 大きいメールボックスを持っているユーザにとっては、これはログイン処理で顕著な遅延が生じます。 最悪の場合にはログインがタイムアウトし、メールボックスにアクセスするために再ログインをユーザに強います。 これは一度だけ起きますが、問題を避けるために事前に内容を同期させることはよいことです。 この目的のためにsxapiprep.pyツールを利用できます。

スクリプト: sxapiprep.py

実行方法

ツールを使う前に、mboxadmin権限を持っているユーザが必要です。 ユーザにこの権限を付けるために、ommoduを使います。 実行例は次の通りです。

ommodu -o TestUser -c +mboxadmin

システム内の全ユーザに対してsxapiprep.pyを実行するために、ユーザの信任をツールに与える必要があります。 順番に各ユーザを切り替えて処理します。 デフォルトでは、omsearchがユーザの一覧を取得するために使われます。 これはrootとしてsxapiprep.pyを実行するべきであることを意味します。

[root@test9]# ./sxapiprep.py -u TestUser -w password
Searching for users... found 1022.
sxadmin (1 of 1022)... INBOX: 2.09 Calendar: 0.54 Contacts: 0.65 Sent Items: 0.61 Total: 3.90
Skipping: sxqueryadmin
User0 Test0 (3 of 1022)... INBOX: 2.97 Calendar: 0.74 Contacts: 0.82 Sent Items: 0.87 Total: 5.40
User1 Test1 (4 of 1022)... INBOX: 2.39 Calendar: 0.75 Contacts: 0.79 Sent Items: 0.76 Total: 4.69
User2 Test2 (5 of 1022)... INBOX: 2.42 Calendar: 0.71 Contacts: 0.78 Sent Items: 0.77 Total: 4.68
User3 Test3 (6 of 1022)... INBOX: 0.91 Calendar: 0.66 Contacts: 0.74 Sent Items: 0.76 Total: 3.07

コマンドラインやテキストファイルでユーザ名を与えることにより、一部のユーザのためにツールを実行することもできます。 sxapiprep.pyでの利用に適したテキストファイルを取得するために、CNとIA-FORMALユーザ属性を指定してomsearchを使います。実行例は次の通りです。

[user@test9]$ sudo omsearch -d SYSTEM -e 'ENTRY-TYPE=1' -m 'CN/IA-FORMAL' -s | head -100 > /tmp/users.list
[user@test9]$ ./sxapiprep.py -u TestUser -w password -f /tmp/users.list
Searching for users... found 100.
sxadmin (1 of 100)... INBOX: 0.55 Calendar: 0.60 Contacts: 0.60 Sent Items: 0.63 Total: 2.38
Skipping: sxqueryadmin
User0 Test0 (3 of 100)... INBOX: 0.56 Calendar: 0.23 Contacts: 0.35 Sent Items: 0.29 Total: 1.43
User1 Test1 (4 of 100)... INBOX: 0.32 Calendar: 0.24 Contacts: 0.27 Sent Items: 0.36 Total: 1.20
...

テキストファイルやコマンドラインで一覧を使うときには、omsearch自体を実行するツールは必要ありません。 これは権限のないユーザがsxapiprep.pyを実行するのに役に立ちます。 コマンドラインでユーザを特定するには、'[名] 姓' や 'S=姓[/G=名]'の形式でコンマ区切りの名前の一覧を用意します。ここで[角括弧]の場所はオプションです。 例えば、次のように実行します。

[user@test9]$ ./sxapiprep.py -u TestUser -w password -U 'User0 Test0,S=Test3,S=Test4/G=User4'
Searching for users... found 3.
User0 Test0 (1 of 3)... INBOX: 0.76 Calendar: 0.58 Contacts: 0.99 Sent Items: 0.83 Total: 3.16
User3 Test3 (2 of 3)... INBOX: 1.09 Calendar: 0.52 Contacts: 0.53 Sent Items: 0.57 Total: 2.70
User4 Test4 (3 of 3)... INBOX: 2.76 Calendar: 0.72 Contacts: 0.77 Sent Items: 0.78 Total: 5.03

コマンドラインでユーザを特定するときには、sxapiprep.pyはユーザ情報を得るためにCAAを使います。 そうして、与えられたアカウントの信任情報はそのタスクに必要な権限を持たせます。

デフォルトで、INBOX(受信トレイ), Calendar(予定表), Contacts(連絡先), Sent Items(送信済みアイテムフォルダ)がツールによりアクセスされます。このリストは'-F'オプションを使うことでカスタマイズできます。 どんなフォルダをも指定できますが、そのフォルダリストは全てのユーザで共通に使われるので、各ユーザが持っているフォルダで無ければなりません。

[user@test9]$ ./sxapiprep.py -u sxadmin -w secret12 -U 'Test0,Test1' -F 'Deleted Items'
Searching for users... found 2.
User0 Test0 (1 of 1)... Deleted Items: 0.75 Total: 0.75
User1 Test1 (2 of 2)... Deleted Items: 1.74 Total: 1.74

sxapiprep.pyのオプションの一覧は'-h'や'--help'オプションを付けて実行すると得られます。

[user@test9]$ ./sxapiprep.py -h
usage: sxapiprep.py [options]

options:
 -h, --help            show this help message and exit
 -uUSER, --user=USER   Username (required)
 -wPASSWORD, --password=PASSWORD
                       Password (required)
 -fUSERFILE, --file=USERFILE
                       File with list of users
 -UUSERLINE, --users=USERLINE
                       Comma separated list of users.  Format is: '[Given]
                       Surname' or 'S=Surname[/G=Given]'
 -FFOLDERS, --folders=FOLDERS
                       Comma separated list of folders, eg. 'INBOX, Calendar,
                       Contacts'
 -HAPIHOST, --apihost=APIHOST
                       Server hostname for Platform/API
 -CCAAHOST, --caahost=CAAHOST
                       Server hostname for SAC/CAA
 -RREALM, --realm=REALM
                       API auth realm
 -S, --ssl             Use SSL to connect to CAA and API