def run(self): global gQueues, gQueue_ret while True: _recv_json = gQueues[self.__id].get(block=True) _recv_dict = json.loads(_recv_json) _status_url = "http://" + _recv_dict["ip"] + "/cgi-bin/status.cgi" _status_dict = hvpd_status.get_hvpd_status(_status_url) if not "Fsn" in _status_dict: _ret_dic = {"id": self.__id, 'ret': -3, "sn": _recv_dict["sn"]} gQueue_ret.put(json.dumps(_ret_dic)) continue if not "UART_VERSION" in _status_dict: _status_dict.update({"UART_VERSION": '0'}) if not "UDP_VERSION" in _status_dict: _status_dict.update({"UDP_VERSION": '0'}) if not "CAMERA_VERSION" in _status_dict: _status_dict.update({"CAMERA_VERSION": '0'}) if not "HARDVER" in _status_dict: _status_dict.update({"HARDVER": '0'}) if '2' == _status_dict["HARDVER"]: hardver = "version2" elif '3' == _status_dict["HARDVER"]: hardver = "version3" else: hardver = "version0" uart_version, udp_version, camera_version, upgrade_file = get_version_file( "hvpd/version.ini", hardver) if '' == uart_version: _ret_dic = {"id": self.__id, 'ret': -2, "sn": _recv_dict["sn"]} gQueue_ret.put(json.dumps(_ret_dic)) continue if _status_dict["CAMERA_VERSION"] == uart_version and \ _status_dict["UDP_VERSION"] == udp_version and \ _status_dict["UART_VERSION"] == camera_version: _ret_dic = {"id": self.__id, 'ret': 0, "sn": _recv_dict["sn"]} gQueue_ret.put(json.dumps(_ret_dic)) continue socket.setdefaulttimeout(2) try: _upgrade_url = "http://" + _recv_dict[ "ip"] + "/cgi-bin/upgrade.cgi" files = { "filename": ("123.zip", open("hvpd/" + upgrade_file, "rb")) } r = requests.post(url=_upgrade_url, files=files) ret = 0 except Exception, e: #print str(e) ret = str(e) _ret_dic = {"id": self.__id, 'ret': ret, "sn": _recv_dict["sn"]} gQueue_ret.put(json.dumps(_ret_dic))
"where cameraID='%s' and cmosID=%d;"%(_hvpd[10],_hvpd[0],_hvpd[1]) sqlite_cur.execute(_sql) #mylogger.debug("update timet = %d"%_hvpd[10]) continue _sql = "select * from hvpdOnline where cameraID='%s' and cmosID=%d;" % ( _hvpd[0], _hvpd[1]) sqlite_cur.execute(_sql) _NewHvpd = sqlite_cur.fetchone() if _timeNow - _NewHvpd[3] > 20 * 60: mylogger.info("sn=%s cmos %d need reboot @ %s" % (_hvpd[0], _hvpd[1], _hvpd[4])) try: _status_url = "http://" + _hvpd[ 4] + "/cgi-bin/status.cgi" socket.setdefaulttimeout(2) _status_dict = hvpd_status.get_hvpd_status(_status_url) mylogger.info("get_hvpd_status ") _ai_ip = "None" _cgi_time = "None" if None != _status_dict: if "AISERVERIP" in _status_dict: _ai_ip = _status_dict["AISERVERIP"] if "timenow" in _status_dict: _cgi_time = _status_dict["timenow"] ret_file = wtclib.http_post_file2device( "reboot_upgrade.zip", _hvpd[4], "upgrade.cgi") mylogger.info("post file") if 200 == ret_file: _post_file = "OK" else:
def get_one_hvpd_version(hvpd, cur): global mylog _timeSec = int(time.time()) try: _a1 = cur.execute("select * from HvpdVersionTableMem where cameraID='%s'"%hvpd[0]) if 0 != _a1: _hvpdVersion = cur.fetchmany(1)[0] if _timeSec - _hvpdVersion[6] < 30*60: return 0 except Exception, e: mylog.error(str(e)) return -2 requrl = "http://"+hvpd[4]+"/cgi-bin/status.cgi" dic2 = hvpd_status.get_hvpd_status(requrl) if None == dic2: mylog.debug("get None version " + requrl) return 0 if not "CAMERA_VERSION" in dic2: return 0 if not "UART_VERSION" in dic2: return 0 if not "UDP_VERSION" in dic2: return 0 if not "HARDVER" in dic2: _hard_ver = '0' else: _hard_ver = dic2['HARDVER']