Skip to content

Instantly share code, notes, and snippets.

@ralphbean
Created March 14, 2017 14:40
Show Gist options
  • Save ralphbean/b532ad3bc4a8333fa03d4e4e48451885 to your computer and use it in GitHub Desktop.
Save ralphbean/b532ad3bc4a8333fa03d4e4e48451885 to your computer and use it in GitHub Desktop.
Showing work to be done to get datagrepper backlog validation working
{"certificate":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVTakNDQTdPZ0F3SUJBZ0lDQWU0d0RRWUpL\nb1pJaHZjTkFRRUZCUUF3Z2FBeEN6QUpCZ05WQkFZVEFsVlQKTVFzd0NRWURWUVFJRXdKT1F6RVFN\nQTRHQTFVRUJ4TUhVbUZzWldsbmFERVhNQlVHQTFVRUNoTU9SbVZrYjNKaApJRkJ5YjJwbFkzUXhE\nekFOQmdOVkJBc1RCbVpsWkcxelp6RVBNQTBHQTFVRUF4TUdabVZrYlhObk1ROHdEUVlEClZRUXBF\nd1ptWldSdGMyY3hKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUdabFpHOXlZWEJ5YjJwbFkz\nUXUKYjNKbk1CNFhEVEUxTURReU9ERXlNamN3TVZvWERUSTFNRFF5TlRFeU1qY3dNVm93Z2RneEN6\nQUpCZ05WQkFZVApBbFZUTVFzd0NRWURWUVFJRXdKT1F6RVFNQTRHQTFVRUJ4TUhVbUZzWldsbmFE\nRVhNQlVHQTFVRUNoTU9SbVZrCmIzSmhJRkJ5YjJwbFkzUXhEekFOQmdOVkJBc1RCbVpsWkcxelp6\nRXJNQ2tHQTFVRUF4TWlabUZtTFhKbGRISmgKWTJVd01TNXhZUzVtWldSdmNtRndjbTlxWldOMExt\nOXlaekVyTUNrR0ExVUVLUk1pWm1GbUxYSmxkSEpoWTJVdwpNUzV4WVM1bVpXUnZjbUZ3Y205cVpX\nTjBMbTl5WnpFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFabVZrCmIzSmhjSEp2YW1WamRD\nNXZjbWN3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQUsvaTUxcjUKdk9CemtF\nUXdZK1VBekw2ODY1dUY5eWZrM3NiZzdKcG1vTVRrRk9zTGwxRW53U0dHUGFyTUJUcU1JMWhXRVF5\naQpQWEpNbm9mdlVuSTZsSldOS280Q2tNZlFlWm1aTWs2bUFNT2hUaUJQUlZ1bUtXR09iUEZFU3pv\ncjcxdmxZQzVCCjlhVGRWMnR3NmVLaTR5S2VXd294ZXJYclVWMnNQWVd1V2UzNUFnTUJBQUdqZ2dG\nWE1JSUJVekFKQmdOVkhSTUUKQWpBQU1DMEdDV0NHU0FHRytFSUJEUVFnRmg1RllYTjVMVkpUUVNC\nSFpXNWxjbUYwWldRZ1EyVnlkR2xtYVdOaApkR1V3SFFZRFZSME9CQllFRkg2QmdPZUJtdnYzK0Rp\nK0NBV1B5eTFLVkhySk1JSFZCZ05WSFNNRWdjMHdnY3FBCkZHdEFXdmtTQ0lsWjUxbmxCZlVDSFFw\nT2Z4UUFvWUdtcElHak1JR2dNUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0cKQTFVRUNCTUNUa014RURB\nT0JnTlZCQWNUQjFKaGJHVnBaMmd4RnpBVkJnTlZCQW9URGtabFpHOXlZU0JRY205cQpaV04wTVE4\nd0RRWURWUVFMRXdabVpXUnRjMmN4RHpBTkJnTlZCQU1UQm1abFpHMXpaekVQTUEwR0ExVUVLUk1H\nClptVmtiWE5uTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQm1aV1J2Y21Gd2NtOXFaV04w\nTG05eVo0SUoKQU9OUUhrZFBGeDVGTUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGQndNQ01Bc0dBMVVk\nRHdRRUF3SUhnREFOQmdrcQpoa2lHOXcwQkFRVUZBQU9CZ1FDRmEvSHMveTFCVkpWT3RQdHhHQjNV\nMThnY2oreXJ4QnlEQXI2YlUrckhrT1ZUCmczL0pxdCtXMExBVWhtc0tkUXNva3ZhemZkTVBxS0xu\nczBmb1Fkc1d6ZksvdEpwUUxNUHBOSlNjM01EUjFQOVoKYTl4NWZiU05jODVocHg2b0VicXRCZVdn\naERrVXZ3M25GVHdMa2pQbE5tZ0JxNngrcU10ODNOcmxWMFc1UXc9PQotLS0tLUVORCBDRVJUSUZJ\nQ0FURS0tLS0tCg==\n","crypto":"x509","i":6,"msg":{"components":["kde-workspace"],"count":1,"first_occurrence":"2017-03-14","function":"unknown function","level":1,"report_id":null,"type":"core","url":"http://retrace.fedoraproject.org/faf/reports/bthash/1fd6214ec90511cc52c570b76754d6e40489843d/"},"msg_id":"2017-84d8aa53-f959-401a-88df-0e1bd9175d09","signature":"rjFIA/rCCVWvYL5P2an3j99W255KiJZ9wOgGjqC5hQTQad+JvNhatUlecUbUbqSl+Gy9pjaRty5X\n0ZvFRfv1GMAQGfBPoknjcztjcl0rMxvGNB54DiqeumeButMMjdOs1TYpS8vWzICHlTUBMXgxf56J\nj6+SbLCJXe7yC26YYys=\n","timestamp":1489500762,"topic":"org.fedoraproject.prod.faf.report.threshold1","username":"faf"}
import requests
import fedmsg.crypto
import logging
logging.basicConfig()
with open('message.json', 'r') as f:
original_raw = f.read()
original = fedmsg.encoding.loads(original_raw)
idx = original['msg_id']
result = fedmsg.crypto.validate(original)
print "Validation result on original:", result
response = requests.get('https://apps.fedoraproject.org/datagrepper/id?id=' + idx)
msg_from_datagrepper = response.json()
result = fedmsg.crypto.validate(msg_from_datagrepper)
print "Validation result from datagrepper before work:", result
# Remove these things that are present but shouldn't be.
del msg_from_datagrepper['source_name']
del msg_from_datagrepper['source_version']
# Coerce thing thing that is the wrong type
msg_from_datagrepper['timestamp'] = int(msg_from_datagrepper['timestamp'])
# Add these things which are missing
msg_from_datagrepper['username'] = 'faf'
msg_from_datagrepper['crypto'] = 'x509'
from_datagrepper_encoded = fedmsg.encoding.dumps(msg_from_datagrepper)
assert from_datagrepper_encoded == original_raw
result = fedmsg.crypto.validate(msg_from_datagrepper)
print "Validation result from datagrepper after work:", result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment