X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/35548a2c9ae7efae920ec7c90addad272b5520c3..676180ac8010d13370620a4889fb07ae6122a335:/src/ssh_keys/views.py diff --git a/src/ssh_keys/views.py b/src/ssh_keys/views.py index 67401e3..f2cda1b 100644 --- a/src/ssh_keys/views.py +++ b/src/ssh_keys/views.py @@ -1,5 +1,4 @@ from datetime import datetime, timedelta -import logging import re from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib import messages @@ -8,7 +7,7 @@ from django.db.models import Q from django import http from django.shortcuts import get_object_or_404 from django.utils.timezone import now -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.decorators.csrf import csrf_exempt from django.views.generic import ListView, CreateView, DeleteView from services.models import Service @@ -48,7 +47,6 @@ class DeleteSSHKeyView(LoginRequiredMixin, DeleteView): @csrf_exempt def ssh_keys_seen(request): - logger = logging.getLogger('django.request') key = request.GET.get('key') service = get_object_or_404(Service, key=key) n = now() @@ -61,18 +59,24 @@ def ssh_keys_seen(request): continue data = parse_log_line(line) if data is None: - logger.error('Unparsed: ' + line) - break + continue dt = data['datetime'] - key = data['algo'], data['md5'] + algo = data['algo'] + if 'md5' in data: + hash_type = 'md5' + hash_value = data['md5'] + else: + hash_type = 'sha256' + hash_value = data['sha256'] + key = algo, hash_type, hash_value last_seen[key] = max(last_seen.get(key, dt), dt) for key, dt in last_seen.items(): - algo, md5 = key + algo, hash_type, hash_value = key SSHKey.objects.filter( Q(last_seen_at=None) | Q(last_seen_at__lt=dt), algorithm=algo, - md5_hash=md5 + **{f'{hash_type}_hash': hash_value} ).update( last_seen_at=dt )