X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/35548a2c9ae7efae920ec7c90addad272b5520c3..64d5e62304fbf068cc764c5e59d2e148ac077bd5:/src/ssh_keys/views.py diff --git a/src/ssh_keys/views.py b/src/ssh_keys/views.py index 67401e3..dc16286 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 @@ -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 )