SDWan:api接口导引

import requests
import json


class SDWanRestAPI(object):
    def __init__(self, v_manage_ip, username, password):
        self.v_manage_ip = v_manage_ip
        self.cookies = None
        self.login(self.v_manage_ip, username, password)

    def login(self, v_manage_ip, username, password):
        """Login to v_manage_ip"""
        base_url_str = f'https://{v_manage_ip}/'
        login_action = '/j_security_check'
        # Format data for loginForm
        login_data = {'j_username': username, 'j_password': password}

        # Url for posting login data
        login_url = base_url_str + login_action

        # If the vmanage has a certificate signed by a trusted authority change verify to True
        session = requests.session()
        login_response = session.post(url=login_url, data=login_data, verify=False)
        self.cookies = login_response.cookies

        if '<html>' in login_response.text:
            raise Exception('Login failed')

    def get_request(self, mount_point):
        """GET request"""
        url = f"https://{self.v_manage_ip}:8443/dataservice/{mount_point}"
        return requests.get(url, verify=False, cookies=self.cookies)

    def post_request(self, mount_point, payload, headers=None):
        """
        :param mount_point:
        :param payload:
        :param headers:
        :return:
        """
        """POST request"""
        if headers is None:
            headers = {'Content-Type': 'application/json'}
        url = f"https://{self.v_manage_ip}:8443/dataservice/{mount_point}"
        payload = json.dumps(payload)
        return requests.post(url=url, data=payload, headers=headers, verify=False, cookies=self.cookies)

 

posted @ 2021-01-06 17:32  士为知己  阅读(117)  评论(0)    收藏  举报