見出し画像

Pandas、Python と ZFS Storage

ZFS Storage には REST APIという仕組みが備わっていて、いろんな情報を取り出せる。今回は、「『絞り込んだ情報を取り出したいのだけど、なんかダメじゃない』と言われてサンプルコードを書いてみました」というお話。

Python 2.7を今後サポートしない話

ご存知の方もいらっしゃるかもしれないが、Pythonという言語の仕様とか様々な決め事は、PEPという形でまとめられている。PEP 373 で Python 2.7 のサポートの期限は2020年と決めれていて、Python 2.7をインストールして出荷されている Oracle Solaris のようなOSもこの制限を満たさなければいけない。Python 3 の対応をするべくいろんな部分の修正もやっている。

内輪の話としては、OSの様々な部分で使っているだけでなくビルドツールやテスト環境の自動化などいろんなところで使っているので、全部なくなるまでは Python 3のパッケージと併存させるのだろうけれども、流れとしては今後サポートはしなくなる。

RESTful API

Oracle ZFS Storage には RESTful API という仕組みがあり、ストレージの情報を取ることができる。一方で情報が多いので、「フィルタリングしたり、他のフォーマット(CSV)とかで出力できないのか」というご要望をいただいた。
「Pythonで書けば簡単にできるんじゃない?」と思った私は、下の文書を見ながら、コードを書き始めた。

そして、ふと気がつく。

「あれ?urllib2 って Python 3にないよね?」

本当はどこの環境にでも入ってそうな最低限のモノを使って、サンプルを書くべきだろうし、オレオレ証明書の問題もきちんと処理するべきなのだろう。でも、ものぐさな私は、「処理の流れを示すのが目的だから」と使い慣れているライブラリを使って、証明書の確認などをしないコード書いてしまったのだ。

そんなわけで、Python 3 の requests をつかって、Pandasでデータを処理して、CSVに書き出すサンプルスクリプトを公開します。urllib3, pandas, requests が必要です。pprint はなくても動きます。

注意点としては、接続先の ZFS Storage のホスト名は、zfssa_nodeという変数にハードコードされているので、適宜書き換えてください。

問題を発見されたり、気に入ってくださったときには、Twitter: @hisaotsu にお知らせ下さい。

この記事はここまでです。 最後まで読んでいただいてありがとうございます。 気に入っていただいたなら、スキを押していただいたり、 共有していただけるとうれしいです。 コメントや感想大歓迎です!