XML_FILE_NAME = "/usr/local/ban-sites/request.xml" P7S_FILE_NAME = "/usr/local/ban-sites/request.xml.sig" ts="" #Если файлик ранее выгружался, то пробуем получить из него данные try: ts=ElementTree().parse("/usr/local/ban-sites/dump.xml").attrib['updateTime'] dt = datetime.strptime(ts[:19],'%Y-%m-%dT%H:%M:%S') fromFile=int(time.mktime(dt.timetuple())) except: fromFile=0 opener=ZapretInfo() try: lastDumpDate=opener.getLastDumpDate() # print 'lastDumpDate: %s' % (lastDumpDate) # print 'fromFileDate: %s' % (fromFile) except: exit(0) #Проверяем, изменился ли файлик if lastDumpDate/1000<>fromFile: ts=ElementTree().parse("/usr/local/ban-sites/dump.xml").attrib['updateTime'] # print 'Base is outdated. Downloading new version...' # print 'Current base version: ' + ts #Файлик изменился. Отправляем запрос на выгрузку try: request=opener.sendRequest(XML_FILE_NAME,P7S_FILE_NAME) except: exit(0) #Проверяем, принят ли запрос к обработке
def run(self): while 1: rkndump = ZapretInfo() DumpDate = rkndump.getLastDumpDate() # Dump timestamp in msec DumpDateUrgently = rkndump.getLastDumpDateEx() # Urgently Dump timestamp im msec WebServiceVersion = rkndump.getWebServiceVersion() # Web-service string "X.Y" DumpFormatVersion = rkndump.getDumpFormatVersion() # Dump format version string "X.Y" DocVersion = rkndump.getDocVersion() # Doc version string "X.Y" localdump = DumpFile(DIR); LocalDumpDate = localdump.getUpdateTime() LocalDumpDateUrgently = localdump.getUpdateTimeUrgently() deltaDumpDate = DumpDate/1000 - LocalDumpDate deltaDumpDateUrgently = DumpDateUrgently/1000 - LocalDumpDateUrgently self.zapretlogger.info("Dump date:\t\t%s [local: %s, deltas: %s ]" % (datetime.datetime.fromtimestamp(DumpDate/1000), datetime.datetime.fromtimestamp(LocalDumpDate), sec2hr(deltaDumpDate) )) self.zapretlogger.info("Dump date urgently:\t%s [local: %s, deltas: %s ]" % (datetime.datetime.fromtimestamp(DumpDateUrgently/1000), datetime.datetime.fromtimestamp(LocalDumpDateUrgently), sec2hr(deltaDumpDateUrgently) )) self.zapretlogger.info("Web Service Version:\t\t%s [local: %s]" % (WebServiceVersion, localdump.getWebServiceVersion())) self.zapretlogger.info("Dump Format Version:\t\t%s [local: %s]" % (DumpFormatVersion, localdump.getDumpFormatVersion())) self.zapretlogger.info("Operator's Doc Version:\t%s [local: %s]" % (DocVersion, localdump.getDocVersion()) ) if (deltaDumpDateUrgently <> 0): self.zapretlogger.info("Need urgently update") os.system("/home/cmd4jazz/roskomnadzor/download.sh") if (deltaDumpDate >= 24*60*60 ): self.zapretlogger.info("Need daily update") os.system("/home/cmd4jazz/roskomnadzor/download.sh") if (WebServiceVersion > localdump.getWebServiceVersion()): self.zapretlogger.info("New Version of Web Service") localdump.setWebServiceVersion(WebServiceVersion) if (DumpFormatVersion > localdump.getDumpFormatVersion()): self.zapretlogger.info("New Version of Dump Format") localdump.setDumpFormatVersion(DumpFormatVersion) if (DocVersion > localdump.getDocVersion()): self.zapretlogger.info("New Version of Operator's Doc Version") localdump.setDocVersion(DocVersion) os.system("wget -c http://vigruzki.rkn.gov.ru/docs/description_for_operators_actual.pdf -O /home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".pdf" " -o /home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".log") message = "New documentation for RosKomNadzor Servise is available ( version "+DocVersion+")\nHave fun!\n---\nrkn-support"; mailnotify.sendemail ("New version of RKN service", message, "/home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".pdf") time.sleep (self.refresh*60) self.zapretlogger.info ("="*100)
XML_FILE_NAME = "req.xml" P7S_FILE_NAME = "req.xml.p7s" #Если файлик ранее выгружался, то пробуем получить из него данные try: ts=ElementTree().parse("dump.xml").attrib['updateTime'] dt = datetime.strptime(ts[:19],'%Y-%m-%dT%H:%M:%S') fromFile=int(time.mktime(dt.timetuple())) except: fromFile=0 opener=ZapretInfo() #Проверяем, изменился ли файлик if opener.getLastDumpDate()/1000<>fromFile: #Файлик изменился. Отправляем запрос на выгрузку request=opener.sendRequest(XML_FILE_NAME,P7S_FILE_NAME) #Проверяем, принят ли запрос к обработке if request['result']: #Запрос не принят, получен код code=request['code'] print 'Got code %s' % (code) print 'Trying to get result...' while 1: #Пытаемся получить архив по коду request=opener.getResult(code) if request['result']: #Архив получен, скачиваем его и распаковываем print 'Got it!' file = open('result.zip', "wb")
XML_FILE_NAME = "req.xml" P7S_FILE_NAME = "req.xml.p7s" #Если файлик ранее выгружался, то пробуем получить из него данные try: ts = ElementTree().parse("dump.xml").attrib['updateTime'] dt = datetime.strptime(ts[:19], '%Y-%m-%dT%H:%M:%S') fromFile = int(time.mktime(dt.timetuple())) except: fromFile = 0 opener = ZapretInfo() #Проверяем, изменился ли файлик if opener.getLastDumpDate() / 1000 <> fromFile: #Файлик изменился. Отправляем запрос на выгрузку request = opener.sendRequest(XML_FILE_NAME, P7S_FILE_NAME) #Проверяем, принят ли запрос к обработке if request['result']: #Запрос не принят, получен код code = request['code'] print 'Got code %s' % (code) print 'Trying to get result...' while 1: #Пытаемся получить архив по коду request = opener.getResult(code) if request['result']: #Архив получен, скачиваем его и распаковываем print 'Got it!' file = open('result.zip', "wb")
#Если файлик ранее выгружался, то пробуем получить из него данные try: ts=ElementTree().parse(DIR+"dump.xml").attrib['updateTime'] dt = datetime.strptime(ts[:19],'%Y-%m-%dT%H:%M:%S') fromFile=int(time.mktime(dt.timetuple()))+3 except: fromFile=0 opener=ZapretInfo() #print opener.sendRequest(XML_FILE_NAME,P7S_FILE_NAME) #Проверяем, изменился ли файлик fromServer = opener.getLastDumpDate() logger = open (DIR+"log.txt", 'a'); logger.write( 'Opener get time %d\n' % (fromServer/1000) ) logger.write( 'File get a time %d\n' % (fromFile)) if opener.getLastDumpDate()/1000 <> fromFile: #Файлик изменился.Создаем XML-запрос. request = ET.Element('request') requestTime = ET.SubElement(request, 'requestTime') requestTime.text =datetime.now(pytz.utc).isoformat() operatorName = ET.SubElement(request, 'operatorName') operatorName.text = OPERATOR_NAME inn = ET.SubElement(request, 'inn') inn.text = OPERATOR_INN ogrn = ET.SubElement(request, 'ogrn') ogrn.text = OPERATOR_OGRN email = ET.SubElement(request, 'email')
def run(self): checker = rknChecker(self.settings) logging.info ("Last dump have a time: %s", checker.getDumpDate()); request = rknRequestXML(checker.OPERATOR_NAME, checker.OPERATOR_INN, checker.OPERATOR_OGRN, checker.OPERATOR_EMAIL, 'Europe/Moscow' ) request.generate(self.workdir+'request.xml'); while True: rkndump = ZapretInfo() DumpDate = rkndump.getLastDumpDate() # Dump timestamp in msec DumpDateUrgently = rkndump.getLastDumpDateEx() # Urgently Dump timestamp im msec WebServiceVersion = rkndump.getWebServiceVersion() # Web-service string "X.Y" DumpFormatVersion = rkndump.getDumpFormatVersion() # Dump format version string "X.Y" DocVersion = rkndump.getDocVersion() # Doc version string "X.Y" localdump = rknDump(self.workdir); LocalDumpDate = localdump.getUpdateTime() LocalDumpDateUrgently = localdump.getUpdateTimeUrgently() deltaDumpDate = DumpDate/1000 - LocalDumpDate deltaDumpDateUrgently = DumpDateUrgently/1000 - LocalDumpDateUrgently self.rknlog.info("Dump date:\t\t%s [local: %s, deltas: %s ]" % (datetime.datetime.fromtimestamp(DumpDate/1000), datetime.datetime.fromtimestamp(LocalDumpDate), sec2hr(deltaDumpDate) )) self.rknlog.info("Dump date urgently:\t%s [local: %s, deltas: %s ]" % (datetime.datetime.fromtimestamp(DumpDateUrgently/1000), datetime.datetime.fromtimestamp(LocalDumpDateUrgently), sec2hr(deltaDumpDateUrgently) )) self.rknlog.info("Web Service Version:\t\t%s [local: %s]" % (WebServiceVersion, localdump.getWebServiceVersion())) self.rknlog.info("Dump Format Version:\t\t%s [local: %s]" % (DumpFormatVersion, localdump.getDumpFormatVersion())) self.rknlog.info("Operator's Doc Version:\t%s [local: %s]" % (DocVersion, localdump.getDocVersion()) ) #if (deltaDumpDateUrgently <> 0): self.rknlog.info("Need urgently update") # os.system("/home/cmd4jazz/roskomnadzor/download.sh") #if (deltaDumpDate >= 24*60*60 ): self.rknlog.info("Need daily update") #os.system("/home/cmd4jazz/roskomnadzor/download.sh") #if (WebServiceVersion > localdump.getWebServiceVersion()): self.rknlog.info("New Version of Web Service") #localdump.setWebServiceVersion(WebServiceVersion) #if (DumpFormatVersion > localdump.getDumpFormatVersion()): self.rknlog.info("New Version of Dump Format") #localdump.setDumpFormatVersion(DumpFormatVersion) #if (DocVersion > localdump.getDocVersion()): self.rknlog.info("New Version of Operator's Doc Version") #localdump.setDocVersion(DocVersion) #os.system("wget -c http://vigruzki.rkn.gov.ru/docs/description_for_operators_actual.pdf -O /home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".pdf" # " -o /home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".log") #message = "New documentation for RosKomNadzor Servise is available ( version "+DocVersion+")\nHave fun!\n---\nrkn-support"; #mailnotify.sendemail ("New version of RKN service", message, "/home/cmd4jazz/roskomnadzor/dump/doc-"+DocVersion+".pdf") time.sleep (self.refresh*60) self.rknlog.info ("="*100)