def main_function(): if len(sys.argv) < 2: usage() if not sys.argv[1] in \ ['haaletanud', 'talleta', 'status', 'statusnoverify']: usage() if sys.argv[1] in ['haaletanud', 'talleta'] and len(sys.argv) < 3: usage() htsd = None try: htsd = HTSAllDispatcher() if sys.argv[1] == 'haaletanud': res, _ok, _msg = htsd.haaletanud(sys.argv[2]) if not res: print 'Viga korduvhääletuse kontrollimisel' print _msg if _ok: sys.exit(0) sys.exit(1) elif sys.argv[1] == 'talleta': res, _msg = talleta(sys.argv[2], htsd) print _msg if res: sys.exit(0) sys.exit(1) elif sys.argv[1] == 'status': reg = evreg.Registry(root=evcommon.EVREG_CONFIG) status_file = reg.path(['common', evcommon.STATUSREPORT_FILE]) _ff = file(status_file, 'w') try: res = htsd.status(_ff) _ff.write(res + "\n") finally: _ff.close() elif sys.argv[1] == 'statusnoverify': reg = evreg.Registry(root=evcommon.EVREG_CONFIG) status_file = reg.path(['common', evcommon.STATUSREPORT_FILE]) _ff = file(status_file, 'w') try: res = htsd.status(_ff, False) _ff.write(res + "\n") finally: _ff.close() else: usage() except SystemExit: raise except Exception, _e: print _e sys.exit(1)
def stop_grace_period(): """Get the configured time between COMMAND_PREPARE_STOP and COMMAND_STOP.""" reg = evreg.Registry(root=evcommon.EVREG_CONFIG) try: return reg.read_integer_value(AUTOCMD_KEY, "grace").value except (IOError, LookupError): return None
def _signal_ui(): try: reg = evreg.Registry(root=evcommon.EVREG_CONFIG) pid = reg.read_integer_value(REFRESH_PID_KEY, REFRESH_PID_VALUE).value except IOError: pass # No UI PID found. else: os.kill(pid, signal.SIGUSR1) # Found UI PID, signal to refresh.
def __init__(self): # Siin hoitakse mäppuvana koodid ja stringid. self.msg_strings = {} evreg.create_registry(evcommon.EVREG_CONFIG) self.reg = evreg.Registry(root=evcommon.EVREG_CONFIG) try: self._load_strings() except: pass
def scheduled(cmd): reg = evreg.Registry(root=evcommon.EVREG_CONFIG) if not reg.check(AUTOCMD_KEY): return None try: job = reg.read_integer_value(AUTOCMD_KEY, _job_value(cmd)).value timestr = reg.read_string_value(AUTOCMD_KEY, _time_value(cmd)).value except (IOError, LookupError): return None return job, timestr
def _clean_reg(cmd): reg = evreg.Registry(root=evcommon.EVREG_CONFIG) try: reg.delete_value(AUTOCMD_KEY, _job_value(cmd)) except OSError: pass try: reg.delete_value(AUTOCMD_KEY, _time_value(cmd)) except OSError: pass
def _signal_ui(): print "Signaling UI to refresh...", try: reg = evreg.Registry(root=evcommon.EVREG_CONFIG) pid = reg.read_integer_value(REFRESH_PID_KEY, REFRESH_PID_VALUE).value except IOError: print "No UI PID found." else: print "Found UI with PID %i" % pid os.kill(pid, signal.SIGUSR1)
def schedule(cmd, tstruct): if scheduled(cmd): raise Exception, "Command already scheduled" timestr = time.strftime(TIME_FORMAT, tstruct) job = _at(timestr, "python -m %s %i %s" % (MODULE_AUTOCMD, EXPECTED[cmd], cmd)) if not job: print ERROR_SCHEDULE return reg = evreg.Registry(root=evcommon.EVREG_CONFIG) reg.ensure_key(AUTOCMD_KEY) reg.create_integer_value(AUTOCMD_KEY, _job_value(cmd), job) reg.create_string_value(AUTOCMD_KEY, _time_value(cmd), timestr)
def new_question(self, el_id, el_type, el_desc): if formatutil.is_valimiste_identifikaator(el_id): key = ['questions', el_id, 'common'] self.reg.ensure_key(key) self.reg.create_string_value(key, ELECTION_ID, el_id) quest = question.Question(el_id, None, \ evreg.Registry(root=self.reg.path(['questions', el_id]))) g_common_keys = ['common/rights'] quest.create_keys(g_common_keys) quest.set_type(int(el_type)) quest.set_descr(el_desc) return quest else: raise Exception('Vigase formaadiga valimiste identifikaator')
def write_pid(): reg = evreg.Registry(root=evcommon.EVREG_CONFIG) reg.ensure_key(autocmd.REFRESH_PID_KEY) try: pid = reg.read_integer_value(autocmd.REFRESH_PID_KEY, autocmd.REFRESH_PID_VALUE) except (IOError, LookupError): pid = None # If a PID exists and the user does not want to continue, return None. if pid and not uiutil.ask_yes_no(MESSAGE_PID_EXISTS, uiutil.ANSWER_NO): return None return reg.create_integer_value(autocmd.REFRESH_PID_KEY, autocmd.REFRESH_PID_VALUE, os.getpid())
def __init__(self, elid, tmpdir): self._elid = elid evlog.AppLog().set_app('HLR', self._elid) self._reg = Election().get_sub_reg(self._elid) self._log4 = evlog.Logger('log4') self._log5 = evlog.Logger('log5') self._log4.set_format(evlog.EvLogFormat()) self._log5.set_format(evlog.EvLogFormat()) self._log4.set_logs(self._reg.path(['common', 'log4'])) self._log5.set_logs(self._reg.path(['common', 'log5'])) tmpreg = evreg.Registry(root=tmpdir) tmpreg.ensure_key([]) tmpreg.delete_sub_keys([]) self.output_file = tmpreg.path(['decrypted_votes']) self.__cnt = ChoicesCounter()
def schedule(cmd, tstruct): sched = scheduled(cmd) if sched: job, timestr = sched evlog.log_error(LOG_ERROR_SCHEDULED % (cmd, job, timestr)) print UI_ERROR_SCHEDULED % (cmd, job, timestr) return timestr = time.strftime(TIME_FORMAT, tstruct) job = _at(timestr, "python -m %s %i %s" % (MODULE_AUTOCMD, EXPECTED[cmd], cmd)) if not job: evlog.log_error(LOG_ERROR_SCHEDULE % cmd) print UI_ERROR_SCHEDULE % cmd return reg = evreg.Registry(root=evcommon.EVREG_CONFIG) reg.ensure_key(AUTOCMD_KEY) reg.create_integer_value(AUTOCMD_KEY, _job_value(cmd), job) reg.create_string_value(AUTOCMD_KEY, _time_value(cmd), timestr) evlog.log(LOG_SCHEDULED % (cmd, job, timestr)) print UI_SCHEDULED % (cmd, job, timestr)
def set_stop_grace_period(grace): """Configure the time between COMMAND_PREPARE_STOP and COMMAND_STOP.""" reg = evreg.Registry(root=evcommon.EVREG_CONFIG) reg.ensure_key(AUTOCMD_KEY) reg.create_integer_value(AUTOCMD_KEY, "grace", grace)
def __init__(self): self.__reg = evreg.Registry(root=evcommon.EVREG_CONFIG)
def get_sub_reg(self, elid, sub=['']): # pylint: disable=W0102 if self.has_id(elid): return \ evreg.Registry(root=self.reg.path(['questions', elid] + sub)) raise \ Exception('Ei ole lubatud valimiste identifikaator \"%s\"' % elid)