Skip to content

Cisco ACI へ Python3 でログインするサンプル (urllib.request 版)

以前に Cisco ACI へログインして認証トークンを取得する Python スクリプトのサンプルというメモを書きました。 ここでは requests モジュールを使った Python スクリプトを書いたのですが、これを urllib.request を使って書き直したサンプルをメモしておきます。 Python 3.7.3 で動作確認しました。 ACI 4.2(2e) で確認していますが、ACI 側のバージョンには依存していないはずです。

サンプルスクリプト

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
import json
import ssl
import urllib.request

ssl._create_default_https_context = ssl._create_unverified_context

# Parameters
apic = "https://10.0.0.1"
username = "admin"
password = "password"
headers = {'Content-Type': 'application/json'}

# Send post request.
credential = {'aaaUser': {'attributes': {'name': username, 'pwd': password}}}
url = apic + '/api/aaaLogin.json'

request = urllib.request.Request(url, json.dumps(credential).encode(), headers)
response = urllib.request.urlopen(request).read()

# Get token
token = json.loads(response)['imdata'][0]['aaaLogin']['attributes']['token']
cookie = {}
cookie['APIC-cookie'] = token
print(cookie)

実行例

1
2
# ./login.py
{'APIC-cookie': 'XgQAAA・・・・・gjRlggAzQ=='}