)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1ff032242efa3d10905fee872d5508757fa12697","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nadya Privalova \u003cnprivalova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-01-19 19:30:31 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix recursive_keypairs output"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes bug 1268628"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAUH%2F%2BzA0%3D","line":7,"updated":"2014-01-22 02:14:45.000000000","message":"This commit message needs some work :) *What* is being fixed about the recursive_keypairs output? *Why* did you choose whatever strategy you did to fix the problem? How does the bug manifest itself? Remember, from https://wiki.openstack.org/wiki/GitCommitMessages, that you should not assume the reviewer knows exactly what the bug is nor what any triaged/proposed fix is. Reviewers sometimes review code offline and may not have access to Launchpad. Similarly, the git commit history should be self-contained, with a brief description of the bug symptoms and why the proposed patch came to be...","commit_id":"7ffc4b01557d6509910910928d393ef011532c74"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0002746138e20c7b214dd21fd73a396deed120ea","unresolved":false,"context_lines":[{"line_number":14,"context_line":"That\u0027s why it is needed not to change output from recurcive_keypairs in flatten_metadata."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"So the path has a goal to fix incorrect recursive_keypairs impementation but"},{"line_number":17,"context_line":"not to change output of flatten_matadata in API"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Fixes bug 1268628"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2BuZ4%3D","line":17,"updated":"2014-01-22 19:19:14.000000000","message":"Nadya, please fix the typos in above. It\u0027s recursive, not recurcive :) You get it right on some, wrong on others...","commit_id":"a7d3689fb570a1d91a7ba0788cf91dfdd5fd407c"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"c45af48f1cb60b862d93d371b7953c166e33696f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"That\u0027s why it is needed not to change output from recurcive_keypairs in flatten_metadata."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"So the path has a goal to fix incorrect recursive_keypairs impementation but"},{"line_number":17,"context_line":"not to change output of flatten_matadata in API"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Fixes bug 1268628"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2BrcM%3D","line":17,"in_reply_to":"AAAAUH%2F%2BuZ4%3D","updated":"2014-01-23 09:32:14.000000000","message":"Done","commit_id":"a7d3689fb570a1d91a7ba0788cf91dfdd5fd407c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0002746138e20c7b214dd21fd73a396deed120ea","unresolved":false,"context_lines":[{"line_number":16,"context_line":"So the path has a goal to fix incorrect recursive_keypairs impementation but"},{"line_number":17,"context_line":"not to change output of flatten_matadata in API"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Fixes bug 1268628"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Ic9829342c47325c1df7b81dc4148c08a13e0d067"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2BuZs%3D","line":19,"updated":"2014-01-22 19:19:14.000000000","message":"Above should be:\n\nCloses-bug: #1268628\n\nJust FYI..","commit_id":"a7d3689fb570a1d91a7ba0788cf91dfdd5fd407c"}],"ceilometer/api/controllers/v2.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1ff032242efa3d10905fee872d5508757fa12697","unresolved":false,"context_lines":[{"line_number":510,"context_line":"    to unicode strings."},{"line_number":511,"context_line":"    \"\"\""},{"line_number":512,"context_line":"    if metadata:"},{"line_number":513,"context_line":"        #We need this hack to keep output from this method unchanged"},{"line_number":514,"context_line":"        return dict((k.replace(\u0027.\u0027, \u0027:\u0027).replace(\u0027:\u0027, \u0027.\u0027, 1), unicode(v))"},{"line_number":515,"context_line":"                    for k, v in utils.recursive_keypairs(metadata,"},{"line_number":516,"context_line":"                                                         separator\u003d\u0027.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BzAs%3D","line":513,"updated":"2014-01-22 02:14:45.000000000","message":"Unchanged from what? It would be better to include in the comment (which should have a space after the # sign and the first words, BTW :) some example output that is produced from the function and why the below replace() technique is necessary.","commit_id":"7ffc4b01557d6509910910928d393ef011532c74"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0002746138e20c7b214dd21fd73a396deed120ea","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        # Example: recursive_keypairs({\u0027a\u0027: {\u0027b\u0027:{\u0027c\u0027:\u0027d\u0027}}}, \u0027.\u0027)"},{"line_number":515,"context_line":"        # output before: a.b:c\u003dd"},{"line_number":516,"context_line":"        # output now: a.b.c\u003dd"},{"line_number":517,"context_line":"        # So to keep the first variant just replace all dots except the first"},{"line_number":518,"context_line":"        return dict((k.replace(\u0027.\u0027, \u0027:\u0027).replace(\u0027:\u0027, \u0027.\u0027, 1), unicode(v))"},{"line_number":519,"context_line":"                    for k, v in utils.recursive_keypairs(metadata,"},{"line_number":520,"context_line":"                                                         separator\u003d\u0027.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BuZk%3D","line":517,"updated":"2014-01-22 19:19:14.000000000","message":"Nice! That is exactly what I was looking for :)","commit_id":"a7d3689fb570a1d91a7ba0788cf91dfdd5fd407c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1deefb3f6c964b34c244e4cc658c17e8e5e9626a","unresolved":false,"context_lines":[{"line_number":516,"context_line":"        # output before: a.b:c\u003dd"},{"line_number":517,"context_line":"        # output now: a.b.c\u003dd"},{"line_number":518,"context_line":"        # So to keep the first variant just replace all dots except the first"},{"line_number":519,"context_line":"        return dict((k.replace(\u0027.\u0027, \u0027:\u0027).replace(\u0027:\u0027, \u0027.\u0027, 1), unicode(v))"},{"line_number":520,"context_line":"                    for k, v in utils.recursive_keypairs(metadata,"},{"line_number":521,"context_line":"                                                         separator\u003d\u0027.\u0027)"},{"line_number":522,"context_line":"                    if type(v) is not set)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BXU4%3D","line":519,"updated":"2014-01-27 17:36:30.000000000","message":"i don\u0027t think we need to add a clause to fix output back to a.b:c\u003dd... that was incorrect in the first place.\n\na question i have is, what happened before on sample post? we were posting samples to mongo as a.b:c\u003dd which isn\u0027t right. are those all stored as having a toplevel key as \u0027a\u0027 and a second key \u0027b:c\u0027 for everything after? ie no more than 2 key levels?","commit_id":"fb32c3b19c283d9d4cf78af35d33bd12f16452cf"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"f62f92fe0995af0b4ebd7c540508f5a9a80a01eb","unresolved":false,"context_lines":[{"line_number":516,"context_line":"        # output before: a.b:c\u003dd"},{"line_number":517,"context_line":"        # output now: a.b.c\u003dd"},{"line_number":518,"context_line":"        # So to keep the first variant just replace all dots except the first"},{"line_number":519,"context_line":"        return dict((k.replace(\u0027.\u0027, \u0027:\u0027).replace(\u0027:\u0027, \u0027.\u0027, 1), unicode(v))"},{"line_number":520,"context_line":"                    for k, v in utils.recursive_keypairs(metadata,"},{"line_number":521,"context_line":"                                                         separator\u003d\u0027.\u0027)"},{"line_number":522,"context_line":"                    if type(v) is not set)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F91hk%3D","line":519,"in_reply_to":"AAAAUH%2F%2BXU4%3D","updated":"2014-02-03 13:58:28.000000000","message":"Gordon, I may prepare another patch without this hack. But I\u0027m not sure that it is appropriate because clients may be depending on incorrect format. I\u0027m not sure is it very important or not. Besides, we have a lot of tests that are checking that format is incorrect :)\n\nAnd several words about posting. I was trying to post complex metadata and found out that it is just impossible because of validation: OldSample contains resource_metadata \u003d {wtypes.text: wtypes.text}. Please correct me if I\u0027m wrong here but I didn\u0027t find a way to POST anything that is more complex than {\u0027a\u0027:\u0027b\u0027}","commit_id":"fb32c3b19c283d9d4cf78af35d33bd12f16452cf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"7554f9cefe35f927bce8fe94a86705aa9daca5bb","unresolved":false,"context_lines":[{"line_number":516,"context_line":"        # output before: a.b:c\u003dd"},{"line_number":517,"context_line":"        # output now: a.b.c\u003dd"},{"line_number":518,"context_line":"        # So to keep the first variant just replace all dots except the first"},{"line_number":519,"context_line":"        return dict((k.replace(\u0027.\u0027, \u0027:\u0027).replace(\u0027:\u0027, \u0027.\u0027, 1), unicode(v))"},{"line_number":520,"context_line":"                    for k, v in utils.recursive_keypairs(metadata,"},{"line_number":521,"context_line":"                                                         separator\u003d\u0027.\u0027)"},{"line_number":522,"context_line":"                    if type(v) is not set)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9krs%3D","line":519,"in_reply_to":"AAAAUH%2F91hk%3D","updated":"2014-02-05 23:33:06.000000000","message":"we actually have tests that look for a.b:c:d? yikes. we brought that bug on ourselves\n\ngood point on compatibility... that said it does bother me that we continue to provide output that doesn\u0027t match how you\u0027d query for it.\n\nyou\u0027re right: resource_metadata \u003d {wtypes.text: wtypes.text} does limit what we can post. i hadn\u0027t notice that.","commit_id":"fb32c3b19c283d9d4cf78af35d33bd12f16452cf"}]}
