Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. """
  2. Class with REST Api GET and POST libraries
  3.  
  4. Example: python rest_api_lib.py vmanage_hostname username password
  5.  
  6. PARAMETERS:
  7. vmanage_hostname : 10.51.116.34
  8. username : admin
  9. password : admin
  10.  
  11. Note: All the three arguments are manadatory
  12. """
  13. import requests
  14. import sys
  15. import json
  16. from requests.packages.urllib3.exceptions import InsecureRequestWarning
  17. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  18.  
  19. class rest_api_lib:
  20. def __init__(self, vmanage_ip, username, password):
  21. self.vmanage_ip = vmanage_ip
  22. self.session = {}
  23. self.login(self.vmanage_ip, username, password)
  24.  
  25. def login(self, vmanage_ip, username, password):
  26. """Login to vmanage"""
  27. base_url_str = 'https://%s/'%vmanage_ip
  28.  
  29. login_action = '/j_security_check'
  30.  
  31. #Format data for loginForm
  32. login_data = {'j_username' : username, 'j_password' : password}
  33.  
  34. #Url for posting login data
  35. login_url = base_url_str + login_action
  36.  
  37. url = base_url_str + login_url
  38.  
  39. sess = requests.session()
  40.  
  41. #If the vmanage has a certificate signed by a trusted authority change verify to True
  42. login_response = sess.post(url=login_url, data=login_data, verify=False)
  43.  
  44. '''if '<html>' in login_response.content:
  45. print ("Login Failed")
  46. sys.exit(0)'''
  47.  
  48. self.session[vmanage_ip] = sess
  49.  
  50. def get_request(self, mount_point):
  51. """GET request"""
  52. url = "https://%s:8443/dataservice/%s"%(self.vmanage_ip, mount_point)
  53. print (url)
  54. response = self.session[self.vmanage_ip].get(url, verify=False)
  55. data = response.content
  56. return data
  57.  
  58. def post_request(self, mount_point, payload, headers={'Content-Type': 'application/json'}):
  59. """POST request"""
  60. url = "https://%s:8443/dataservice/%s"%(self.vmanage_ip, mount_point)
  61. payload = json.dumps(payload)
  62. response = self.session[self.vmanage_ip].post(url=url, data=payload, headers=headers, verify=False)
  63. data = response.content
  64.  
  65. def main(args):
  66. if not len(args) == 3:
  67. print (__doc__)
  68. return
  69. vmanage_ip, username, password = args[0], args[1], args[2]
  70. obj = rest_api_lib(vmanage_ip, username, password)
  71. #Example request to get devices from the vmanage "url=https://vmanage.viptela.com/dataservice/device"
  72. for i in ['system/device/controllers/vedge/status', 'system/device/management/systemip']:
  73. response = obj.get_request(i)
  74. print('python dummy')
  75. print (response)
  76. #Example request to make a Post call to the vmanage "url=https://vmanage.viptela.com/dataservice/device/action/rediscover"
  77. '''payload = {"action":"rediscover","devices":[{"deviceIP":"172.16.248.105"},{"deviceIP":"172.16.248.106"}]}
  78. response = obj.post_request('device/action/rediscover', payload)
  79. print ('viptela dummy')
  80. print (response)'''
  81.  
  82.  
  83.  
  84.  
  85. if __name__ == "__main__":
  86. sys.exit(main(sys.argv[1:]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement