SỬ DỤNG PYTHON LẤY DANH SÁCH THIẾT BỊ TỪ NETWORK CONTROLLER (DNA CENTER) - PHẦN 2
Tiếp theo Vnpro sẽ dùng VSCode để viết chương trình python lấy danh sách thiết bị.
Đầu tiên chúng ta tạo một file mới có đuôi .py
Tiếp theo ta tạo một hàm để trả về token khi xác thực thành công.
import requests
import requests.packages.urllib3.disable_warnings
from tabulate import import tabulate
base_url = "sandboxdnac.cisco.com"
def get_token():
url = base_url + "/dna/system/api/v1/auth/token"
header = {
"Authorization": "Basic ZGVzb25AdGVzdC5jb206cGFzc3dvcmQ=",
"Content-Type": "application/json"
}
response = requests.post(url, headers=header, verify=False)
print(response)
# data = response.json()['Token']
# return data
Giải thích :
Base_url: là đường dẫn cơ sở ( trong bài lab này Vnpro đang sử dụng sanbox của Cisco)
url và header: chúng ta xem trên Document

Đối với Value trong Authorization thì chúng đã mã hóa username và password theo base 64 encode
Vnpro sử dụng username, password có sẳn trên Devnet Learning Labs bạn có thể tham khảo tại đây: https://developer.cisco.com/learning/modules/dnac-rest-apis/dnac-101-auth/get-started-with-authentication-api-postman/ )
Tiến hành chạy thử nhưng để xem được kết quả trả về chúng ta phải sử dụng thư viện json để định dạng kết quả trả về và in ra màn hình, thêm dòng lệnh sau
print(response.json())
Kết quả nhận được
data = response.json()['Token']
return data
get_token()
Tiếp theo chúng ta thực hiện lấy danh sách thiết bị sau khi đã xác thực thành công. Chúng ta cũng sẽ viết thêm một hàm để thực hiện điều đó. Đầu tiên để lấy được thiết bị chúng ta cần vào API Document để xem thông tin:
Vào Device và tìm GetDeviceList

Tương tự đối với xác thực chúng ta thực hiện tạo các biến và điền các thông tin thích hợp do Document cung cấp ( và gọi hàm đã xác thực ở trên để lấy token) :
def get_network():
url = base_url + '/dna/intent/api/v1/network-device'
header = {
'x-auth-token': get_token()
}
response = requests.get(url, headers=header, verify=False)
data = response.json()
print(json.dumps(data, indent=4))
get_network()
Kết quả trả về sau khi chạy
Như vậy chúng ta đã có thể thực hiện lấy danh sách các thiết bị từ DNA Center thông qua Python.
Sau khi hoàn thành bài lab này, bạn có thể hiểu được cách sử dụng Python để kết nối và truy xuất danh sách thiết bị từ Cisco DNA Center. Hãy tiếp tục khám phá và áp dụng những gì đã học vào thực tế!
Tiếp theo Vnpro sẽ dùng VSCode để viết chương trình python lấy danh sách thiết bị.
Đầu tiên chúng ta tạo một file mới có đuôi .py
Tiếp theo ta tạo một hàm để trả về token khi xác thực thành công.
import requests
import requests.packages.urllib3.disable_warnings
from tabulate import import tabulate
base_url = "sandboxdnac.cisco.com"
def get_token():
url = base_url + "/dna/system/api/v1/auth/token"
header = {
"Authorization": "Basic ZGVzb25AdGVzdC5jb206cGFzc3dvcmQ=",
"Content-Type": "application/json"
}
response = requests.post(url, headers=header, verify=False)
print(response)
# data = response.json()['Token']
# return data
Giải thích :
Base_url: là đường dẫn cơ sở ( trong bài lab này Vnpro đang sử dụng sanbox của Cisco)
url và header: chúng ta xem trên Document
Đối với Value trong Authorization thì chúng đã mã hóa username và password theo base 64 encode
Vnpro sử dụng username, password có sẳn trên Devnet Learning Labs bạn có thể tham khảo tại đây: https://developer.cisco.com/learning/modules/dnac-rest-apis/dnac-101-auth/get-started-with-authentication-api-postman/ )
Tiến hành chạy thử nhưng để xem được kết quả trả về chúng ta phải sử dụng thư viện json để định dạng kết quả trả về và in ra màn hình, thêm dòng lệnh sau
print(response.json())
Kết quả nhận được
- Sau đó chúng ta thực hiện trích xuất phần tử bên trong kết quả trả về là Token và return kết quả trả về:
data = response.json()['Token']
return data
get_token()
Tiếp theo chúng ta thực hiện lấy danh sách thiết bị sau khi đã xác thực thành công. Chúng ta cũng sẽ viết thêm một hàm để thực hiện điều đó. Đầu tiên để lấy được thiết bị chúng ta cần vào API Document để xem thông tin:
Vào Device và tìm GetDeviceList
Tương tự đối với xác thực chúng ta thực hiện tạo các biến và điền các thông tin thích hợp do Document cung cấp ( và gọi hàm đã xác thực ở trên để lấy token) :
def get_network():
url = base_url + '/dna/intent/api/v1/network-device'
header = {
'x-auth-token': get_token()
}
response = requests.get(url, headers=header, verify=False)
data = response.json()
print(json.dumps(data, indent=4))
get_network()
Kết quả trả về sau khi chạy
Như vậy chúng ta đã có thể thực hiện lấy danh sách các thiết bị từ DNA Center thông qua Python.
Sau khi hoàn thành bài lab này, bạn có thể hiểu được cách sử dụng Python để kết nối và truy xuất danh sách thiết bị từ Cisco DNA Center. Hãy tiếp tục khám phá và áp dụng những gì đã học vào thực tế!