Няма описание

lib.py 4.2KB

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