def check_voters_file(self): # HES & HTS if not checkfile(self.voter_f): return False print "Kontrollin valijate faili kontrollsummat" if not ksum.check(self.voter_f): print "Valijate faili kontrollsumma ei klapi" return False self._vl = inputlists.VotersList(self.root, self.reg, self._ed) self._vl.attach_elid(self.elid) self._vl.attach_logger(AppLog()) if not self._vl.check_format(self.voter_f, \ 'Kontrollin valijate nimekirja: '): print "Valijate nimekiri ei vasta nõuetele" return False if not self._vl.algne: print "Valijate nimekirja tüüp ei ole 'algne'" return False print "Valijate nimekiri OK" return True
def main_function(): if len(sys.argv) != 3: usage() el_id = sys.argv[1] _if = sys.argv[2] if not check_file(_if): print "Faili " + _if + " ei eksisteeri" sys.exit(1) if not ksum.has(_if): print "Faili " + ksum.filename(_if) + " ei eksisteeri" sys.exit(1) if not ksum.check(_if): print "Kontrollsumma ei klapi" sys.exit(1) reg = Election().get_sub_reg(el_id) reg.ensure_key(['hlr', 'input']) dst = reg.path(['hlr', 'input', 'votes']) os.system("cp " + _if + " " + dst) os.system("cp " + ksum.filename(_if) + " " + ksum.filename(dst)) Election().config_hlr_input_elid_done(el_id)
def main_function(): if len(sys.argv) != 3: usage() el_id = sys.argv[1] _if = sys.argv[2] if not ksum.check(_if, True): print "Kontrollsumma ei klapi" sys.exit(1) reg = Election().get_sub_reg(el_id) reg.ensure_key(['hlr', 'input']) dst = reg.path(['hlr', 'input', 'votes']) shutil.copy(_if, dst) ksum.store(dst) Election().config_hlr_input_elid_done(el_id)
def apply_changes(elid, voter_f): """Muudatuste rakendamine""" vl = None tokend = {} def check_state(): if not ElectionState().can_apply_changes(): sys.stderr.write('Selles hääletuse faasis (%s) pole võimalik '\ 'nimekirju uuendada\n' \ % ElectionState().str()) sys.exit(1) try: buflog = None if Election().is_hes(): root = 'hes' elif Election().is_hts(): root = 'hts' else: raise Exception('Vigane serveritüüp') buflog = BufferedLog(Election(). \ get_path(evcommon.VOTER_LIST_LOG_FILE), \ 'APPLY-CHANGES', elid) check_state() reg = Election().get_sub_reg(elid) ed = inputlists.Districts() ed.load(root, reg) vl = inputlists.VotersList(root, reg, ed) vl.attach_elid(elid) vl.ignore_errors() evlog.AppLog().set_app('APPLY-CHANGES') vl.attach_logger(evlog.AppLog()) print "Kontrollin valijate faili kontrollsummat" if not ksum.check(voter_f): raise Exception('Valijate faili kontrollsumma ei klapi\n') voters_file_sha256 = ksum.compute(voter_f) if Election().get_root_reg().check(\ ['common', 'voters_file_hashes', voters_file_sha256]): raise Exception('Kontrollsummaga %s fail on juba laetud\n' \ % voters_file_sha256) if not vl.check_format(voter_f, 'Kontrollin valijate nimekirja: '): print "Valijate nimekiri ei vasta vormingunõuetele" sys.exit(1) else: print 'Valijate nimekiri OK' vl.attach_logger(buflog) if not vl.check_muudatus( \ 'Kontrollin muudatuste kooskõlalisust: ', \ ElectionState().election_on(), tokend): print "Sisend ei ole kooskõlas olemasoleva konfiguratsiooniga" else: print "Muudatuste kooskõlalisus OK" _apply = 1 if not buflog.empty(): print 'Muudatuste sisselaadimisel esines vigu' buflog.output_errors() _apply = uiutil.ask_yes_no(\ 'Kas rakendan kooskõlalised muudatused?') if not _apply: buflog.log_error('Muudatusi ei rakendatud') print 'Muudatusi ei rakendatud' else: if ElectionState().election_on() and root == 'hts': create_tokend_file(tokend, reg, elid) a_count, d_count = vl.create('Paigaldan valijaid: ') print 'Teostasin %d lisamist ja %d eemaldamist' \ % (a_count, d_count) Election().copy_voters_file(elid, root, voter_f) print 'Muudatuste rakendamine lõppes edukalt' except SystemExit: sys.stderr.write('Viga muudatuste laadimisel\n') if buflog: buflog.output_errors() raise except Exception, ex: sys.stderr.write('Viga muudatuste laadimisel: ' + str(ex) + '\n') if buflog: buflog.output_errors() sys.exit(1)