)]}'
{"keystoneclient/contrib/ec2/utils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"893abc658267239ce9e7da8436289dac3cde354e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import base64"},{"line_number":22,"context_line":"import hashlib"},{"line_number":23,"context_line":"import hmac"},{"line_number":24,"context_line":"import urllib"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2Fvmk%3D","line":24,"updated":"2012-11-27 17:30:07.000000000","message":"move the logging import up","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"05017dcdce11105b01691814c47a2c34655a4390","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import base64"},{"line_number":22,"context_line":"import hashlib"},{"line_number":23,"context_line":"import hmac"},{"line_number":24,"context_line":"import urllib"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FuyQ%3D","line":24,"in_reply_to":"AAAAMH%2F%2Fvmk%3D","updated":"2012-11-28 09:16:35.000000000","message":"Done","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"893abc658267239ce9e7da8436289dac3cde354e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"import urllib"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class Ec2Signer(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2Fvmg%3D","line":27,"updated":"2012-11-27 17:30:07.000000000","message":"two line breaks between imports and constants","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"05017dcdce11105b01691814c47a2c34655a4390","unresolved":false,"context_lines":[{"line_number":24,"context_line":"import urllib"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class Ec2Signer(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FuyI%3D","line":27,"in_reply_to":"AAAAMH%2F%2Fvmg%3D","updated":"2012-11-28 09:16:35.000000000","message":"Done","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"893abc658267239ce9e7da8436289dac3cde354e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            val \u003d urllib.quote(val, safe\u003d\u0027-_~\u0027)"},{"line_number":99,"context_line":"            pairs.append(urllib.quote(key, safe\u003d\u0027\u0027) + \u0027\u003d\u0027 + val)"},{"line_number":100,"context_line":"        qs \u003d \u0027\u0026\u0027.join(pairs)"},{"line_number":101,"context_line":"        LOG.debug(\u0027query string: %s\u0027, qs)"},{"line_number":102,"context_line":"        string_to_sign +\u003d qs"},{"line_number":103,"context_line":"        LOG.debug(\u0027string_to_sign: %s\u0027, string_to_sign)"},{"line_number":104,"context_line":"        current_hmac.update(string_to_sign)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FvmQ%3D","line":101,"updated":"2012-11-27 17:30:07.000000000","message":"redundant with the LOG statement below?","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"05017dcdce11105b01691814c47a2c34655a4390","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            val \u003d urllib.quote(val, safe\u003d\u0027-_~\u0027)"},{"line_number":99,"context_line":"            pairs.append(urllib.quote(key, safe\u003d\u0027\u0027) + \u0027\u003d\u0027 + val)"},{"line_number":100,"context_line":"        qs \u003d \u0027\u0026\u0027.join(pairs)"},{"line_number":101,"context_line":"        LOG.debug(\u0027query string: %s\u0027, qs)"},{"line_number":102,"context_line":"        string_to_sign +\u003d qs"},{"line_number":103,"context_line":"        LOG.debug(\u0027string_to_sign: %s\u0027, string_to_sign)"},{"line_number":104,"context_line":"        current_hmac.update(string_to_sign)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FuyE%3D","line":101,"in_reply_to":"AAAAMH%2F%2FvmQ%3D","updated":"2012-11-28 09:16:35.000000000","message":"Done","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"893abc658267239ce9e7da8436289dac3cde354e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        current_hmac.update(string_to_sign)"},{"line_number":105,"context_line":"        b64 \u003d base64.b64encode(current_hmac.digest())"},{"line_number":106,"context_line":"        LOG.debug(\u0027len(b64)\u003d%d\u0027, len(b64))"},{"line_number":107,"context_line":"        LOG.debug(\u0027base64 encoded digest: %s\u0027, b64)"},{"line_number":108,"context_line":"        return b64"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FvmM%3D","line":107,"updated":"2012-11-27 17:30:07.000000000","message":"combine these two log statements?\n\n  \u0027base 64 encoded digest (len\u003d%d): %s\u0027","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"05017dcdce11105b01691814c47a2c34655a4390","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        current_hmac.update(string_to_sign)"},{"line_number":105,"context_line":"        b64 \u003d base64.b64encode(current_hmac.digest())"},{"line_number":106,"context_line":"        LOG.debug(\u0027len(b64)\u003d%d\u0027, len(b64))"},{"line_number":107,"context_line":"        LOG.debug(\u0027base64 encoded digest: %s\u0027, b64)"},{"line_number":108,"context_line":"        return b64"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2FuyA%3D","line":107,"in_reply_to":"AAAAMH%2F%2FvmM%3D","updated":"2012-11-28 09:16:35.000000000","message":"Done","commit_id":"444208122d26a1ec20f888f76e27c89b6a86c186"}]}
