)]}'
{"nova/tests/test_metadata.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"adb6d3563d9ea2de167b28fdeac37b312d170698","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                (expected_instance_id, instance_id))"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        signed \u003d (\u0027d98d0dd53b026a24df2c06b464ffa5da\u0027"},{"line_number":466,"context_line":"                  \u0027db922ae41af7bd3ecc3cae75aef65771\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        # try a request with service disabled"},{"line_number":469,"context_line":"        response \u003d fake_request("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FtOY%3D","line":466,"updated":"2013-01-09 03:27:36.000000000","message":"why not use constant string here? how it is generated?","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"d77c91a8b3588843a7a8e0f008c1d1bdfd94233a","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                (expected_instance_id, instance_id))"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        signed \u003d (\u0027d98d0dd53b026a24df2c06b464ffa5da\u0027"},{"line_number":466,"context_line":"                  \u0027db922ae41af7bd3ecc3cae75aef65771\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        # try a request with service disabled"},{"line_number":469,"context_line":"        response \u003d fake_request("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FS0g%3D","line":466,"in_reply_to":"AAAAM3%2F%2FsyE%3D","updated":"2013-01-30 03:14:25.000000000","message":"Done","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f089b2dc6a12beee1bb9ea67df6d31535cba2798","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                (expected_instance_id, instance_id))"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        signed \u003d (\u0027d98d0dd53b026a24df2c06b464ffa5da\u0027"},{"line_number":466,"context_line":"                  \u0027db922ae41af7bd3ecc3cae75aef65771\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        # try a request with service disabled"},{"line_number":469,"context_line":"        response \u003d fake_request("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FsyE%3D","line":466,"in_reply_to":"AAAAM3%2F%2FtKA%3D","updated":"2013-01-09 07:11:46.000000000","message":"how about using:\nsigned \u003d hmac.new(self.conf.metadata_proxy_shared_secret,\n                        instance_id,\n                        hashlib.sha256).hexdigest()\nthe constant seems miracle here.","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0d87316fb12fb0e37f37a7be49898ac166f1d123","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                (expected_instance_id, instance_id))"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        signed \u003d (\u0027d98d0dd53b026a24df2c06b464ffa5da\u0027"},{"line_number":466,"context_line":"                  \u0027db922ae41af7bd3ecc3cae75aef65771\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        # try a request with service disabled"},{"line_number":469,"context_line":"        response \u003d fake_request("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FtKA%3D","line":466,"in_reply_to":"AAAAM3%2F%2FtOY%3D","updated":"2013-01-09 04:25:58.000000000","message":"It\u0027s generated using the same hmac algorithm that the client would use.  I didn\u0027t make it a module level constant because its only used in this test.","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"adb6d3563d9ea2de167b28fdeac37b312d170698","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                     \u0027X-Instance-ID\u0027: \u0027z-z-z-z\u0027,"},{"line_number":523,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: \u002781f42e3fc77ba3a3e8d83142746e0\u0027"},{"line_number":524,"context_line":"                                                \u00278387b96cbc5bd2474665192d2ec28\u0027"},{"line_number":525,"context_line":"                                                \u00278ffb67\u0027})"},{"line_number":526,"context_line":"        self.assertEqual(response.status_int, 500)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FtOc%3D","line":525,"updated":"2013-01-09 03:27:36.000000000","message":"the signature is very strange, why not use code to generate the key instead of constant string?","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"d77c91a8b3588843a7a8e0f008c1d1bdfd94233a","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                     \u0027X-Instance-ID\u0027: \u0027z-z-z-z\u0027,"},{"line_number":523,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: \u002781f42e3fc77ba3a3e8d83142746e0\u0027"},{"line_number":524,"context_line":"                                                \u00278387b96cbc5bd2474665192d2ec28\u0027"},{"line_number":525,"context_line":"                                                \u00278ffb67\u0027})"},{"line_number":526,"context_line":"        self.assertEqual(response.status_int, 500)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FS0c%3D","line":525,"in_reply_to":"AAAAM3%2F%2FtJ4%3D","updated":"2013-01-30 03:14:25.000000000","message":"I\u0027ve updated the code to generate the value using the methods from python stdlib.","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0d87316fb12fb0e37f37a7be49898ac166f1d123","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                     \u0027X-Instance-ID\u0027: \u0027z-z-z-z\u0027,"},{"line_number":523,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: \u002781f42e3fc77ba3a3e8d83142746e0\u0027"},{"line_number":524,"context_line":"                                                \u00278387b96cbc5bd2474665192d2ec28\u0027"},{"line_number":525,"context_line":"                                                \u00278ffb67\u0027})"},{"line_number":526,"context_line":"        self.assertEqual(response.status_int, 500)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FtJ4%3D","line":525,"in_reply_to":"AAAAM3%2F%2FtOc%3D","updated":"2013-01-09 04:25:58.000000000","message":"This test needed a valid signature for an id of z-z-z-z so that the fake_get_metadata() would throw an exception.","commit_id":"749c685cb1e541b76cfa0c22fc3c163ddc9feaba"}]}
