Example #1
0
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)
Example #2
0
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
Example #3
0
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.
Example #4
0
 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
Example #5
0
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
Example #6
0
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
Example #7
0
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)
Example #8
0
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)
Example #9
0
 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')
Example #10
0
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())
Example #11
0
    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()
Example #12
0
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)
Example #13
0
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)
Example #14
0
 def __init__(self):
     self.__reg = evreg.Registry(root=evcommon.EVREG_CONFIG)
Example #15
0
 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)