Example #1
0
def do_replace_candidates(elid):
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    if not uiutil.ask_yes_no("Valikute nimekirja väljavahetamisel " + \
            "kustutakse eelmine nimekiri.\nKas jätkan"):
        return
    elec_f = uiutil.ask_file_name_from_cd("Sisesta valikute-faili asukoht")
    cmd = "%s %s %s" % (SCRIPT_REPLACE_CANDIDATES, elid, elec_f)
    os.system(cmd)
Example #2
0
def do_replace_candidates(elid):
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    if not uiutil.ask_yes_no("Valikute nimekirja väljavahetamisel " + \
            "kustutakse eelmine nimekiri.\nKas jätkan"):
        return
    elec_f = uiutil.ask_file_name_from_cd("Sisesta valikute-faili asukoht")
    cmd = "%s %s %s" % (SCRIPT_REPLACE_CANDIDATES, elid, elec_f)
    os.system(cmd)
Example #3
0
def do_restore_init_status():
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return

    if not uiutil.ask_yes_no("Initsialiseerimisel kustutatakse " + \
        "antud hääled.\nKas jätkan"):
        return

    Election().restore_init_status()
    ElectionState().init()
Example #4
0
def do_restore_init_status():
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return

    if not uiutil.ask_yes_no("Initsialiseerimisel kustutatakse " + \
        "antud hääled.\nKas jätkan"):
        return

    Election().restore_init_status()
    ElectionState().init()
Example #5
0
def do_rem_rights(elid):
    ik = uiutil.ask_id_num()
    right_str = ""
    if Election().is_hes() or Election().is_hlr():
        right = uiutil.ask_int(
            "Võimalikud volitused:\n " + "\t(1) Valikute nimekirja laadija\n" +
            "\t(2) Valimisjaoskondade nimekirja laadija\n" + "Vali volitus:",
            1, 1, 2)
        if right == 1:
            right_str = "VALIK"
        elif right == 2:
            right_str = "JAOSK"
    elif Election().is_hts():
        right = uiutil.ask_int(
            "Võimalikud volitused:\n " +
            "\t(1) Tühistus- ja ennistusnimekirja laadija\n" +
            "\t(2) Valimisjaoskondade nimekirja laadija\n" + "Vali volitus:",
            1, 1, 2)
        if right == 1:
            right_str = "TYHIS"
        elif right == 2:
            right_str = "JAOSK"
    if not uiutil.ask_yes_no("Kas soovid eemaldada volituse"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "rem", ik, right_str])
Example #6
0
def do_rem_rights(elid):
    ik = uiutil.ask_id_num()
    right_str = ""
    if Election().is_hes() or Election().is_hlr():
        right = uiutil.ask_int("Võimalikud volitused:\n " + \
            "\t(1) Valikute nimekirja laadija\n" + \
            "\t(2) Valimisjaoskondade nimekirja laadija\n" + \
            "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "VALIK"
        elif right == 2:
            right_str = "JAOSK"
    elif Election().is_hts():
        right = uiutil.ask_int("Võimalikud volitused:\n " + \
                "\t(1) Tühistus- ja ennistusnimekirja laadija\n" +
                "\t(2) Valimisjaoskondade nimekirja laadija\n" + \
                "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "TYHIS"
        elif right == 2:
            right_str = "JAOSK"
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s rem %s %s" % (SCRIPT_REGRIGHTS, elid, ik, right_str)
    os.system(cmd)
Example #7
0
def do_rem_rights(elid):
    ik = uiutil.ask_id_num()
    right_str = ""
    if Election().is_hes() or Election().is_hlr():
        right = uiutil.ask_int("Võimalikud volitused:\n " + \
            "\t(1) Valikute nimekirja laadija\n" + \
            "\t(2) Valimisjaoskondade nimekirja laadija\n" + \
            "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "VALIK"
        elif right == 2:
            right_str = "JAOSK"
    elif Election().is_hts():
        right = uiutil.ask_int("Võimalikud volitused:\n " + \
                "\t(1) Tühistus- ja ennistusnimekirja laadija\n" +
                "\t(2) Valimisjaoskondade nimekirja laadija\n" + \
                "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "TYHIS"
        elif right == 2:
            right_str = "JAOSK"
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s rem %s %s" % (SCRIPT_REGRIGHTS, elid, ik, right_str)
    os.system(cmd)
Example #8
0
def do_rem_rights(elid):
    ik = uiutil.ask_id_num()
    right_str = ""
    if Election().is_hes() or Election().is_hlr():
        right = uiutil.ask_int(
            "Võimalikud volitused:\n " +
            "\t(1) Valikute nimekirja laadija\n" +
            "\t(2) Valimisjaoskondade nimekirja laadija\n" +
            "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "VALIK"
        elif right == 2:
            right_str = "JAOSK"
    elif Election().is_hts():
        right = uiutil.ask_int(
            "Võimalikud volitused:\n " +
            "\t(1) Tühistus- ja ennistusnimekirja laadija\n" +
            "\t(2) Valimisjaoskondade nimekirja laadija\n" +
            "Vali volitus:", 1, 1, 2)
        if right == 1:
            right_str = "TYHIS"
        elif right == 2:
            right_str = "JAOSK"
    if not uiutil.ask_yes_no("Kas soovid eemaldada volituse"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "rem", ik, right_str])
Example #9
0
def do_unschedule_autostop():
    prepare = autocmd.scheduled(autocmd.COMMAND_PREPARE_STOP)
    stop = autocmd.scheduled(autocmd.COMMAND_STOP)
    time = prepare[1] if prepare else stop[1]
    if uiutil.ask_yes_no("Kas soovid kustutada automaatse lõpuaja %s" % time, \
            uiutil.ANSWER_NO):
        if prepare:
            autocmd.unschedule(autocmd.COMMAND_PREPARE_STOP, prepare[0])
        if stop:
            autocmd.unschedule(autocmd.COMMAND_STOP, stop[0])
Example #10
0
def do_unschedule_autostop():
    prepare = autocmd.scheduled(autocmd.COMMAND_PREPARE_STOP)
    stop = autocmd.scheduled(autocmd.COMMAND_STOP)
    time = prepare[1] if prepare else stop[1]
    if uiutil.ask_yes_no("Kas soovid kustutada automaatse lõpuaja %s" % time, \
            uiutil.ANSWER_NO):
        if prepare:
            autocmd.unschedule(autocmd.COMMAND_PREPARE_STOP, prepare[0])
        if stop:
            autocmd.unschedule(autocmd.COMMAND_STOP, stop[0])
Example #11
0
    def burn(self):
        dvd_def_speed = DVD_DEF_SPEED
        dvd_count = 0
        dvd_dirs = os.listdir(self.work_dir)
        dvd_dirs_size = len(dvd_dirs)
        dvd_dirs.sort()

        for dvd_dir in dvd_dirs:
            dvd_count += 1

            if dvd_dirs_size > 1:
                print("Hakkame kirjutama %d. DVD-d %d-st" % (dvd_count,
                                                             dvd_dirs_size))

            if not uiutil.ask_yes_no(
                    "Palun sisestage DVDR(W) meedium seadmesse. Jätkan"):
                print "DVD kirjutamine katkestati"
                return 1

            if self._is_dvd_blank() != 0:
                print "DVD ei ole tühi"
                return 1

            while True:
                dvd_speed = uiutil.ask_int(
                    "Palun sisestage DVD kirjutamise kiirus",
                    dvd_def_speed, DVD_MIN_SPEED, DVD_MAX_SPEED)
                dvd_def_speed = dvd_speed

                cmdline = ('%s -speed=%d -Z /dev/dvd -q -r -J %s' %
                           (BURN_PROGRAM, dvd_speed,
                            os.path.join(self.work_dir, dvd_dir)))

                print cmdline
                rc = subprocess.call(cmdline, shell=True)
                if rc == 0:
                    break
                print "Salvestamine nurjus veakoodiga %d" % rc
                if not uiutil.ask_yes_no("Kas proovite uuesti"):
                    print "DVD kirjutamine katkestati"
                    return 1
        return 0
Example #12
0
    def burn(self):
        dvd_def_speed = DVD_DEF_SPEED
        dvd_count = 0
        dvd_dirs = os.listdir(self.work_dir)
        dvd_dirs_size = len(dvd_dirs)
        dvd_dirs.sort()

        for dvd_dir in dvd_dirs:
            dvd_count += 1

            if dvd_dirs_size > 1:
                print("Hakkame kirjutama %d. DVD-d %d-st" %
                      (dvd_count, dvd_dirs_size))

            if not uiutil.ask_yes_no(
                    "Palun sisestage DVDR(W) meedium seadmesse. Jätkan"):
                print "DVD kirjutamine katkestati"
                return 1

            if self._is_dvd_blank() != 0:
                print "DVD ei ole tühi"
                return 1

            while True:
                dvd_speed = uiutil.ask_int(
                    "Palun sisestage DVD kirjutamise kiirus", dvd_def_speed,
                    DVD_MIN_SPEED, DVD_MAX_SPEED)
                dvd_def_speed = dvd_speed

                cmdline = ('%s -speed=%d -Z /dev/dvd -q -r -J %s' %
                           (BURN_PROGRAM, dvd_speed,
                            os.path.join(self.work_dir, dvd_dir)))

                print cmdline
                rc = subprocess.call(cmdline, shell=True)
                if rc == 0:
                    break
                print "Salvestamine nurjus veakoodiga %d" % rc
                if not uiutil.ask_yes_no("Kas proovite uuesti"):
                    print "DVD kirjutamine katkestati"
                    return 1
        return 0
Example #13
0
def do_restore():
    """Taastame olekupuu varukoopiast.
    """

    if not uiutil.ask_yes_no("Kas soovid olekupuu varukoopiast taastada"):
        return
    if not uiutil.ask_yes_no(
            "Olekupuu taastamisel varukoopiast " +
            "kustutatakse vana olekupuu.\nKas jätkan"):
        return

    import time
    s_time = time.time()

    try:
        restorer = burner.Restorer(
            os.path.abspath(os.path.join(
                evcommon.EVREG_CONFIG, '..',
                'restore-' + time.strftime("%Y%m%d%H%M%S"))))

        while True:
            backup_dir = uiutil.ask_dir_name(
                "Sisesta kataloog, kus asuvad varukoopia failid")
            restorer.add_chunks(backup_dir)

            if not uiutil.ask_yes_no(
                    "Kas soovid veel laadida varukoopia faile"):
                break

        if restorer.chunk_count() != 0:
            print "Taastame olekupuu varukoopiast. Palun oota.."
            restorer.restore(Election().get_root_reg().root)
        else:
            print 'Pole ühtegi varukoopia faili. Loobun taastamisest.'
    finally:
        print 'Kustutan ajutisi faile. Palun oota..'
        restorer.delete_files()

        if restorer.chunk_count() != 0:
            print '\nOlekupuu taastamine kestis: %s' % \
                time.strftime("%H:%M:%S",
                              time.gmtime(long(time.time() - s_time)))
Example #14
0
 def do_the_end(self):
     srv = Election().get_server_str()
     is_hlr = (srv == evcommon.APPTYPE_HLR)
     root_dir = Election().get_root_reg().root
     if uiutil.ask_yes_no("Kas soovid valimised lõpetada?"):
         if uiutil.ask_yes_no(
             "Valimiste lõpetamisega kustutatakse kogu " +
                 "konfiguratsioon.\nKas jätkan"):
             print "Kustutan e-hääletuse faile. Palun oota.."
             # Kustutame kogu konfiguratsiooni ja ka olekupuu taastamise
             # käigus alles hoitud vanad olekupuud.
             uiutil.clear_dir(root_dir)
             map(shutil.rmtree, glob.iglob("%s/../registry-*" % root_dir))
             # HLRi korral ka vastav mälufailisüsteemi kraam.
             if is_hlr:
                 if "EVOTE_TMPDIR" in os.environ:
                     uiutil.clear_dir(os.environ["EVOTE_TMPDIR"])
             # Initsialiseerime nüüd ka liidese.
             Election().set_server_str(srv)
             self.__init__()
Example #15
0
def do_restore():
    """Taastame olekupuu varukoopiast.
    """

    if not uiutil.ask_yes_no("Kas soovid olekupuu varukoopiast taastada"):
        return
    if not uiutil.ask_yes_no("Olekupuu taastamisel varukoopiast " +
                             "kustutatakse vana olekupuu.\nKas jätkan"):
        return

    import time
    s_time = time.time()

    try:
        restorer = burner.Restorer(
            os.path.abspath(
                os.path.join(evcommon.EVREG_CONFIG, '..',
                             'restore-' + time.strftime("%Y%m%d%H%M%S"))))

        while True:
            backup_dir = uiutil.ask_dir_name(
                "Sisesta kataloog, kus asuvad varukoopia failid")
            restorer.add_chunks(backup_dir)

            if not uiutil.ask_yes_no(
                    "Kas soovid veel laadida varukoopia faile"):
                break

        if restorer.chunk_count() != 0:
            print "Taastame olekupuu varukoopiast. Palun oota.."
            restorer.restore(Election().get_root_reg().root)
        else:
            print 'Pole ühtegi varukoopia faili. Loobun taastamisest.'
    finally:
        print 'Kustutan ajutisi faile. Palun oota..'
        restorer.delete_files()

        if restorer.chunk_count() != 0:
            print '\nOlekupuu taastamine kestis: %s' % \
                time.strftime("%H:%M:%S",
                              time.gmtime(long(time.time() - s_time)))
Example #16
0
def do_install():

    install_file = \
        uiutil.ask_file_name_from_cd("Sisesta paigaldusfaili asukoht")

    if not subprocess.call([SCRIPT_INSTALL_SRV, "verify", install_file]) == 0:
        return

    if not uiutil.ask_yes_no("Kas paigaldame valimised?"):
        return

    subprocess.call([SCRIPT_INSTALL_SRV, "install", install_file])
Example #17
0
def do_install():

    install_file = \
        uiutil.ask_file_name_from_cd("Sisesta paigaldusfaili asukoht")

    if not subprocess.call([SCRIPT_INSTALL_SRV, "verify", install_file]) == 0:
        return

    if not uiutil.ask_yes_no("Kas paigaldame valimised?"):
        return

    subprocess.call([SCRIPT_INSTALL_SRV, "install", install_file])
Example #18
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 #19
0
def do_install():

    install_file = \
        uiutil.ask_file_name_from_cd("Sisesta paigaldusfaili asukoht")

    cmd = "%s verify %s" % (SCRIPT_INSTALL_SRV, install_file)
    ret = os.system(cmd)

    if not ret == 0:
        return

    if not uiutil.ask_yes_no("Kas paigaldame valimised?"):
        return

    cmd = "%s install %s" % (SCRIPT_INSTALL_SRV, install_file)
    os.system(cmd)
Example #20
0
def do_install():

    install_file = \
        uiutil.ask_file_name_from_cd("Sisesta paigaldusfaili asukoht")

    cmd = "%s verify %s" % (SCRIPT_INSTALL_SRV, install_file)
    ret = os.system(cmd)

    if not ret == 0:
        return

    if not uiutil.ask_yes_no("Kas paigaldame valimised?"):
        return

    cmd = "%s install %s" % (SCRIPT_INSTALL_SRV, install_file)
    os.system(cmd)
Example #21
0
def do_count_votes(elid):
    import evfiles
    import evlog

    log4 = evlog.Logger()
    log4.set_logs(evfiles.log4_file(elid).path())
    if log4.lines_in_file() > 3:
        print "Log4 fail ei ole tühi. Jätkamine pole võimalik."
        return

    log5 = evlog.Logger()
    log5.set_logs(evfiles.log5_file(elid).path())
    if log5.lines_in_file() > 3:
        print "Log5 fail ei ole tühi. Jätkamine pole võimalik."
        return

    if not uiutil.ask_yes_no("Kas soovid hääled kokku lugeda"):
        print "Katkestame häälte lugemise"
        return
    pin = uiutil.ask_password("Sisesta partitsiooni PIN: ",
                              "Sisestatud PIN oli tühi!")
    subprocess.call([SCRIPT_HLR, elid, pin])
Example #22
0
def do_count_votes(elid):
    import evfiles
    import evlog

    log4 = evlog.Logger()
    log4.set_logs(evfiles.log4_file(elid).path())
    if log4.lines_in_file() > 3:
        print "Log4 fail ei ole tühi. Ei saa jätkata."
        return

    log5 = evlog.Logger()
    log5.set_logs(evfiles.log5_file(elid).path())
    if log5.lines_in_file() > 3:
        print "Log5 fail ei ole tühi. Ei saa jätkata."
        return

    if not uiutil.ask_yes_no("Kas oled kindel"):
        print "Katkestame häälte lugemise"
        return
    pin = uiutil.ask_password("Sisesta partitsiooni PIN: ", \
            "Sisestatud PIN oli tühi!")
    cmd = "%s %s %s" % (SCRIPT_HLR, elid, pin)
    os.system(cmd)
Example #23
0
def do_count_votes(elid):
    import evfiles
    import evlog

    log4 = evlog.Logger()
    log4.set_logs(evfiles.log4_file(elid).path())
    if log4.lines_in_file() > 3:
        print "Log4 fail ei ole tühi. Jätkamine pole võimalik."
        return

    log5 = evlog.Logger()
    log5.set_logs(evfiles.log5_file(elid).path())
    if log5.lines_in_file() > 3:
        print "Log5 fail ei ole tühi. Jätkamine pole võimalik."
        return

    if not uiutil.ask_yes_no("Kas soovid hääled kokku lugeda"):
        print "Katkestame häälte lugemise"
        return
    pin = uiutil.ask_password(
        "Sisesta partitsiooni PIN: ",
        "Sisestatud PIN oli tühi!")
    subprocess.call([SCRIPT_HLR, elid, pin])
Example #24
0
def do_count_votes(elid):
    import evfiles
    import evlog

    log4 = evlog.Logger()
    log4.set_logs(evfiles.log4_file(elid).path())
    if log4.lines_in_file() > 3:
        print "Log4 fail ei ole tühi. Ei saa jätkata."
        return

    log5 = evlog.Logger()
    log5.set_logs(evfiles.log5_file(elid).path())
    if log5.lines_in_file() > 3:
        print "Log5 fail ei ole tühi. Ei saa jätkata."
        return

    if not uiutil.ask_yes_no("Kas oled kindel"):
        print "Katkestame häälte lugemise"
        return
    pin = uiutil.ask_password("Sisesta partitsiooni PIN: ", \
            "Sisestatud PIN oli tühi!")
    cmd = "%s %s %s" % (SCRIPT_HLR, elid, pin)
    os.system(cmd)
Example #25
0
def do_pre_start_counting_hes():
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    Election().refuse_new_voters()
    print 'Kandidaatide nimekirjade väljastamine peatatud'
Example #26
0
def do_rem_all_rights(elid):
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s remall" % (SCRIPT_REGRIGHTS, elid)
    os.system(cmd)
Example #27
0
def do_rem_user_rights(elid):
    ik = uiutil.ask_id_num()
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s remuser %s" % (SCRIPT_REGRIGHTS, elid, ik)
    os.system(cmd)
Example #28
0
def do_cancel_pre_start_counting_hes():
    if not uiutil.ask_yes_no("Kas soovid taastada kandidaatide nimekirja"
                             " väljastamise"):
        return
    Election().restore_new_voters()
    print 'Kandidaatide nimekirjade väljastamine taastatud'
Example #29
0
def do_cancel_pre_start_counting_hes():
    if not uiutil.ask_yes_no("Kas soovid taastada kandidaatide nimekirja"
                             " väljastamise"):
        return
    Election().restore_new_voters()
    print 'Kandidaatide nimekirjade väljastamine taastatud'
Example #30
0
def do_rem_user_rights(elid):
    ik = uiutil.ask_id_num()
    if not uiutil.ask_yes_no("Kas soovid eemaldada volitatud isiku"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "remuser", ik])
Example #31
0
def do_rem_user_rights(elid):
    ik = uiutil.ask_id_num()
    if not uiutil.ask_yes_no("Kas soovid eemaldada volitatud isiku"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "remuser", ik])
Example #32
0
def do_pre_start_counting_hes():
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    Election().refuse_new_voters()
    print 'Kandidaatide nimekirjade väljastamine peatatud'
Example #33
0
def do_rem_all_rights(elid):
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s remall" % (SCRIPT_REGRIGHTS, elid)
    os.system(cmd)
Example #34
0
def do_rem_user_rights(elid):
    ik = uiutil.ask_id_num()
    if not uiutil.ask_yes_no("Kas oled kindel"):
        return
    cmd = "%s %s remuser %s" % (SCRIPT_REGRIGHTS, elid, ik)
    os.system(cmd)
Example #35
0
def do_rem_all_rights(elid):
    if not uiutil.ask_yes_no("Kas soovid eemaldada isiku kõik volitused"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "remall"])
Example #36
0
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)
Example #37
0
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 terviklikkust"
        checkResult = sigverify.check_existent(voter_f, elid)
        if not checkResult[0]:
            raise Exception('Kontrollimisel tekkis viga: %s\n' % checkResult[1])
        else:
            print "Valijate faili terviklikkus OK"

        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 laaditud\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_config_file(
                elid, root, voter_f, evcommon.VOTERS_FILES)
            Election().add_voters_file_hash(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 as ex:
        sys.stderr.write('Viga muudatuste laadimisel: ' + str(ex) + '\n')
        if buflog:
            buflog.output_errors()
        sys.exit(1)

    finally:
        if vl is not None:
            vl.close()
Example #38
0
def do_rem_all_rights(elid):
    if not uiutil.ask_yes_no("Kas soovid eemaldada isiku kõik volitused"):
        return
    subprocess.call([SCRIPT_REGRIGHTS, elid, "remall"])
Example #39
0
 def do_change_state(self):
     if not uiutil.ask_yes_no("Kas oled kindel"):
         return
     ElectionState().next()
     if Election().is_hts():
         subprocess.call(SCRIPT_HTS_STATE)
Example #40
0
def do_unschedule_autostart():
    job, time = autocmd.scheduled(autocmd.COMMAND_START)
    if uiutil.ask_yes_no("Kas soovid kustutada automaatse algusaja %s" % time, \
            uiutil.ANSWER_NO):
        autocmd.unschedule(autocmd.COMMAND_START, job)
Example #41
0
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 terviklikkust"
        checkResult = sigverify.check_existent(voter_f, elid)
        if not checkResult[0]:
            raise Exception("Kontrollimisel tekkis viga: %s\n" % checkResult[1])
        else:
            print "Valijate faili terviklikkus OK"

        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 laaditud\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_config_file(elid, root, voter_f, evcommon.VOTERS_FILES)
            Election().add_voters_file_hash(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 as ex:
        sys.stderr.write("Viga muudatuste laadimisel: " + str(ex) + "\n")
        if buflog:
            buflog.output_errors()
        sys.exit(1)

    finally:
        if vl is not None:
            vl.close()
Example #42
0
def do_unschedule_autostart():
    job, time = autocmd.scheduled(autocmd.COMMAND_START)
    if uiutil.ask_yes_no("Kas soovid kustutada automaatse algusaja %s" % time, \
            uiutil.ANSWER_NO):
        autocmd.unschedule(autocmd.COMMAND_START, job)