Skip to content

sabakunotabito/RedfishViewer

Repository files navigation

RedfishViewer

この RedfishViewer は、Redfish の @odata.id を取得するために、以下の 1~3 の手順を延々と繰り返すことが面倒で、自動的に @odata.id を全て取得してくれるツールが欲しかったのが出発点となっています。

  1. リクエスト結果のJSONコンテンツ内の @odata.id から Uri を取得する。("@odata.id": "/redfish/v1/xxx")
  2. 先頭にスキーマとIPアドレスを付加し、Uri を作成する。(https//IPアドレス/redfish/v1/xxx)
  3. リクエストを発行し、JSONデータを取得する。

Redfish の記載をウィキペディア(翻訳)から抜粋します。

Redfish 標準は、業界標準のプロトコルを提供する一連の仕様です。 サーバー、ストレージ、ネットワーキング、統合インフラストラクチャを管理するためのRESTfulインターフェイスを提供します。

また、HAL 形式の href も @odata.id と同様に取得できるようにしています。

特徴

  • Redfish レスポンス JSON 内の @odata.id または href を再帰的に全て取得することができます。
  • 結果が前回と異なる場合、比較を表示します。この情報はデータベースにも保存されます。
  • キーワード検索を実行し、ヒットしたキーワードをハイライトします。
  • データベースに保存した結果を表示することができます。

動作条件

RedfishViewer は .NET 8 で動作する Windows アプリケーションです。

このため、.NET デスクトップ ランタイムが必要になります。

.NET 8.0 のダウンロード

インストール

お使いの Windows 環境に MSI インストーラをダウンロードし、インストールしてください。

または、ZIP ファイルをダウンロードし、任意の場所に解凍してください。

使い方

インストーラを使った場合、RedfishViewer のショートカットをクリックしてください。 ZIP ファイルの場合、解凍先の RedfishViewer.exe をクリックしてください。

起動直後

上部の青い部分を左側側から順番に説明します。

メニュー表示

三本線アイコンをクリックするとメニューが表示されます。メニューを選択すると、上部の青い部分および HTTP リクエストヘッダ領域(後述のプラスボタン押下時)以外の画面が切り替わります。

メニュー

  • RestAPI:起動時の画面で、リクエストの結果を表示します。
  • Errors:リクエストに失敗すると、この画面に遷移します。
  • Nodes:ノード情報を表示・編集することができます。
  • Settings:テーマ、ネットワークに関して設定することができます。
  • Tools:漢字コードを含む URLエンコード文字列をデコードすることができます。(UTF-8のみ)

HTTP リクエストメソッド

HTTPリクエストメソッドを GET, POST, PATCH, PUT, DELETE から選択します。 GET 選択時のみ、横のチェックボックスをオンにすると、レスポンス内の @odata.id または href を再帰的に検索し、全ての結果を取得することができます(自動検索)。

URI/キーワード 入力

Redfish または Rest API の Uri を入力します。Enter キーまたは赤い魚アイコンをクリックするとリクエストを発行します。 また、先頭が "http(s)://" 以外の場合、キーワード検索となります。

HTTP リクエストヘッダ入力

プラスボタンをクリックすると、HTTP リクエストヘッダを入力する領域が表示されます。 マイナスボタンをクリックすると、HTTP リクエストヘッダを入力する領域を非表示にします。

ヘッダ情報入力

  • Basic認証:ユーザ名とパスワードを入力します。
  • HTTP Request ヘッダ:HTTP リクエスト ヘッダ情報を編集することができます。右クリックメニューで行を追加できます。また、直前の @odata.tag を If-Match に反映します。
  • HTTP Request パラメータ:パラメータを編集することができます。右クリックメニューで行を追加することができます。
  • HTTP Request Json ボディ:Json ボディを編集することができます。整形ボタンを押すとインデントを付きで表示します。

リクエスト実行

リクエストを実行すると、左側に行単位でリクエストの結果を表示し、右側にレスポンスのコンテンツ内容を表示します。

リクエスト実行

左側のリクエスト結果の行を右クリックすると、メニューが表示されます。

  • コピー:選択している行の内容をクリップボードへコピーします。
  • リクエスト反映:選択している行のリクエスト情報を Uri や HTTP リクエストヘッダに反映します。
  • 結果をクリア:表示されている全ての行をクリアします。

レスポンスの前回比較

2回以上リクエストを発行し、前回データベースに保存したデータと差異があった場合、前回日時に値が入ります。 このとき、前回比較タブを選択すると画面が分割されて差異がハイライト表示されます。

前回比較

前回比較の画面は、赤いハイライトが過去分で、緑のハイライトが現在の値となります(日付昇順)。 ただし、レスポンス一覧は、Uri が長くなったときを考慮して、更新日時・前回日時の順番で表示しています(日付降順)。

レスポンスのヘッダ情報

レスポンス取得後、ヘッダタブを選択すると、レスポンスのヘッダ情報が表示されます。

レスポンスヘッダ

自動検索

GET の横のチェックボックスをオンにして、リクエストを実行すると、レスポンス内の @odata.id または href を再帰的に検索します。 このとき、検索した Uri は下図のように灰色のトースト形式で連続して表示されます。検索が終了すると、緑色のトーストがアプリ内とWindows デスクトップ右下に通知されます。 リクエストの結果がエラーの場合、赤いトーストを表示し、エラー画面に記録します。

自動検索

キーワード検索

下図のように "http(s)://" スキーマ以外を入力すると、表示中のレスポンスが検索対象となります。 このとき、検索にヒットした箇所はハイライト表示します。

キーワード検索

エラー発生時

リクエストを実行したとき、エラーが発生すると、エラー画面に遷移します。 ただし、自動検索の場合、エラーが発生しても、エラー画面に遷移することはありません。

エラー発生

左側のエラー行を選択したとき、右クリックメニューが開きます。

  • コピー:選択している行の内容をクリップボードへコピーします。
  • リクエスト反映:選択している行のリクエスト情報を Uri や HTTP リクエストヘッダに反映します。
  • エラーをクリア:表示されている全ての行をクリアします。

ノード情報

Nodes メニューを選択すると、HTTPリクエストに成功したノード一覧が表示されます。 右クリックメニューを表示すると、行コピーができますが、パスワードは除外されます。 また、パスワードは暗号化されてデータベースに保存します。

タイトル・概要・備考は編集することができるため、ノード情報を整理することができます。

ノード情報

  • プラグイン:初期は None と Default から選択できます。Default の場合、表示された Uri をブラウザで開くことができます。
  • アカウント反映:ユーザ名とパスワードを Basic認証の入力に反映します。
  • DB から読み込む:指定行に対して、これまでに取得した情報を RestAPI 画面にすべて表示します。
  • DB から削除する:指定行に対して、これまでに保存したノード情報を全て削除します。

設定変更

Settings メニューを選択すると、テーマとネットワークを変更することができます。

ノード情報

設定を変更できる内容は以下の通りです。

  • ダークモード:ダークとライトを切り替えます。
  • 色の調整:できるだけ目に優しい配色に調整します。(必ず調整されるとは限りません)
  • プライマリ色:メインとなるカラーを設定します。
  • セカンダリ色:アクセントとなる色を設定します。
  • タイムアウト:リクエストのタイムアウトを設定します。
  • プロキシ:プロキシを利用する場合、オンに設定します。
  • プロキシサーバ:プロキシサーバの Uri とポートを入力します。
  • プロキシユーザ:プロキシのユーザ名を入力します。
  • プロキシパスワード:プロキシのパスワードを入力します。パスワードは暗号化されてデータベースに保存します。

謝辞

RedfishViewer は、以下のパッケージを利用しています。公開して頂いた方々に深く感謝申し上げます。