settings.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import requests
  2. import json
  3. def prepare(settings):
  4. if settings["dhcp"] == 1.000000000:
  5. settings["dhcp"] = "on"
  6. if settings["dhcp"] == 0:
  7. settings["dhcp"] = "off"
  8. if settings["pgw_en"] == True:
  9. settings["pgw_en"] = "on"
  10. elif settings["pgw_en"] == False:
  11. settings["pgw_en"] = "off"
  12. print settings
  13. post_data = "&read_community=" + settings["read_community"] + \
  14. "&write_community=" + settings["write_community"] + \
  15. "&managerIP=" + settings["managerIP"] + \
  16. "&managerIP2=" + settings["managerIP2"] + \
  17. "&managerIP3=" + settings["managerIP3"] + \
  18. "&managerIP4=" + settings["managerIP4"] + \
  19. "&managerIP5=" + settings["managerIP5"] + \
  20. "&di1=" + settings["di1"] + \
  21. "&di_name1=" + settings["di_name1"] + \
  22. "&di2=" + settings["di2"] + \
  23. "&di_name2=" + settings["di_name2"] + \
  24. "&type_ts1=" + str(settings["type_ts1"]) + \
  25. "&type_ts2=" + str(settings["type_ts2"]) + \
  26. "&ipaddr=" + settings["ipaddr"] + \
  27. "&gw=" + settings["gw"] + \
  28. "&mask=" + settings["mask"] + \
  29. "&dhcp=" + settings["dhcp"] + \
  30. "&pgw_en=" + settings["pgw_en"] + \
  31. "&pgw_port=" + settings["pgw_port"] + \
  32. "&pgw_baud=" + str(settings["pgw_baud"]) + \
  33. "&pgw_par=" + str(settings["pgw_par"]) + \
  34. "&pgw_ndata=" + str(settings["pgw_ndata"]) + \
  35. "&pgw_nstop=" + str(settings["pgw_nstop"]) + \
  36. "&ntp=" + settings["ntp"] + \
  37. "&ntpservip=" + settings["ntpservip"] + \
  38. "&ups_cell_min=" + settings["ups_cell_min"] + \
  39. "&ups_cell_max=" + settings["ups_cell_max"] + \
  40. "&mainvolt_high=" + settings["mainvolt_high"] + \
  41. "&mainvolt_low=" + settings["mainvolt_low"] + \
  42. "&mainvolt_hist=" + settings["mainvolt_hist"] + \
  43. "&temp_high=" + settings["temp_high"] + \
  44. "&temp_low=" + settings["temp_low"] + \
  45. "&temp_hist=" + settings["temp_hist"] + \
  46. "&case_temp_high=" + settings["case_temp_high"] + \
  47. "&case_temp_low=" + settings["case_temp_low"] + \
  48. "&case_temp_hist=" + settings["case_temp_hist"]
  49. return post_data
  50. def get(ip, session):
  51. r = session.get("http://" + ip + "/settings.cgi", cookies = session.cookies, timeout = 1)
  52. if r.status_code != 200:
  53. return None
  54. try:
  55. return r.json()
  56. except:
  57. return None
  58. def post(ip, session, post_data):
  59. r = session.post("http://" + ip + "/settings.cgi", cookies = session.cookies, data=post_data, timeout = 1)
  60. if r.status_code != 200:
  61. return False
  62. return True
  63. def login(ip):
  64. s = requests.Session()
  65. data = {"login":"admin", "password":"12345"}
  66. r = s.post("http://" + ip + "/login.cgi", data)
  67. if r.status_code != 200:
  68. return None
  69. return s
  70. def change(ip, session, baudrate = None, bytesize = None, parity = None, stopbits = None, enable = True):
  71. params = get(ip, session)
  72. if params == None:
  73. return False
  74. #Enable by default
  75. params["pgw_en"] = enable
  76. params["pgw_baud"] = baudrate
  77. params["pgw_ndata"] = bytesize
  78. if parity == 'N':
  79. params["pgw_par"] = "no"
  80. if parity == 'E':
  81. params["pgw_par"] = "ev"
  82. if parity == 'O':
  83. params["pgw_par"] = "od"
  84. params["pgw_nstop"] = stopbits
  85. post(ip, session, prepare(params))
  86. return True