Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Sử dụng python lấy danh sách thiết bị từ network controller (dna center) - phần 2

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sử dụng python lấy danh sách thiết bị từ network controller (dna center) - phần 2

    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

    • 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ề:
    print(response.json())
    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ế!


    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog
Working...