)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"2b84df8058a490fb1ce70a734cbb55dea7e91fc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Hindle \u003cshindle@llnw.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-07 09:07:34 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Read partition tables directly, bypassing stale kernel data for ceph."},{"line_number":8,"context_line":"  The Ceph osd bootstrap/startup logic depends upon reading/writing"},{"line_number":9,"context_line":"partition names.  Unfortunately, the /sys file system doesn\u0027t get"},{"line_number":10,"context_line":"updated when partition names change.  To work around this, we"},{"line_number":11,"context_line":"shell out to sgdisk and scrape the partition name data directly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"},{"line_number":14,"context_line":"Closes-Bug: 1589309"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_533996a3","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":64},"updated":"2016-06-07 16:26:57.000000000","message":"Improve commit message.\n\nRead partition tables directly, bypassing stale kernel data for ceph.\n\nThe Ceph osd bootstrap/startup logic depends upon reading/writing partition names.  \nUnfortunately, the /sys file system doesn\u0027t get updated when partition names change.\nTo work around this, we shell out to sgdisk and scrape the partition name data directly.","commit_id":"417d5496cfe725e8e7273eaa5102e0dd7e302ee6"},{"author":{"_account_id":11105,"name":"Swapnil Kulkarni","email":"coolsvap@gmail.com","username":"coolsvap"},"change_message_id":"bb8514f273f944661ec525a19c5c7bc7a336c3e6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Hindle \u003cshindle@llnw.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-07 09:07:34 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Read partition tables directly, bypassing stale kernel data for ceph."},{"line_number":8,"context_line":"  The Ceph osd bootstrap/startup logic depends upon reading/writing"},{"line_number":9,"context_line":"partition names.  Unfortunately, the /sys file system doesn\u0027t get"},{"line_number":10,"context_line":"updated when partition names change.  To work around this, we"},{"line_number":11,"context_line":"shell out to sgdisk and scrape the partition name data directly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"},{"line_number":14,"context_line":"Closes-Bug: 1589309"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_44ece429","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":64},"in_reply_to":"7aa08908_533996a3","updated":"2016-06-08 14:54:33.000000000","message":"A blank line between commit title and message is expected.","commit_id":"417d5496cfe725e8e7273eaa5102e0dd7e302ee6"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"9c6d1d1e941e03ccc1d9046af5354614805e262e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Read partition tables directly, bypassing stale kernel data for ceph."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"  The Ceph osd bootstrap/startup logic depends upon reading/writing"},{"line_number":10,"context_line":"partition names.  Unfortunately, the /sys file system doesn\u0027t get"},{"line_number":11,"context_line":"updated when partition names change.  To work around this, we"},{"line_number":12,"context_line":"shell out to sgdisk and scrape the partition name data directly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_3476f8d8","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":2},"updated":"2016-06-09 10:41:16.000000000","message":"First whitespace is not necessary","commit_id":"e12a74fbdd0c34827f598ba5c22595cee79c6f7b"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"45e44bbdf586f19d4648f94a8667618bc4217438","unresolved":false,"context_lines":[{"line_number":17,"context_line":"name data directly."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-authored-by: Paul Bourke \u003cpaul.bourke@oracle.com\u003e"},{"line_number":20,"context_line":"Closes-Bug: 1589309"},{"line_number":21,"context_line":"Closes-Bug: 1585185"},{"line_number":22,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_ed29ea38","line":20,"updated":"2016-07-05 11:27:05.000000000","message":"talked with Stephen in IRC. this bug is invalid.","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"6bc4f9a8c059f619be59e54052682c0377ea56c5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"name data directly."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-authored-by: Paul Bourke \u003cpaul.bourke@oracle.com\u003e"},{"line_number":20,"context_line":"Closes-Bug: 1589309"},{"line_number":21,"context_line":"Closes-Bug: 1585185"},{"line_number":22,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_532ff3f5","line":20,"in_reply_to":"1aa78d24_ed29ea38","updated":"2016-07-05 14:58:43.000000000","message":"Done","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"45e44bbdf586f19d4648f94a8667618bc4217438","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-authored-by: Paul Bourke \u003cpaul.bourke@oracle.com\u003e"},{"line_number":20,"context_line":"Closes-Bug: 1589309"},{"line_number":21,"context_line":"Closes-Bug: 1585185"},{"line_number":22,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_4d211e4d","line":21,"updated":"2016-07-05 11:27:05.000000000","message":"This is the real bug. The udev is buggy.\n\nSo this commit message should be update to descript this bug.","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"6bc4f9a8c059f619be59e54052682c0377ea56c5","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-authored-by: Paul Bourke \u003cpaul.bourke@oracle.com\u003e"},{"line_number":20,"context_line":"Closes-Bug: 1589309"},{"line_number":21,"context_line":"Closes-Bug: 1585185"},{"line_number":22,"context_line":"Change-Id: I362b3f8e91de79687fc84e256996fbcaf303b6af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_b3361750","line":21,"in_reply_to":"1aa78d24_4d211e4d","updated":"2016-07-05 14:58:43.000000000","message":"Done","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"}],"docker/kolla-toolbox/Dockerfile.j2":[{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"2b84df8058a490fb1ce70a734cbb55dea7e91fc8","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"{{ include_footer }}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#USER ansible"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"7aa08908_136b8e86","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":13},"updated":"2016-06-07 16:26:57.000000000","message":"Why you commented it?","commit_id":"417d5496cfe725e8e7273eaa5102e0dd7e302ee6"},{"author":{"_account_id":14103,"name":"wangtianfa","email":"wang.tianfa@99cloud.net","username":"wangtianfa"},"change_message_id":"cf5e9bf8d17ca1a6a6c56548c43cd21e414d7a7d","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"{{ include_footer }}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#USER ansible"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"7aa08908_3dd618f1","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":13},"in_reply_to":"7aa08908_136b8e86","updated":"2016-06-08 13:35:10.000000000","message":"I am confused as well.","commit_id":"417d5496cfe725e8e7273eaa5102e0dd7e302ee6"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"e6093edf032224556a41b61f7123cae0cec82720","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"{{ include_footer }}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#USER ansible"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"7aa08908_14ac9c34","line":70,"updated":"2016-06-09 11:02:41.000000000","message":"Should not be doing this, if sudo is needed we need sudoers entries to allow it as in the other images","commit_id":"e12a74fbdd0c34827f598ba5c22595cee79c6f7b"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"90bb4324c15f2c577f2f84484cdc0f29eca404f8","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"{{ include_footer }}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#USER ansible"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"7aa08908_96ba3e09","line":70,"in_reply_to":"7aa08908_14ac9c34","updated":"2016-06-09 15:35:58.000000000","message":"I Agree","commit_id":"e12a74fbdd0c34827f598ba5c22595cee79c6f7b"}],"docker/kolla-toolbox/find_disks.py":[{"author":{"_account_id":10787,"name":"Michal Jastrzebski (inc0)","email":"michal.jastrzebski@intel.com","username":"inc0"},"change_message_id":"b630ff215eb4ba85fa9385741c1b9634b5f54682","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    part \u003d re.sub(r\u0027.*[^\\d]\u0027, \u0027\u0027, dev.device_node)"},{"line_number":75,"context_line":"    parent \u003d dev.find_parent(\u0027block\u0027).device_node"},{"line_number":76,"context_line":"    # NOTE(Mech422): Need to use -i as -p cuts off part of the partition name"},{"line_number":77,"context_line":"    cmd \u003d \"sudo /usr/sbin/sgdisk -i {} {} | \".format(part, parent)"},{"line_number":78,"context_line":"    cmd \u003d cmd + \"grep \u0027^Partition name:\u0027 \""},{"line_number":79,"context_line":"    tmp \u003d subprocess.Popen(cmd,"},{"line_number":80,"context_line":"                           stdout\u003dsubprocess.PIPE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_d214e44e","line":77,"updated":"2016-07-01 13:50:06.000000000","message":"so, can we remove sude here and make task become: True?","commit_id":"4beb0d50487a6e462b16ef0b41cfe3c1ce498c31"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2da39d3b4d3918d804639c928f2dfa67df907f6d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    part \u003d re.sub(r\u0027.*[^\\d]\u0027, \u0027\u0027, dev.device_node)"},{"line_number":75,"context_line":"    parent \u003d dev.find_parent(\u0027block\u0027).device_node"},{"line_number":76,"context_line":"    # NOTE(Mech422): Need to use -i as -p cuts off part of the partition name"},{"line_number":77,"context_line":"    cmd \u003d \"sudo /usr/sbin/sgdisk -i {} {} | \".format(part, parent)"},{"line_number":78,"context_line":"    cmd \u003d cmd + \"grep \u0027^Partition name:\u0027 \""},{"line_number":79,"context_line":"    tmp \u003d subprocess.Popen(cmd,"},{"line_number":80,"context_line":"                           stdout\u003dsubprocess.PIPE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_e70f9989","line":77,"in_reply_to":"3aaa91ec_d214e44e","updated":"2016-07-01 16:56:53.000000000","message":"Done","commit_id":"4beb0d50487a6e462b16ef0b41cfe3c1ce498c31"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"45e44bbdf586f19d4648f94a8667618bc4217438","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def is_dev_matched_by_name(dev, name, mode):"},{"line_number":92,"context_line":"    if dev.get(\u0027DEVTYPE\u0027, \u0027\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":93,"context_line":"        dev_name \u003d get_current_part_name(dev)"},{"line_number":94,"context_line":"    else:"},{"line_number":95,"context_line":"        dev_name \u003d dev.get(\u0027ID_FS_LABEL\u0027, \u0027\u0027)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_2d1c9212","line":93,"updated":"2016-07-05 11:27:05.000000000","message":"i think we should use udev at final, when the udev bug is fixed in the future.\nSo, how about use such logical\n\nwhen the udev has higher version without issue, use pyudev directly.\nwhen the udev has lower version with this issue, use sgdisk instead and\nadd some NOTE to explain this.","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"6bc4f9a8c059f619be59e54052682c0377ea56c5","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def is_dev_matched_by_name(dev, name, mode):"},{"line_number":92,"context_line":"    if dev.get(\u0027DEVTYPE\u0027, \u0027\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":93,"context_line":"        dev_name \u003d get_current_part_name(dev)"},{"line_number":94,"context_line":"    else:"},{"line_number":95,"context_line":"        dev_name \u003d dev.get(\u0027ID_FS_LABEL\u0027, \u0027\u0027)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_93395b44","line":93,"in_reply_to":"1aa78d24_2d1c9212","updated":"2016-07-05 14:58:43.000000000","message":"Done","commit_id":"3415c9f656cec9512882cb6c2f543b3a1203ddc4"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b023be53949db3edd33ff5d8a640a11efe8f0cd5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        cmd \u003d cmd + \"grep \u0027^Partition name:\u0027 \""},{"line_number":89,"context_line":"        tmp \u003d subprocess.Popen(cmd,"},{"line_number":90,"context_line":"                               stdout\u003dsubprocess.PIPE,"},{"line_number":91,"context_line":"                               shell\u003dTrue).communicate()"},{"line_number":92,"context_line":"        tmp \u003d tmp[0]"},{"line_number":93,"context_line":"        if tmp.find(\u0027:\u0027) !\u003d -1:"},{"line_number":94,"context_line":"            tmp \u003d tmp.split(\u0027:\u0027)[1]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_2a51ef36","line":91,"updated":"2016-07-06 01:38:34.000000000","message":"why not use more powerful regular expression to parse the output, rather than the grep.","commit_id":"d87471d5180ec1c6a5f045e75d6b81d25d83b9cc"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"3280051e5a05fa1e06db697f50584219a0605dca","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        cmd \u003d cmd + \"grep \u0027^Partition name:\u0027 \""},{"line_number":89,"context_line":"        tmp \u003d subprocess.Popen(cmd,"},{"line_number":90,"context_line":"                               stdout\u003dsubprocess.PIPE,"},{"line_number":91,"context_line":"                               shell\u003dTrue).communicate()"},{"line_number":92,"context_line":"        tmp \u003d tmp[0]"},{"line_number":93,"context_line":"        if tmp.find(\u0027:\u0027) !\u003d -1:"},{"line_number":94,"context_line":"            tmp \u003d tmp.split(\u0027:\u0027)[1]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_f6585f8c","line":91,"in_reply_to":"1aa78d24_2a51ef36","updated":"2016-07-06 10:26:30.000000000","message":"Done","commit_id":"d87471d5180ec1c6a5f045e75d6b81d25d83b9cc"}]}
