こんにちはKUROです。
先日、goboucchiさんがREST APIのことを触れられていた、REST APIを実際に使ってみました。
以下、簡単に紹介させていただきたいと思います。
実装されている、FOS 8.2は、Dell EMCではまだリリースされておらず、4月初旬の予定のようです。
Pythonモジュールの、pyFOSの方はいずれ紹介したいとは思いますが、今回は見送らせていただきました。
興味のある方はこのあたりから取得して使ってみてください。
今回は、アプリケーションやスクリプトとしてではなく、curl(1)でお試ししました。
1. REST APIが有効になっているかを確認
mgmtAppコマンドで設定が有効になっているか確認します。

このシステムではすでに有効になっています。"Disabled"となっている場合は、"mgmtapp --enable rest"を実行して有効にしてください。
2. まずは、ログインしてみる
curlコマンドのオプションに "--user <user:password>"が用意されているので、これを使ってユーザ名とパスワードを指定します。
コマンド:POST
Content-Type: application/yang-data+xml
url: http://<ip-addr>/rest/login (httpsが推奨です。)
実行結果

オレンジ色で囲んだレスポンスヘッダは、セッションキーで以降のリクエストを送信する場合に使用します。
2. ログアウト(logoutを送信)
この場合は、user/passwordは不要です。ログイン時にレプライされた、Authorizationヘッダをセッションキーとして指定します。
ですので、以下のようにcurlコマンドを実行します。
curl -v -X POST -H "Content-Type: application/yang-data+xml" -H "Authorization: Custom_Basic YWRtaW46eHh4OjlhMmU3NTUyNmZhY2QxN2ZjNGQ0ZTViNjkyZDczMmUyMjgzMWI0Y2JjYzU0ZmZlM2YzNGJkODRkZTI0NmExM2Y=" "http://11.22.33.44/rest/logout"
3. ログアウト(FOS側から強制的にセッションを終了させる)
あらたに追加された、appLoginHistoryコマンドで現在のセッションを表示できます。

mgmtAppコマンドで強制終了させます。

ピンク色で囲まれた文字列は、"apploginhistory --show"でアクティブなセッションで表示されたエントリです。
強制終了した結果、再度appLoginHistoryコマンド実行すると、水色で囲まれた部分にはセッションは表示されなくなりました。
4. 機器情報を取得(GET http://<switch-IP>/rest/running/fabric/fabric-switch)

switchShowコマンドのヘッダ部分の情報+アルファといった感じです。数値は16進ではなくて、10進数で表示されます。
上記の<fcid>16776193</fcid>は、switchShowコマンドのswitchIDの0xfffc01になります。

5. ポート情報を取得(GET http://<switch-IP>/rest/running/brocade-interface/fibrechannel)
switchShowとportCfgShowで示される情報といった感じでしょうか。ポート番号の指定しなければ全ポートの情報を取得します。<slot#>/<port#>の指定を行えば特定ポートのみの情報を取得可能です。ブレードタイプでない機器では、0/<port#>と指定する必要があります。

speed: 32Gb: 32000000000
16Gb: 16000000000
8Gb: 8000000000
operational-status: 2: Online/Testing
3: Offline
5: Faulty
enabled-state: 2: Port is enabled
6: Port is disabled
と定義されているので、switchShowの以下の状態と一致します。

6. ポートの設定変更を行う(PATCH http://<switch-IP>/rest/brocade-interface/fibrechannel)
お試しということで、ポートのスピード設定を変更してみます。
6-1. 初期状態
以下のように自動設定(32Gb)です。

6-2. 最高速度8Gbの自動設定に変更します。(”portcfgspeed 5 0 -m 8”の実行と同じ設定を行いたい。)

あれれ、エラーとなってしまいました。
↓だと、8Gb固定スピードの設定です。

マニュアルを確認して見ると、自動設定はread-onlyとなっているので固定⇔自動の変更は不可のようです。

コマンド(portcfgspeed 5 0 -m 8)で有効にした場合の情報では以下のように、<auto-negotiate>1</autonegotiate>と
なります。

REST APIで取得した情報でも、8Gbの自動設定になっていることを確認出来ます。

7. 各ポートのエラーカウントの取得も可能です(GET http://<switch-ip>/rest/running/brocade-interface/fibrechannel-statistics/。。。)
すでにSNMPのMIBで取得されているかと思います。Brocade環境では、ifIndexはポート番号と一致していますが、ブレードタイプのモデルでは
異なるので、<slot#>/<port#>で指定出来るREST APIの方がわかりやすいかもしれません。

また、サポートエンジニアがよくお願いする、カウンタのリセットもREST APIで可能ですが、ポート毎に行う必要があります。
それでは、最後にログアウトします。(POST http://<switch-ip>/rest/logout)


真価を発揮すると思われる、ゾーニングに関連する操作の紹介は今回は取り上げていませんが、なんとなく雰囲気が伝われば幸いです。
Comments