C.2. Red Hat Virtualization ユーザーインターフェースプラグインのライフサイクル


C.2.1. Red Hat Virtualization ユーザーインターフェースプラグインのライフサイクル

ユーザーインターフェースプラグインの基本ライフサイクルは次の 3 つの段階に分かれます。
  1. プラグインの検出
  2. プラグインの読み込み
  3. プラグインのブートストラッピング

C.2.2. Red Hat Virtualization ユーザーインターフェースプラグインの検出

プラグインの検出プロセスの第 1 ステップは、プラグイン記述子の作成です。プラグイン記述子には重要なプラグインメタデータとオプションのデフォルトプラグイン固有の設定が含まれます。
管理ポータルの HTML ページ要求 (HTTP GET) 処理の一環として、ユーザーインターフェースプラグインのインフラストラクチャーは、ローカルファイルシステムからプラグイン記述子の検出と読み込みを試みます。各プラグイン記述子に対して、インフラストラクチャーは、デフォルトのプラグイン固有設定 (存在する場合) を上書きして、プラグインのランタイムの振る舞いを修正するのに使用される、対応するプラグインユーザー設定の読み込みも試みます。プラグインユーザー設定はオプションです。記述子および対応するユーザー設定ファイルを読み込んだ後には、oVirt Engine がユーザーインターフェースプラグインのデータを集約し、ランタイム評価のために管理ポータルの HTML ページに埋め込みます。
デフォルトでは、プラグインの記述子は $ENGINE_USR/ui-plugins に保管されており、デフォルトマッピングは、oVirt Engine のローカル設定で定義されている ENGINE_USR=/usr/share/ovirt-engine です。プラグイン記述子は JSON 形式の仕様に準拠するものと想定されていますが、プラグイン記述子には JSON 形式の仕様に加えて、Java/C++ 形式のコメント (/*// の両変数) も可能です。
デフォルトでは、プラグインユーザー設定ファイルは $ENGINE_ETC/ui-plugins に保管されており、デフォルトのマッピングは oVirt Engine のローカル設定ファイルで定義されている ENGINE_ETC=/etc/ovirt-engine です。プラグインユーザー設定ファイルは、プラグイン記述子と同じコンテンツ形式のルールを順守するものと想定されます。

注記

プラグインユーザー設定ファイルは、通常、以下の <descriptorFileName>-config.json 命名規則にしたがいます。

C.2.3. Red Hat Virtualization ユーザーインターフェースプラグインの読み込み

プラグインが検出され、そのデータが管理ポータルの HTML ページに埋め込まれた後に、管理ポータルはアプリケーション起動の一環としてそのプラグインの読み込みを試みます (アプリケーションの起動の一環として読み込まないように設定している場合を除く)。
管理ポータルは、検出されたプラグインごとに、そのホストページを読み込むのに使用する HTML iframe 要素を作成します。プラグインのホストページは、プラグインのブートストラッププロセスを開始するのに不可欠です。ブートストラッププロセスは、プラグインの iframe 要素に照らしてプラグインコードを評価するのに使用されます。ユーザーインターフェースプラグインのインフラストラクチャーは、ローカルシステムからサービスを提供するプラグインリソースファイル (例: プラグインのホストページ) をサポートします。プラグインのホストページは iframe 要素の中に読み込まれ、プラグインコードが評価されます。プラグインコードが評価された後、プラグインは、プラグイン API を使用して管理ポータルと通信を行います。

C.2.4. Red Hat Virtualization ユーザーインターフェースプラグインのブートストラッピング

標準的なプラグインブートストラップシーケンスは以下のような手順で構成されます。

手順C.1 プラグインブートストラップシーケンス

  1. 指定されたプラグインの pluginApi インスタンスの取得
  2. ランタイムプラグイン設定オブジェクトの取得 (オプション)
  3. 関連するイベントハンドラー関数の登録
  4. UI のプラグインインフラストラクチャーにプラグインの初期化を開始するように通知
以下のコードスニペットは、上述の手順を実例として示しています。
Copy to Clipboard Toggle word wrap
// Access plug-in API using 'parent' due to this code being evaluated within the context of an iframe element.
// As 'parent.pluginApi' is subject to Same-Origin Policy, this will only work when WebAdmin HTML page and plug-in
// host page are served from same origin. WebAdmin HTML page and plug-in host page will always be on same origin
// when using UI plug-in infrastructure support to serve plug-in resource files.
var api = parent.pluginApi('MyPlugin');

// Runtime configuration object associated with the plug-in (or an empty object).
var config = api.configObject();

// Register event handler function(s) for later invocation by UI plug-in infrastructure.
api.register({
	    // UiInit event handler function.
		UiInit: function() {
				// Handle UiInit event.
					window.alert('Favorite music band is ' + config.band);
					    }
});

// Notify UI plug-in infrastructure to proceed with plug-in initialization.
api.ready();
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.