Skip to content

Commit f4c7da5

Browse files
committed
Merge pull request #345 from helgi/key_hook_fingerprints
feat(hooks): add fingerprint to key hooks API response
2 parents 4b46314 + e8443b8 commit f4c7da5

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

rootfs/api/tests/test_hooks.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,10 @@ def test_key_hook(self):
8686
url = '/v2/hooks/keys/{}'.format(app_id)
8787
response = self.client.get(url, HTTP_X_DEIS_BUILDER_AUTH=settings.BUILDER_KEY)
8888
self.assertEqual(response.status_code, 200)
89-
self.assertEqual(response.data, {"autotest": [public, public2]})
89+
self.assertEqual(response.data, {"autotest": [
90+
{'key': public, 'fingerprint': '54:6d:da:1f:91:b5:2b:6f:a2:83:90:c4:f9:73:76:f5'},
91+
{'key': public2, 'fingerprint': '43:fd:22:bc:dc:ca:6a:28:ba:71:4c:18:41:1d:d1:e2'}
92+
]})
9093

9194
# Test against an app that exist but user does not
9295
url = '/v2/hooks/keys/{}/foooooo'.format(app_id)
@@ -97,7 +100,10 @@ def test_key_hook(self):
97100
url = '/v2/hooks/keys/{}/{}'.format(app_id, str(self.user))
98101
response = self.client.get(url, HTTP_X_DEIS_BUILDER_AUTH=settings.BUILDER_KEY)
99102
self.assertEqual(response.status_code, 200)
100-
self.assertEqual(response.data, {"autotest": [public, public2]})
103+
self.assertEqual(response.data, {"autotest": [
104+
{'key': public, 'fingerprint': '54:6d:da:1f:91:b5:2b:6f:a2:83:90:c4:f9:73:76:f5'},
105+
{'key': public2, 'fingerprint': '43:fd:22:bc:dc:ca:6a:28:ba:71:4c:18:41:1d:d1:e2'}
106+
]})
101107

102108
def test_push_hook(self):
103109
"""Test creating a Push via the API"""

rootfs/api/views.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,14 +413,17 @@ def app(self, request, *args, **kwargs):
413413
data = {}
414414
result = models.Key.objects \
415415
.filter(owner__in=usernames) \
416-
.values('owner__username', 'public') \
416+
.values('owner__username', 'public', 'fingerprint') \
417417
.order_by('created')
418418
for info in result:
419419
user = info['owner__username']
420420
if user not in data:
421421
data[user] = []
422422

423-
data[user].append(info['public'])
423+
data[user].append({
424+
'key': info['public'],
425+
'fingerprint': info['fingerprint']
426+
})
424427

425428
return Response(data, status=status.HTTP_200_OK)
426429

@@ -434,13 +437,16 @@ def users(self, request, *args, **kwargs):
434437
data = {request.user.username: []}
435438
keys = models.Key.objects \
436439
.filter(owner__username=kwargs['username']) \
437-
.values('public') \
440+
.values('public', 'fingerprint') \
438441
.order_by('created')
439442
if not keys:
440443
raise Http404("No Keys match the given query.")
441444

442-
for key in keys:
443-
data[request.user.username].append(key['public'])
445+
for info in keys:
446+
data[request.user.username].append({
447+
'key': info['public'],
448+
'fingerprint': info['fingerprint']
449+
})
444450

445451
return Response(data, status=status.HTTP_200_OK)
446452

0 commit comments

Comments
 (0)