curl で Cisco SD-WAN に Data Prefix を作成 / 取得 / 更新 / 削除する
以前に curl で Cisco SD-WAN の REST API を試してみる というメモを書きました。 このメモでは GET
の例しか記載していなかったので改めて GET
, POST
, PUT
, DELETE
する例もメモしておきます。 API の調べ方は前述のメモを参考にしてください。
ログインする
ログイン処理自体は同じです。
| curl --insecure \
--silent \
--request POST "https://VMANAGE/j_security_check" \
--header "Content-Type: application/x-www-form-urlencoded" \
--data "j_username=USERNAME&j_password=PASSWORD" \
--cookie-jar cookie.txt
|
POST して Data Prefix を設定する
まず、POST
用のデータを JSON 形式で用意します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | cat << EOF > data.json
{
"name": "DATA-PREFIX-1",
"description": "Sample Data Prefix",
"type": "dataPrefix",
"entries": [
{
"ipPrefix": "192.168.1.0/24"
},
{
"ipPrefix": "192.168.2.0/24"
},
{
"ipPrefix": "192.168.3.0/24"
}
]
}
EOF
|
用意した JSON を POST
します。 これで Data Prefix が作成されているはずです。 レスポンスとして作成した Data Prefix の ListID
が返されます。
| curl --insecure \
--silent \
--header 'Content-Type:application/json' \
--request POST https://VMANAGE/dataservice/template/policy/list/dataprefix \
--cookie cookie.txt \
--data @data.json \
| python -m json.tool
|
GET して定義されたデータを確認する
全ての Data Prefix を取得するには以下のように GET
します。
| curl --insecure \
--silent \
--request GET https://VMANAGE/dataservice/template/policy/list/dataprefix \
--cookie cookie.txt \
| python -m json.tool
|
特定の Data Prefix だけを表示するには ListID
を指定します。
| curl --insecure \
--silent \
--request GET https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \
--cookie cookie.txt \
| python -m json.tool
|
PUT してデータを書き換える
POST
は新規作成することが出来ますが、既に同じ名前のデータがある場合、エラーになります。 定義済みデータをアップデートするには PUT
を使います。 まず、書き換えるデータを定義します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | cat << EOF > data.json
{
"name": "DATA-PREFIX-1",
"description": "Sample Data Prefix 2",
"type": "dataPrefix",
"entries": [
{
"ipPrefix": "192.168.4.0/24"
},
{
"ipPrefix": "192.168.5.0/24"
},
{
"ipPrefix": "192.168.6.0/24"
}
]
}
EOF
|
これを PUT
します。 これでデータが書き換えられました。
| curl --insecure \
--silent \
--header 'Content-Type:application/json' \
--request PUT https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \
--cookie cookie.txt \
--data @data.json \
| python -m json.tool
|
DELETE して削除する
DELETE
するとデータを削除することが出来ます。
| curl --insecure \
--silent \
--request PUT https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \
--cookie cookie.txt
|