【JUNOS SPACE】REST APIでJUNOSを操作する_API操作編_その1

今回からAPIを操作していきます。
はじめにSPACEで管理しているデバイスリストを取得してみます。

デバイスリストの取得

下記を参考にURIを作成していきます。
http://www.juniper.net/techpubs/en_US/junos-space-sdk/13.1/apiref/com.juniper.junos_space.sdk.help/Services.html

URIの作成、確認は前回インストールしたSDKを利用すれば簡単にできます。

Eclipseを起動し左側から下記フォルダを選択します。
api/space/device-management/devices

自動でURIが作成されているので実行を押します。
レスポンスのRAWタブを見ると200 OKが返ってきており、XMLタブを見るとXML形式でデバイスリストが返ってきてます。

f:id:kashigeru:20131212163256j:plain

言語を使用したい場合もSDKを使うと自動的に変換してくれます。
右上のGenerate Codeをクリックします。
JAVAPerlPythonとか出てくるので変換したい言語を選択します。

f:id:kashigeru:20131212163858j:plain

f:id:kashigeru:20131212163944j:plain

今回はPythonを選択。Pythonに変換されたポップアップがでます。

f:id:kashigeru:20131212164026j:plain

# this sample use requests library
# to install it visit http://python-requests.org/
# download zip file, unzip it somewhere and run 
# python setup.py install

import requests

url = 'https://10.48.29.140:443/api/space/device-management/devices'
username = "super"
password = "juniper123"

headers = {
  "accept": "application/vnd.net.juniper.space.device-management.devices+xml;version=1",
}

r = requests.get(url, auth=(username, password), headers=headers, verify=False)

print r.status_code
print r.text

実行すると下記のようにデバイスリストの結果が返ってきます。

200  
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<devices size="3" uri="/api/space/device-management/devices/">
 <device key="131092" uri="/api/space/device-management/devices/131092" href="/api/space/device-management/devices/131092">
 <deviceFamily>junos-es</deviceFamily>
 <OSVersion>11.xxx</OSVersion>
 <platform>SRX5800</platform>
 <serialNumber>JNxxxxxx</serialNumber>
 <connectionStatus>up</connectionStatus>
 <ipAddr>10.48.29.16</ipAddr>
 <managedStatus>In Sync</managedStatus>
 <name>T_XXX1FW000</name></device>
 <device key="131100" uri="/api/space/device-management/devices/131100" href="/api/space/device-management/devices/131100">
 <deviceFamily>junos-es</deviceFamily>
 <OSVersion>11.xxx</OSVersion>
 <platform>JUNOSxxx</platform>
 <serialNumber>JNxxxxxx</serialNumber>
 <connectionStatus>up</connectionStatus>
 <ipAddr>10.48.29.133</ipAddr>
 <managedStatus>In Sync</managedStatus>
 <name>T_DEVICE</name></device>
 <device key="131104" uri="/api/space/device-management/devices/131104" href="/api/space/device-management/devices/131104">
 <deviceFamily>junos-es</deviceFamily>
 <OSVersion>11.xxx</OSVersion>
 <platform>SRX5800</platform>
 <serialNumber>JNxxxxxx</serialNumber>
 <connectionStatus>up</connectionStatus>
 <ipAddr>10.48.29.17</ipAddr>
 <managedStatus>In Sync</managedStatus>
 <name>T_XXX1FW001</name>
 </device>
</devices>

次回はデバイスから情報を取得してみたいと思います。