この投稿は5年以上前のものです
2 Intern
•
187 メッセージ
0
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のデータを取得できますでしょうか?
イベントは見つかりませんでした!



miuramak
125 メッセージ
1
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()
Uehara Y.
Community Manager
•
5.4K メッセージ
0
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で上手くいきませんでした。
何か相性のようなものがありそうですね。。
F8PVOgdxLf12156
2 Intern
•
187 メッセージ
0
2017年2月5日 17:00
makotoさん、Uehara Y.さん
ご回答頂きましてありがとうございました。
また、シンプルなPythonスクリプトのサンプルを頂き、個人的にも非常に助かりました!