5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ONTAPの APIアクセスを確認する

Last updated at Posted at 2020-01-08

NetAppの Storage OSである ONTAPは API(ZAPI)による操作が以前から可能でしたが、
最近になって(ONTAP 9.6以後) REST APIアクセスが追加されました。

APIを使った Storage自動化の一歩目として
まずは簡単にAPIアクセスが出来るかを確認をする方法についての記事になります。

2022/10/06 追記: ZAPIからRESTへの移行について

ONTAP 9.7以後、新機能については全てREST APIのみのサポートになっていてZAPIではサポートされなくなっています。
このこともあり 今後はZAPIからREST APIへの移行を考える必要が出てきますが、下記のBlogにて移行を助けるためのスクリプトが紹介されていますのでご参考にしてください。

ZAPIからの移行補助

ZAPI編

ZAPIは昔からある ONTAPのAPIで Ansible Moduleや OpenStack Cinder/Manila Driver、
Trident等は これを利用して実装しています。

ONTAP9.7以後は REST APIが Primary APIになるので、今後新規に何かする場合、ZAPIはあまり利用する場面は無いかもしれません。
ZAPIの利用は9.7以後も可能ですが、ONTAPに新機能が追加された場合のAPIの拡張は行われないので注意が必要です。

叩き方の基本は

  1. APIの要求をXMLにまとめる
  2. httpsプロトコルで POSTする
  3. 結果をXMLで受け取る

これだけなんですが、API粒度が細かいのと iteratorを利用するiter系APIがあるので、慣れがちょっと必要です。

一番簡単なシステムの Versionを取得する形でAPIが利用可能であることを確認してみます。1

curl -k --user admin -d "<netapp><system-get-version/></netapp>" https://[ONTAP管理IP]/servlets/netapp.servlets.admin.XMLrequest_filer

実行するとシステムバージョンが得られます。

$ curl -k --user admin -d "<netapp><system-get-version/></netapp>" https://[ONTAP管理IP]/servlets/netapp.servlets.admin.XMLrequest_filer
Enter host password for user 'admin': ここでパスワードを入力
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE netapp SYSTEM 'file:/etc/netapp_gx.dtd'>
<netapp version='1.150' xmlns='http://www.netapp.com/filer/admin'>
<results status="passed"><build-timestamp>1544733693</build-timestamp><is-clustered>true</is-clustered><version>NetApp Release 9.5: Thu Dec 13 20:41:33 UTC 2018</version><version-tuple><system-version-tuple><generation>9</generation><major>5</major><minor>0</minor></system-version-tuple></version-tuple></results></netapp>

REST編

ONTAP 9.5から REST APIが一部実装されて9.6で殆どのAPIが実装されました。

一般的なCRUDの操作はHTTPの GET/POST/PUT/DELETE で出来るようになっています。

Cluster Objectを GETしてみます。

curl -k --user admin https://[ONTAP管理IP]/api/cluster

結果は以下の様に。

$ curl -k --user admin https://[ONTAP管理IP]/api/cluster
Enter host password for user 'admin': ここでパスワードを入力
{
  "name": "SE-ST-AFF8080-02",
  "uuid": "2b5a3832-00cd-11e8-a9b4-xxxxxxxxxxxx",
  "version": {
    "full": "NetApp Release 9.5: Thu Dec 13 20:41:33 UTC 2018",
    "generation": 9,
    "major": 5,
    "minor": 0
  },
  "_links": {
    "self": {
      "href": "/api/cluster"
    }
  }
}
  1. (2020/4/27) XMLを シングルクォートで括ってましたが、Windowsの場合内部の<>がリダイレクトとして認識されてしまうので ダブルクォートに変更しました。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?