1.2. DiscoveryRegistrationHandler
Pluggable Discovery API は、DisoveryRegistrationHandler を使用して、検出されたプラグインを Cryostat
に登録します。ハンドラーは、プラグインと Cryostat からの GET
および POST
要求を管理します。Cryostat にプラグインを登録しない場合、プラグインは Cryostat にターゲット情報を提供できません。
検出プラグインプログラムが登録目的で POST
リクエストを Cryostat に送信すると、Cryostat は callback
URL を読み取り、プラグインに GET
リクエストを送信します。プラグインが GET
リクエストに正しく応答すると、Cryostat は最初の POST
リクエストに応答して登録リクエストを受け入れます。このプロセスにより、プラグインがアクティブになり、Cryostat で使用できるようになります。
失敗した要求は、プラグインが失敗したかオフラインになったことを示している可能性があります。この場合、エンドポイントは Red Hat OpenShift 上のデータベースからプラグインの情報を削除します。
登録プロセスの後、Cryostat は通常の POST
リクエストをプラグインに送信して、プラグインがまだ実行されていることを確認します。
GET
または POST
リクエストで id
要素と token
要素を指定することもできます。これらの要素はオプションですが、Cryostat に以前に登録されたプラグインの登録情報を再利用したい場合に使用することを検討できます。
Cryostat は、登録されたプラグインのトークンを作成します。このトークンには、有効期限と認証情報が含まれています。POST
リクエストに有効な ID
と token
情報が含まれている場合、Cryostat はプラグイン登録情報を再利用してトークンを更新できます。リクエストに id
要素または token
要素のみが含まれている場合は、プラグインを Cryostat に再登録する必要があります。
Cryostat が POST
リクエストをプラグインの callback
コンポーネントに送信した後、プラグインは POST
リクエストを Cryostat に送信して、プラグインの登録の詳細を更新する場合があります。プラグインは、リクエストに ID
と token
情報を含める必要があります。その後、Cryostat は DiscoveryRegistrationHandler
を使用してプラグインの詳細を更新できます。Cryostat は更新されたトークンを含む応答をプラグインに送信し、プラグインは Cryostat への今後の要求でこのトークンを使用できます。
Cryostat は、定期的にプラグインに POST
リクエストを発行して、同じ ID
と token
情報を使用して Cryostat に再登録することをプラグインに知らせることができます。プラグインがこのリクエストを無視すると、トークンの有効期限が切れる可能性があり、プラグインは Cryostat への完全な登録を完了する必要があります。
外部プラグインから送信される POST
リクエストの例
{ "realm": "my-plugin", "callback": "http://my-plugin.my-namespace.svc.local:1234/callback" }
Cryostat がプラグインに送信する POST
応答の例
{
"data": {
"result": {
"id": "922dd4f4-9d7c-4ae2-8982-0903868226a6",
"token": "<key_value>"
}
},
"meta": {
"status": "Created",
"type": "application/json"
}