)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"6ed5637c5408d1a236183e842a01d6478bfa0692","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add encoding to keys in compute_signature"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unlike fixed sample keys as counter_name and counter_volume,"},{"line_number":10,"context_line":"metadata keys may contain a unicode in keys."},{"line_number":11,"context_line":"ceilometer.publisher_utils.compute_signature can\u0027t calculate"},{"line_number":12,"context_line":"signature of unicode symbols and crashes."},{"line_number":13,"context_line":"In this patch encoding keys is added."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a890539_450d0090","line":10,"updated":"2014-11-11 16:08:27.000000000","message":"tiny nit: s/a unicode in keys/unicode characters/","commit_id":"e493e8c9ef430315dda49433bdd186c188872d4f"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"6ed5637c5408d1a236183e842a01d6478bfa0692","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unlike fixed sample keys as counter_name and counter_volume,"},{"line_number":10,"context_line":"metadata keys may contain a unicode in keys."},{"line_number":11,"context_line":"ceilometer.publisher_utils.compute_signature can\u0027t calculate"},{"line_number":12,"context_line":"signature of unicode symbols and crashes."},{"line_number":13,"context_line":"In this patch encoding keys is added."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a890539_856d2835","line":11,"updated":"2014-11-11 16:08:27.000000000","message":"s/ceilometer.publisher.utils.compute_signature/","commit_id":"e493e8c9ef430315dda49433bdd186c188872d4f"}],"ceilometer/tests/publisher/test_utils.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"2679142ece730c11624da11fa24e4db106321056","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.assertTrue(utils.verify_signature(jsondata, \u0027not-so-secret\u0027))"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_verify_unicode_symbols(self):"},{"line_number":115,"context_line":"        data \u003d {u\u0027a\\xe9\\u0437\u0027: \u0027A\u0027,"},{"line_number":116,"context_line":"                \u0027b\u0027: u\u0027B\\xe9\\u0437\u0027"},{"line_number":117,"context_line":"                }"},{"line_number":118,"context_line":"        data[\u0027message_signature\u0027] \u003d utils.compute_signature("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_88c45d93","line":115,"updated":"2014-11-11 16:08:09.000000000","message":"What is this mean? It prints \u0027aé?\u0027 in my python shell.","commit_id":"f274d754e2e942ec500a0d54feae4488faf8f0c2"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a406e9cbddef85fd5d832333df1a6b8b8a3336a","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.assertTrue(utils.verify_signature(jsondata, \u0027not-so-secret\u0027))"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_verify_unicode_symbols(self):"},{"line_number":115,"context_line":"        data \u003d {u\u0027a\\xe9\\u0437\u0027: \u0027A\u0027,"},{"line_number":116,"context_line":"                \u0027b\u0027: u\u0027B\\xe9\\u0437\u0027"},{"line_number":117,"context_line":"                }"},{"line_number":118,"context_line":"        data[\u0027message_signature\u0027] \u003d utils.compute_signature("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_53606a32","line":115,"in_reply_to":"5a890539_88c45d93","updated":"2014-11-11 16:44:04.000000000","message":"It\u0027s only example of unicode characters.","commit_id":"f274d754e2e942ec500a0d54feae4488faf8f0c2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"2679142ece730c11624da11fa24e4db106321056","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        data[\u0027message_signature\u0027] \u003d utils.compute_signature("},{"line_number":119,"context_line":"            data,"},{"line_number":120,"context_line":"            \u0027not-so-secret\u0027)"},{"line_number":121,"context_line":"        jsondata \u003d jsonutils.loads(jsonutils.dumps(data))"},{"line_number":122,"context_line":"        self.assertTrue(utils.verify_signature(jsondata, \u0027not-so-secret\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_besteffort_compare_digest(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_c84905d2","line":121,"updated":"2014-11-11 16:08:09.000000000","message":"I cannot figure out what this line does, it just get data dict, except change \u0027A\u0027 to u\u0027A\u0027 (which is same since \u0027A\u0027 is ascii) and \u0027b\u0027 to u\u0027b\u0027 (ditto)","commit_id":"f274d754e2e942ec500a0d54feae4488faf8f0c2"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a406e9cbddef85fd5d832333df1a6b8b8a3336a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        data[\u0027message_signature\u0027] \u003d utils.compute_signature("},{"line_number":119,"context_line":"            data,"},{"line_number":120,"context_line":"            \u0027not-so-secret\u0027)"},{"line_number":121,"context_line":"        jsondata \u003d jsonutils.loads(jsonutils.dumps(data))"},{"line_number":122,"context_line":"        self.assertTrue(utils.verify_signature(jsondata, \u0027not-so-secret\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_besteffort_compare_digest(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_53730ae9","line":121,"in_reply_to":"5a890539_c84905d2","updated":"2014-11-11 16:44:04.000000000","message":"It\u0027s simple repetition of sample life path. We compute signature in agents, make json dump when send in to rabbit, loads from json when receive it and verify signature in dispatchers.","commit_id":"f274d754e2e942ec500a0d54feae4488faf8f0c2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"21cb4cab76ec8f1eee9a276e6220f73c0b48525d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        data[\u0027message_signature\u0027] \u003d utils.compute_signature("},{"line_number":119,"context_line":"            data,"},{"line_number":120,"context_line":"            \u0027not-so-secret\u0027)"},{"line_number":121,"context_line":"        jsondata \u003d jsonutils.loads(jsonutils.dumps(data))"},{"line_number":122,"context_line":"        self.assertTrue(utils.verify_signature(jsondata, \u0027not-so-secret\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_besteffort_compare_digest(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_33bf43fd","line":121,"updated":"2014-11-12 13:30:46.000000000","message":"I still think here is not the right place to put the sample life cycle simulation, but since I cannot find a existent file for such thing, and the UT is not easy for live AMQP \u0026 collector service, I will accept this.","commit_id":"05276690525d76e18769712bc66d0cd535b11f18"}]}
