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)
|
実行例
| # ./login.py
{'APIC-cookie': 'XgQAAA・・・・・gjRlggAzQ=='}
|