Nessuna descrizione

lib.py 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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("--- call remote ---")
  51. pprint(url)
  52. pprint(payload)
  53. response = self.session.get(url, headers=headers, data=payload, verify=False)
  54. pprint(response)
  55. return response
  56. def logout(self):
  57. pprint("---- logout ---")
  58. pprint(self.session.cookies.get_dict())
  59. payload = {}
  60. headers = {
  61. 'Accept': 'application/json',
  62. }
  63. url = self.BASE_URL + "/Logoff?action=logoff"
  64. response = self.session.post(url, headers=headers, data=payload, verify=False)
  65. pprint(response)
  66. pprint(response.text)
  67. def video_tier(self):
  68. pprint("------ vdo tier -------")
  69. url = self.BASE_URL + "/Verifiers/v2/VideoTier"
  70. payload = {}
  71. headers = {
  72. 'Accept': 'application/json'
  73. }
  74. response = self.session.get(url, headers=headers, data=payload, verify=False)
  75. pprint(response.json())
  76. def test_implement(self):
  77. pprint('------- test_implement -----')
  78. url = self.BASE_URL + "/Test/v1"
  79. payload = {}
  80. headers = {
  81. 'Accept': 'application/json'
  82. }
  83. pprint(self.session.cookies.get_dict())
  84. response = self.session.get(url, headers=headers, data=payload, verify=False)
  85. pprint(response.json)
  86. def test_avl_test_types(self):
  87. pprint('------- test_avl_test_types -----')
  88. url = self.BASE_URL + "/Test/v1/TypeByName?list_all=true"
  89. payload = {}
  90. headers = {
  91. 'Accept': 'application/json'
  92. }
  93. response = self.session.get(url, headers=headers, data=payload, verify=False)
  94. print(response.json())
  95. from requests.auth import HTTPBasicAuth
  96. SLA_MAP = {
  97. "BRK":"61.7.161.157",
  98. "SRI":"61.7.161.156",
  99. "RBI":"61.7.161.158",
  100. "KKN":"61.7.161.160",
  101. "RBI BV-110":"61.7.161.162",
  102. "NSN":"61.7.161.164",
  103. "CBI":"61.7.161.163",
  104. "CMI":"61.7.161.171,61.7.161.172",
  105. "HYI":"61.7.161.180",
  106. "NMA":"61.7.161.179",
  107. "CRI":"61.7.161.178",
  108. "SNI":"61.7.161.177",
  109. "SPI":"61.7.161.175",
  110. "PTY BV-110":"61.7.161.174",
  111. "PTY":"61.7.161.159,61.7.161.161",
  112. "PLK":"61.7.161.169",
  113. "HYI _BV-100":"61.7.161.168",
  114. "CMI BV-110":"61.7.161.167",
  115. "KKN BV-110":"61.7.161.165",
  116. "UBN":"61.7.161.166",
  117. "NSN BV-110":"61.7.161.170"
  118. }
  119. class Mikrotik:
  120. # BASE_URL = "https://103.10.230.196/rest/"
  121. BASE_URL = "https://110.77.145.239/rest/"
  122. basic = HTTPBasicAuth('brix', 'Digitins_01')
  123. headers = {
  124. 'Authorization': 'Basic YWRtaW46RGlnaXRpbnNfMDE='
  125. }
  126. def __init__(self, ip=None):
  127. if ip:
  128. self.BASE_URL = f"https://{ip}/rest/"
  129. def call_remote(self, cmd, payload={}):
  130. url = self.BASE_URL + cmd
  131. pprint(url)
  132. response = requests.get(url, auth=self.basic, data=payload, verify=False, timeout=3)
  133. return response.json()
  134. if __name__ == '__main__':
  135. e = Exfo("administrator", "exf0w0rxC@t4dm!n")
  136. e.login()
  137. e.list_api()
  138. e.video_tier()
  139. e.test_implement()
  140. e.test_avl_test_types()
  141. e.logout()
  142. mkt = Mikrotik()
  143. pprint("--- ip/route ---")
  144. pprint(mkt.call_remote("ip/route"))
  145. pprint("--- ip/address -- ")
  146. pprint(mkt.call_remote("ip/address"))