Açıklama Yok

lib.py 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. SLA_MAP = {
  95. "BRK":"61.7.161.157",
  96. "SRI":"61.7.161.156",
  97. "RBI":"61.7.161.158",
  98. "KKN":"61.7.161.160",
  99. "RBI BV-110":"61.7.161.162",
  100. "NSN":"61.7.161.164",
  101. "CBI":"61.7.161.163",
  102. "CMI":"61.7.161.171",
  103. "HYI":"61.7.161.180",
  104. "NMA":"61.7.161.179",
  105. "CRI":"61.7.161.178",
  106. "SNI":"61.7.161.177",
  107. "SPI":"61.7.161.175",
  108. "PTY BV-110":"61.7.161.174",
  109. "PTY":"61.7.161.159",
  110. "PTY":"61.7.161.161",
  111. "PLK":"61.7.161.169",
  112. "HYI _BV-100":"61.7.161.168",
  113. "CMI BV-110":"61.7.161.167",
  114. "KKN BV-110":"61.7.161.165",
  115. "UBN":"61.7.161.166",
  116. "NSN BV-110":"61.7.161.170"
  117. }
  118. class Mikrotik:
  119. # BASE_URL = "https://103.10.230.196/rest/"
  120. BASE_URL = "https://110.77.145.239/rest/"
  121. basic = HTTPBasicAuth('brix', 'Digitins_01')
  122. headers = {
  123. 'Authorization': 'Basic YWRtaW46RGlnaXRpbnNfMDE='
  124. }
  125. def call_remote(self, cmd, payload={}):
  126. url = self.BASE_URL + cmd
  127. pprint(url)
  128. response = requests.get(url, auth=self.basic, data=payload, verify=False)
  129. return response.json()
  130. if __name__ == '__main__':
  131. e = Exfo("administrator", "exf0w0rxC@t4dm!n")
  132. e.login()
  133. e.list_api()
  134. e.video_tier()
  135. e.test_implement()
  136. e.test_avl_test_types()
  137. e.logout()
  138. mkt = Mikrotik()
  139. pprint("--- ip/route ---")
  140. pprint(mkt.call_remote("ip/route"))
  141. pprint("--- ip/address -- ")
  142. pprint(mkt.call_remote("ip/address"))