)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3688460b9f20ec57c64ef9108e5b34cf632fdf4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When attaching block devices, we find the next device name to use by"},{"line_number":10,"context_line":"looking at the used device letters in the block device mappings and"},{"line_number":11,"context_line":"selecting the next available letter, as long as the letter is within"},{"line_number":12,"context_line":"\u0027a\u0027 - \u0027z\u0027 or \u0027aa\u0027 - \u0027zz\u0027. This allows us to represent 702 devices (and"},{"line_number":13,"context_line":"would interestingly hit an IndexError if all \u0027a\u0027 - \u0027z\u0027 and \u0027aa\u0027 - \u0027zz\u0027"},{"line_number":14,"context_line":"letters were in use already."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"bfdaf3ff_cfcf677d","line":12,"range":{"start_line":12,"start_character":66,"end_line":12,"end_character":67},"updated":"2019-01-15 19:19:23.000000000","message":"nit: missing closing paranthesis","commit_id":"cf9e6db595191cefaba469c00efa66b5e51f3b65"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"93593535cc5ed94cb5e29d3e15b52a3a59a93b5b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When attaching block devices, we find the next device name to use by"},{"line_number":10,"context_line":"looking at the used device letters in the block device mappings and"},{"line_number":11,"context_line":"selecting the next available letter, as long as the letter is within"},{"line_number":12,"context_line":"\u0027a\u0027 - \u0027z\u0027 or \u0027aa\u0027 - \u0027zz\u0027. This allows us to represent 702 devices (and"},{"line_number":13,"context_line":"would interestingly hit an IndexError if all \u0027a\u0027 - \u0027z\u0027 and \u0027aa\u0027 - \u0027zz\u0027"},{"line_number":14,"context_line":"letters were in use already."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"bfdaf3ff_6f175ba5","line":12,"range":{"start_line":12,"start_character":66,"end_line":12,"end_character":67},"in_reply_to":"bfdaf3ff_cfcf677d","updated":"2019-01-15 19:23:41.000000000","message":"Dangit.","commit_id":"cf9e6db595191cefaba469c00efa66b5e51f3b65"}],"nova/block_device.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd3adce4b70c330aa287f5b997d09ad610a52e5d","unresolved":false,"context_lines":[{"line_number":516,"context_line":"       index \u003d     0,   1,..., 18277"},{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_8f1c94c3","line":519,"range":{"start_line":519,"start_character":11,"end_line":519,"end_character":34},"updated":"2018-12-10 15:31:19.000000000","message":"this is just 26\nyou can leave the valuation in a comment but there is no reason to keep computing this everytime.","commit_id":"5c633ac52da0ec7f5de99008868dd0dce96ae56f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a0ffbe57b55e7add3924f3068baa789c00138988","unresolved":false,"context_lines":[{"line_number":516,"context_line":"       index \u003d     0,   1,..., 18277"},{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_5e3d89b7","line":519,"range":{"start_line":519,"start_character":11,"end_line":519,"end_character":34},"in_reply_to":"3f79a3b5_8f1c94c3","updated":"2018-12-13 00:10:15.000000000","message":"I guess, but I don\u0027t think it\u0027s harmful to be explicit here.","commit_id":"5c633ac52da0ec7f5de99008868dd0dce96ae56f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd3adce4b70c330aa287f5b997d09ad610a52e5d","unresolved":false,"context_lines":[{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":523,"context_line":"        unitdevname \u003d digitp + unitdevname"},{"line_number":524,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    return prefix + unitdevname"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_aafe1e00","line":523,"range":{"start_line":522,"start_character":6,"end_line":523,"end_character":42},"updated":"2018-12-10 15:31:19.000000000","message":"nit: a slightly more efficient way to do this is to have a alphabet string \"abcdefghijklmnopqrstuvwxyz\"\nand just splice the characters directly into unitdevname\n\ne.g. unitdevname \u003d alphabet[(index % base)] + unitdevname","commit_id":"5c633ac52da0ec7f5de99008868dd0dce96ae56f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a0ffbe57b55e7add3924f3068baa789c00138988","unresolved":false,"context_lines":[{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":523,"context_line":"        unitdevname \u003d digitp + unitdevname"},{"line_number":524,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    return prefix + unitdevname"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_fe6b35b8","line":523,"range":{"start_line":522,"start_character":6,"end_line":523,"end_character":42},"in_reply_to":"3f79a3b5_aafe1e00","updated":"2018-12-13 00:10:15.000000000","message":"Interesting idea but again, not sure it\u0027s worth changing around.","commit_id":"5c633ac52da0ec7f5de99008868dd0dce96ae56f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d2778a1d8624979df7d21d680a70d3edac6d008c","unresolved":false,"context_lines":[{"line_number":516,"context_line":"       index \u003d     0,   1,..., 18277"},{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_20ae5183","line":519,"range":{"start_line":519,"start_character":4,"end_line":519,"end_character":34},"updated":"2018-12-14 02:15:43.000000000","message":"why not just use 26, there are only 26 charactors, no need to calculate it...","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a947e916787361764cd0f2fb1536ecfe8cd74be8","unresolved":false,"context_lines":[{"line_number":516,"context_line":"       index \u003d     0,   1,..., 18277"},{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9a4f1f67","line":519,"range":{"start_line":519,"start_character":4,"end_line":519,"end_character":34},"in_reply_to":"3f79a3b5_20ae5183","updated":"2018-12-20 08:48:53.000000000","message":"IMHO, having the calc here is better than a magic number. But maybe that\u0027s just me.","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"92ed3b688bae9b09376ccce741a618fd321c9291","unresolved":false,"context_lines":[{"line_number":516,"context_line":"       index \u003d     0,   1,..., 18277"},{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_fae653dc","line":519,"range":{"start_line":519,"start_character":4,"end_line":519,"end_character":34},"in_reply_to":"3f79a3b5_9a4f1f67","updated":"2018-12-20 09:21:41.000000000","message":"I understand, but 26 is pretty easy to uderstand :)","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d2778a1d8624979df7d21d680a70d3edac6d008c","unresolved":false,"context_lines":[{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":523,"context_line":"        unitdevname \u003d digitp + unitdevname"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_a0982168","line":520,"range":{"start_line":520,"start_character":4,"end_line":520,"end_character":15},"updated":"2018-12-14 02:15:43.000000000","message":"\"unit_dev_name\" looks more consistant with other variables in the file?","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"92ed3b688bae9b09376ccce741a618fd321c9291","unresolved":false,"context_lines":[{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":523,"context_line":"        unitdevname \u003d digitp + unitdevname"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_bafd3b71","line":520,"range":{"start_line":520,"start_character":4,"end_line":520,"end_character":15},"in_reply_to":"3f79a3b5_5a3507d2","updated":"2018-12-20 09:21:41.000000000","message":"Yeah, true.","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a947e916787361764cd0f2fb1536ecfe8cd74be8","unresolved":false,"context_lines":[{"line_number":517,"context_line":"       results \u003d vda, vdb,..., vdzzz"},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":520,"context_line":"    unitdevname \u003d \"\""},{"line_number":521,"context_line":"    while index \u003e\u003d 0:"},{"line_number":522,"context_line":"        digitp \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":523,"context_line":"        unitdevname \u003d digitp + unitdevname"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_5a3507d2","line":520,"range":{"start_line":520,"start_character":4,"end_line":520,"end_character":15},"in_reply_to":"3f79a3b5_a0982168","updated":"2018-12-20 08:48:53.000000000","message":"OK, but not sure that\u0027s worth a -1.","commit_id":"a2e1d1bd572fa71cc8ed53f618e322ac5ae524db"}],"nova/tests/unit/test_block_device.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd3adce4b70c330aa287f5b997d09ad610a52e5d","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.assertIsNone(block_device.get_device_letter(None))"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_generate_device_name(self):"},{"line_number":153,"context_line":"        expected \u003d ("},{"line_number":154,"context_line":"                (\u0027vda\u0027, (\"vd\", 0)),"},{"line_number":155,"context_line":"                (\u0027vdaa\u0027, (\"vd\", 26)),"},{"line_number":156,"context_line":"                (\u0027vdabc\u0027, (\"vd\", 730)),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ca527ad9","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":16},"updated":"2018-12-10 15:31:19.000000000","message":"nit: this is not really the expected result\nits the result + input data\nso i would call this \"testcases\"","commit_id":"5c633ac52da0ec7f5de99008868dd0dce96ae56f"}],"nova/virt/libvirt/blockinfo.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bd41d3861e7ea51ea4f0817aef1aa093612d8ff","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def blk_device_name(prefix, index):"},{"line_number":166,"context_line":"    \"\"\"Returns device unit name by index"},{"line_number":167,"context_line":"        i.e."},{"line_number":168,"context_line":"            vda, vdb,..., vdzzz"},{"line_number":169,"context_line":"    \"\"\""},{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_01b2bf49","line":167,"range":{"start_line":167,"start_character":4,"end_line":167,"end_character":8},"updated":"2018-08-24 07:51:46.000000000","message":"Missing line separator with previous line.\n\nThis should be aligned at the first indentation level (where the first \" is), but maybe Nova does this this way...","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def blk_device_name(prefix, index):"},{"line_number":166,"context_line":"    \"\"\"Returns device unit name by index"},{"line_number":167,"context_line":"        i.e."},{"line_number":168,"context_line":"            vda, vdb,..., vdzzz"},{"line_number":169,"context_line":"    \"\"\""},{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_fb770e9f","line":167,"range":{"start_line":167,"start_character":4,"end_line":167,"end_character":8},"in_reply_to":"3f79a3b5_01b2bf49","updated":"2018-08-27 02:43:26.000000000","message":"Done","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bd41d3861e7ea51ea4f0817aef1aa093612d8ff","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    \"\"\""},{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":171,"context_line":"    unitdevname \u003d \"\""},{"line_number":172,"context_line":"    while True:"},{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_21dd7b6f","line":172,"updated":"2018-08-24 07:51:46.000000000","message":"We should use the index as the condition here:\n\n while index \u003e\u003d 0:","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    \"\"\""},{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":171,"context_line":"    unitdevname \u003d \"\""},{"line_number":172,"context_line":"    while True:"},{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_1b7bea8b","line":172,"in_reply_to":"3f79a3b5_21dd7b6f","updated":"2018-08-27 02:43:26.000000000","message":"Done","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"5395ef72cf9db6860e37656b0d592a7e1d04fcad","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":171,"context_line":"    unitdevname \u003d \"\""},{"line_number":172,"context_line":"    while True:"},{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":176,"context_line":"        if (index \u003c 0):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_751a42c6","line":173,"range":{"start_line":173,"start_character":8,"end_line":173,"end_character":9},"updated":"2018-08-24 15:47:00.000000000","message":"Suggest replacing p with a name that explains itself a bit, like \"digit\" or  \"bit\"","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    base \u003d ord(\u0027z\u0027) - ord(\u0027a\u0027) + 1"},{"line_number":171,"context_line":"    unitdevname \u003d \"\""},{"line_number":172,"context_line":"    while True:"},{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":176,"context_line":"        if (index \u003c 0):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_bb6d16cd","line":173,"range":{"start_line":173,"start_character":8,"end_line":173,"end_character":9},"in_reply_to":"3f79a3b5_751a42c6","updated":"2018-08-27 02:43:26.000000000","message":"Done","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bd41d3861e7ea51ea4f0817aef1aa093612d8ff","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":176,"context_line":"        if (index \u003c 0):"},{"line_number":177,"context_line":"            break"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return prefix + unitdevname"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_01e07f25","line":177,"range":{"start_line":176,"start_character":0,"end_line":177,"end_character":17},"updated":"2018-08-24 07:51:46.000000000","message":"No need for this if we use index in the while condition","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        p \u003d chr(ord(\u0027a\u0027) + (index % base))"},{"line_number":174,"context_line":"        unitdevname \u003d p + unitdevname"},{"line_number":175,"context_line":"        index \u003d int(index / base) - 1"},{"line_number":176,"context_line":"        if (index \u003c 0):"},{"line_number":177,"context_line":"            break"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return prefix + unitdevname"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_db7012a7","line":177,"range":{"start_line":176,"start_character":0,"end_line":177,"end_character":17},"in_reply_to":"3f79a3b5_01e07f25","updated":"2018-08-27 02:43:26.000000000","message":"Done","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bd41d3861e7ea51ea4f0817aef1aa093612d8ff","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        assigned_devices \u003d []"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    max_dev \u003d get_dev_count_for_disk_bus(bus)"},{"line_number":203,"context_line":"    idx \u003d 0"},{"line_number":204,"context_line":"    while (idx \u003c max_dev):"},{"line_number":205,"context_line":"        disk_dev \u003d blk_device_name(dev_prefix, idx)"},{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e15f830c","line":204,"range":{"start_line":203,"start_character":0,"end_line":204,"end_character":26},"updated":"2018-08-24 07:51:46.000000000","message":"Using `for` seems better:\n\n for idx in range(max_dev):","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        assigned_devices \u003d []"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    max_dev \u003d get_dev_count_for_disk_bus(bus)"},{"line_number":203,"context_line":"    idx \u003d 0"},{"line_number":204,"context_line":"    while (idx \u003c max_dev):"},{"line_number":205,"context_line":"        disk_dev \u003d blk_device_name(dev_prefix, idx)"},{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_5b5c0218","line":204,"range":{"start_line":203,"start_character":0,"end_line":204,"end_character":26},"in_reply_to":"3f79a3b5_e15f830c","updated":"2018-08-27 02:43:26.000000000","message":"No, if idx has large number, range(65536) takes a long time.","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bd41d3861e7ea51ea4f0817aef1aa093612d8ff","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"},{"line_number":208,"context_line":"                return disk_dev"},{"line_number":209,"context_line":"        idx \u003d idx + 1"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    msg \u003d _(\"No free disk device names for prefix \u0027%s\u0027\") % dev_prefix"},{"line_number":212,"context_line":"    raise exception.InternalError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_015ddf13","line":209,"updated":"2018-08-24 07:51:46.000000000","message":"No need if we use `for`","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"5395ef72cf9db6860e37656b0d592a7e1d04fcad","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"},{"line_number":208,"context_line":"                return disk_dev"},{"line_number":209,"context_line":"        idx \u003d idx + 1"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    msg \u003d _(\"No free disk device names for prefix \u0027%s\u0027\") % dev_prefix"},{"line_number":212,"context_line":"    raise exception.InternalError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_157bcef4","line":209,"in_reply_to":"3f79a3b5_015ddf13","updated":"2018-08-24 15:47:00.000000000","message":"Agree. Basically \u0027for ... in ...\u0027 and \u0027while\u0027 do the same thing, so we might as well keep the old format.","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"},{"line_number":208,"context_line":"                return disk_dev"},{"line_number":209,"context_line":"        idx \u003d idx + 1"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    msg \u003d _(\"No free disk device names for prefix \u0027%s\u0027\") % dev_prefix"},{"line_number":212,"context_line":"    raise exception.InternalError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_dba57204","line":209,"in_reply_to":"3f79a3b5_015ddf13","updated":"2018-08-27 02:43:26.000000000","message":"for range(large-num) takes a long time.","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"},{"author":{"_account_id":28203,"name":"Tsuyoshi Nagata","email":"nagata3333333@jp.fujitsu.com","username":"yukari-papa"},"change_message_id":"870e5a34452692cc9affa789a502e67bd0b8ec75","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if not has_disk_dev(mapping, disk_dev):"},{"line_number":207,"context_line":"            if disk_dev not in assigned_devices:"},{"line_number":208,"context_line":"                return disk_dev"},{"line_number":209,"context_line":"        idx \u003d idx + 1"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    msg \u003d _(\"No free disk device names for prefix \u0027%s\u0027\") % dev_prefix"},{"line_number":212,"context_line":"    raise exception.InternalError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_1ba0caf3","line":209,"in_reply_to":"3f79a3b5_157bcef4","updated":"2018-08-27 02:43:26.000000000","message":"for range(large-num) takes a long time.","commit_id":"1c2ddf9c35c58af94d5881100f2118757c59ea2f"}]}
