この投稿は5年以上前のものです

2 Intern

 • 

187 メッセージ

4325

2017年2月1日 00:00

UnityのREST APIの利用方法について

REST APIに明るくなく初歩的な内容かもしれませんが、質問させてください。

EMC Unityのデータを取得したくcurlを利用して以下のコマンドを実行してみたのですが、上手くデータを取得できません。

# curl https:// /api/types/user/instances --insecure --basic --user admin:<パスワード> --verbose

以下のコマンドも実行してみたのですが同様に上手くいきません。

# curl https:// /api/types/user/instances --insecure --basic --user admin:<パスワード> --verbose -L

Isilonでは以下のコマンドで上手くデータを取得できました。

# curl https:// :8080/platform/1/protocols/nfs/exports --insecure --basic --user admin:<パスワード> --verbose

どうすればEMC Unityのデータを取得できますでしょうか?

125 メッセージ

2017年2月2日 23:00

ちょっと試してみましたが、たしかに私もCurlでうまくできませんでした。

Basic認証がうまく通らず、CAS認証に飛ばされている感じでした。

Windows上のPython 3.5.2 環境で、以下のスクリプトは動きました。

r.text に json で結果が戻ってきますので、python の中で加工するのも楽にできるのではないかと思います。

ご参考まで

ーーーここから

#!/usr/bin/python

# -*- coding: utf-8 -*-

import requests

requests.packages.urllib3.disable_warnings()

##

UNITY='xx.xx.xx.xx'          #Unity のIPアドレス

USER='admin'                  # Unity のユーザ

PASSWORD='xxxxxxx'    #パスワード

## create http session

s = requests.Session()

## get

##

headers = {'X-EMC-REST-CLIENT': 'true'}

r = s.get('https://'+UNITY+'/api/types/user/instances' ,headers=headers, auth=(USER, PASSWORD), verify=False)

if r.status_code == 200:

    print ('Successed to get request')

    print (r.status_code )

    print (r.headers)

    print ()

    print (r.text)

else:

    print ('Failed to get request')

## close http session

s.close()

Community Manager

 • 

5.4K メッセージ

2017年2月1日 23:00

Ryo.Tさん

REST APIでBasic認証を利用するためには、Headerに「X-EMC-REST-CLIENT: true」を入れる必要があるので、一度このHeader情報を入れて試して頂けないでしょうか。

Unisphere Management REST API Programmer's Guide P.42に記載があります)

とはいえ私もcurlコマンドを利用して確認してみましたが、「302 Found」のエラーとなり上手く情報を得ることが出来ませんでした。失敗した理由を見てみると、どうもBasic認証にならずにUnispereのWeb認証の画面にリダイレクトさせられているようです。

そのためにChromeにプラグインで入るREST APIのクライアントも使って確認してみましたが、ARCではきちんと「200 OK」が返ってきて情報が取れたのに対して、DHCではcurlコマンドと同じで302 Foundで上手くいきませんでした。

何か相性のようなものがありそうですね。。

  • ARCでの成功例

capture-20170202-140723.png

  • DHCでの失敗例(設定してる項目は同じなのに。。)

capture-20170202-140630.png

2 Intern

 • 

187 メッセージ

2017年2月5日 17:00

makotoさん、Uehara Y.さん

ご回答頂きましてありがとうございました。

また、シンプルなPythonスクリプトのサンプルを頂き、個人的にも非常に助かりました!

イベントは見つかりませんでした!

Top