def talleta_haal(self, **args): haale_rasi = ksum.votehash(args['vote']) user_key = htscommon.get_user_key(args['signercode']) self._reg.ensure_key(user_key) voter = args['valija'] vote_file = htscommon.valid_votefile_name(args['timestamp']) user_key.append(vote_file) filename = self._reg.path(user_key) frm = evlog.EvLogFormat() logline = frm.logstring( tyyp=0, haal_rasi=haale_rasi, timestamp=args['timestamp'], jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=args['signercode'], nimi=voter['nimi'], reanumber=voter['reanumber']) outdata = StringIO.StringIO() outzip = zipfile.ZipFile(outdata, 'w') outzip.writestr(htscommon.ZIP_BDOCFILE, args['signedvote']) outzip.writestr(htscommon.ZIP_LOGFILE, logline) outzip.close() self._write_atomic(filename, outdata.getvalue())
def talleta_haal(self, **args): # Hääle tühistamisel on põhjuseks # tühistamise põhjustanud hääle räsi haale_rasi = ksum.votehash(args['vote']) self.__tyhista_korduv_haal(args['signercode'], haale_rasi) user_key = htscommon.get_user_key(args['signercode']) self._reg.ensure_key(user_key) voter = args['valija'] vote_file = htscommon.valid_votefile_name(args['timestamp'], voter) user_key.append(vote_file) filename = self._reg.path(user_key) try: _f = file(filename, 'w') fcntl.lockf(_f, fcntl.LOCK_EX) _f.write(args['signedvote']) _f.flush() _f.close() except Exception, (errno, errstr): evlog.log_error("Faili '%s' kirjutamine nurjus" % filename) raise Exception(errno, errstr)