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)