예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
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)
예제 #7
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)