Bez popisu

lib.py 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. import requests
  2. from pprint import pprint
  3. class Exfo:
  4. BASE_URL = "https://159.192.8.11/API/REST"
  5. BASE_IP = "https://159.192.8.11"
  6. def __init__(self, user, passwd):
  7. self.user = user
  8. self.passwd = passwd
  9. self.cookies = None
  10. self.session = requests.Session()
  11. def login(self):
  12. pprint("--- login ---")
  13. payload = f'uname={self.user}&pword={self.passwd}&format=json&encryptpword=0'
  14. headers = {
  15. 'Content-Type': 'application/x-www-form-urlencoded',
  16. 'Accept': 'application/x-www-form-urlencoded',
  17. }
  18. url = self.BASE_URL + "/Login"
  19. response = self.session.post(url, headers=headers, data=payload, verify=False)
  20. pprint(self.session.cookies.get_dict())
  21. pprint(response.text)
  22. pprint(response.cookies)
  23. #self.cookies = response.cookies
  24. def list_api(self):
  25. pprint("---- list_api ---")
  26. payload = {}
  27. headers = {
  28. 'Accept': 'application/json'
  29. }
  30. url = self.BASE_URL + "/"
  31. response = self.session.get(url, headers=headers, data=payload, verify=False)
  32. pprint(response.json())
  33. return response
  34. def call_api(self, service, payload={}):
  35. headers = {
  36. 'Accept': 'application/json'
  37. }
  38. if service == "sla":
  39. ep = "/SLAs/v1/SLA?size=0"
  40. url = self.BASE_URL + ep
  41. response = self.session.get(url, headers=headers, data=payload, verify=False)
  42. pprint(response.json())
  43. return response
  44. def call_remote_api(self, ep, payload={}):
  45. headers = {
  46. 'Accept': 'application/json'
  47. }
  48. url = self.BASE_IP + ep
  49. pprint(url)
  50. response = self.session.get(url, headers=headers, data=payload, verify=False)
  51. pprint(response)
  52. return response
  53. def logout(self):
  54. pprint("---- logout ---")
  55. pprint(self.session.cookies.get_dict())
  56. payload = {}
  57. headers = {
  58. 'Accept': 'application/json',
  59. }
  60. url = self.BASE_URL + "/Logoff?action=logoff"
  61. response = self.session.post(url, headers=headers, data=payload, verify=False)
  62. pprint(response)
  63. pprint(response.text)
  64. def video_tier(self):
  65. pprint("------ vdo tier -------")
  66. url = self.BASE_URL + "/Verifiers/v2/VideoTier"
  67. payload = {}
  68. headers = {
  69. 'Accept': 'application/json'
  70. }
  71. response = self.session.get(url, headers=headers, data=payload, verify=False)
  72. pprint(response.json())
  73. def test_implement(self):
  74. pprint('------- test_implement -----')
  75. url = self.BASE_URL + "/Test/v1"
  76. payload = {}
  77. headers = {
  78. 'Accept': 'application/json'
  79. }
  80. pprint(self.session.cookies.get_dict())
  81. response = self.session.get(url, headers=headers, data=payload, verify=False)
  82. pprint(response.json)
  83. def test_avl_test_types(self):
  84. pprint('------- test_avl_test_types -----')
  85. url = self.BASE_URL + "/Test/v1/TypeByName?list_all=true"
  86. payload = {}
  87. headers = {
  88. 'Accept': 'application/json'
  89. }
  90. response = self.session.get(url, headers=headers, data=payload, verify=False)
  91. print(response.json())
  92. from requests.auth import HTTPBasicAuth
  93. class Mikrotik:
  94. BASE_URL = "https://110.77.145.239/rest/"
  95. basic = HTTPBasicAuth('brix', 'Digitins_01')
  96. headers = {
  97. 'Authorization': 'Basic YWRtaW46RGlnaXRpbnNfMDE='
  98. }
  99. def call_remote(self, cmd, payload={}):
  100. url = self.BASE_URL + cmd
  101. pprint(url)
  102. response = requests.get(url, auth=self.basic, data=payload, verify=False)
  103. return response.json()
  104. if __name__ == '__main__':
  105. e = Exfo("administrator", "exf0w0rxC@t4dm!n")
  106. e.login()
  107. e.list_api()
  108. e.video_tier()
  109. e.test_implement()
  110. e.test_avl_test_types()
  111. e.logout()
  112. mkt = Mikrotik()
  113. pprint("--- ip/route ---")
  114. pprint(mkt.call_remote("ip/route"))
  115. pprint("--- ip/address -- ")
  116. pprint(mkt.call_remote("ip/address"))