)]}'
{"nova/cmd/baremetal_deploy_helper.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"f0e42136d911174a682b6461130db3ac32701fc5","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    login_iscsi(address, port, iqn)"},{"line_number":215,"context_line":"    try:"},{"line_number":216,"context_line":"        root_uuid \u003d work_on_disk(dev, root_mb, swap_mb, ephemeral_mb,"},{"line_number":217,"context_line":"                image_path)"},{"line_number":218,"context_line":"    except processutils.ProcessExecutionError as err:"},{"line_number":219,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":220,"context_line":"            # Log output if there was a error"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FhTQ%3D","line":217,"updated":"2013-10-15 02:33:27.000000000","message":"btw I\u0027d wrap this like:\n\n root_uuid \u003d work_on_disk(\n     dev, root_mb, swap_mb, ephemeral_mb, image_path)","commit_id":"16a70df210822ed539eacda90fc0b18cdc928d32"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"e6614f7497930502f4b999f41679dd13fa1ff2e7","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def mkfs_ephemeral(dev, label\u003d\"ephemeral0\"):"},{"line_number":134,"context_line":"        #TODO(jogo) support non-default mkfs options as well"},{"line_number":135,"context_line":"        disk.mkfs(\"default\", label, dev)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"def block_uuid(dev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxOc%3D","line":135,"updated":"2013-10-29 10:41:33.000000000","message":"I\u0027m not sure this is big enough to want to be a separate function.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a2d32f85550829dfcf7a4e650474889d9a1332bc","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def mkfs_ephemeral(dev, label\u003d\"ephemeral0\"):"},{"line_number":134,"context_line":"        #TODO(jogo) support non-default mkfs options as well"},{"line_number":135,"context_line":"        disk.mkfs(\"default\", label, dev)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"def block_uuid(dev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxNg%3D","line":135,"in_reply_to":"AAAATn%2F%2FxOc%3D","updated":"2013-10-29 13:30:51.000000000","message":"It was to keep be consistent with mkswap and dd above.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48bea9ec88996e0f2a6c6550443e653643009143","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n,%d,83;\\n0,0;\\n\u0027 %"},{"line_number":95,"context_line":"                (ephemeral_mb, swap_mb, root_mb))"},{"line_number":96,"context_line":"    else:"},{"line_number":97,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n0,0;\\n0,0;\\n\u0027 %"},{"line_number":98,"context_line":"                (root_mb, swap_mb))"},{"line_number":99,"context_line":"    utils.execute(\u0027sfdisk\u0027, \u0027-uM\u0027, dev, process_input\u003dstdin_command,"},{"line_number":100,"context_line":"            run_as_root\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FsD8%3D","line":97,"updated":"2013-10-30 13:20:07.000000000","message":"Seems bad to have this twice, could we make this a bit dryer? But maybe that would be overkill.","commit_id":"60392a58ad54aa40e528bbb81e34cb640aa90134"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"7a4c772abf849ade959c5ab9e816c206adf091cf","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n,%d,83;\\n0,0;\\n\u0027 %"},{"line_number":95,"context_line":"                (ephemeral_mb, swap_mb, root_mb))"},{"line_number":96,"context_line":"    else:"},{"line_number":97,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n0,0;\\n0,0;\\n\u0027 %"},{"line_number":98,"context_line":"                (root_mb, swap_mb))"},{"line_number":99,"context_line":"    utils.execute(\u0027sfdisk\u0027, \u0027-uM\u0027, dev, process_input\u003dstdin_command,"},{"line_number":100,"context_line":"            run_as_root\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FqMs%3D","line":97,"in_reply_to":"AAAATn%2F%2FsD8%3D","updated":"2013-10-30 18:29:09.000000000","message":"It is not not identical at all: the first string has three parameters and they are for partitin types 83/82/83/0, the second has two parameters with partition types 83/82/0/0.\n\nI think we could combine them but it would be less clear rather than more.","commit_id":"60392a58ad54aa40e528bbb81e34cb640aa90134"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48bea9ec88996e0f2a6c6550443e653643009143","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def mkfs_ephemeral(dev, label\u003d\"ephemeral0\"):"},{"line_number":134,"context_line":"        #TODO(jogo) support non-default mkfs options as well"},{"line_number":135,"context_line":"        disk.mkfs(\"default\", label, dev)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"def block_uuid(dev):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fr4I%3D","line":135,"updated":"2013-10-30 13:20:07.000000000","message":"Indent looks dodgy? Not sure why all the tools say its OK, might be nothing.","commit_id":"60392a58ad54aa40e528bbb81e34cb640aa90134"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"7a4c772abf849ade959c5ab9e816c206adf091cf","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def mkfs_ephemeral(dev, label\u003d\"ephemeral0\"):"},{"line_number":134,"context_line":"        #TODO(jogo) support non-default mkfs options as well"},{"line_number":135,"context_line":"        disk.mkfs(\"default\", label, dev)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"def block_uuid(dev):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FqNA%3D","line":135,"in_reply_to":"AAAATn%2F%2Fr4I%3D","updated":"2013-10-30 18:29:09.000000000","message":"It\u0027s twice what is needed indeed, well spotted.","commit_id":"60392a58ad54aa40e528bbb81e34cb640aa90134"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"507afa6cdbb84ff0e4fb11b365f4836e003bf38e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # raring/view/head:/fdisk/sfdisk.c#L1940"},{"line_number":94,"context_line":"    if ephemeral_mb:"},{"line_number":95,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n,%d,83;\\n0,0;\\n\u0027 %"},{"line_number":96,"context_line":"                (ephemeral_mb, swap_mb, root_mb))"},{"line_number":97,"context_line":"    else:"},{"line_number":98,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n0,0;\\n0,0;\\n\u0027 %"},{"line_number":99,"context_line":"                (root_mb, swap_mb))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FMA4%3D","line":96,"updated":"2013-11-13 07:13:22.000000000","message":"The bug description says \u0027We want the partition order to be: swap ephemeral root\u0027. We must choose the way we want to go and update either the code or the bug description.","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"d1fb74e2a0f8321f9e61624fc6cf010cedb7f166","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # raring/view/head:/fdisk/sfdisk.c#L1940"},{"line_number":94,"context_line":"    if ephemeral_mb:"},{"line_number":95,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n,%d,83;\\n0,0;\\n\u0027 %"},{"line_number":96,"context_line":"                (ephemeral_mb, swap_mb, root_mb))"},{"line_number":97,"context_line":"    else:"},{"line_number":98,"context_line":"        stdin_command \u003d (\u00271,%d,83;\\n,%d,82;\\n0,0;\\n0,0;\\n\u0027 %"},{"line_number":99,"context_line":"                (root_mb, swap_mb))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FJfE%3D","line":96,"in_reply_to":"AAAATn%2F%2FMA4%3D","updated":"2013-11-13 20:05:28.000000000","message":"update bug","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"9ddc2eeb1a5c064a6a742d0d0c3988c4cb00dbb3","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        return"},{"line_number":204,"context_line":"    if not is_block_device(swap_part):"},{"line_number":205,"context_line":"        LOG.warn(_(\"swap device \u0027%s\u0027 not found\"), swap_part)"},{"line_number":206,"context_line":"        return"},{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FODs%3D","line":206,"updated":"2013-11-12 18:15:59.000000000","message":"Checking is_block_device(ephemeral_part) would be consistent with existing code","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"d1fb74e2a0f8321f9e61624fc6cf010cedb7f166","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        return"},{"line_number":204,"context_line":"    if not is_block_device(swap_part):"},{"line_number":205,"context_line":"        LOG.warn(_(\"swap device \u0027%s\u0027 not found\"), swap_part)"},{"line_number":206,"context_line":"        return"},{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FJfI%3D","line":206,"in_reply_to":"AAAATn%2F%2FMBs%3D","updated":"2013-11-13 20:05:28.000000000","message":"Done","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"507afa6cdbb84ff0e4fb11b365f4836e003bf38e","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        return"},{"line_number":204,"context_line":"    if not is_block_device(swap_part):"},{"line_number":205,"context_line":"        LOG.warn(_(\"swap device \u0027%s\u0027 not found\"), swap_part)"},{"line_number":206,"context_line":"        return"},{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FMBs%3D","line":206,"in_reply_to":"AAAATn%2F%2FODs%3D","updated":"2013-11-13 07:13:22.000000000","message":"Agree, but as the ephemeral partition is meant to optional, I think, we should do something like:\n\nif ephemeral_mb and is_block_device(ephemeral_part):\n    ...\n\nhere","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"a32b0479a21528d1f7406f341959bdee13d218b9","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    if not is_block_device(dev):"},{"line_number":198,"context_line":"        LOG.warn(_(\"parent device \u0027%s\u0027 not found\"), dev)"},{"line_number":199,"context_line":"        return"},{"line_number":200,"context_line":"    make_partitions(dev, root_mb, swap_mb, ephemeral_mb)"},{"line_number":201,"context_line":"    if not is_block_device(root_part):"},{"line_number":202,"context_line":"        LOG.warn(_(\"root device \u0027%s\u0027 not found\"), root_part)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FHiY%3D","line":199,"updated":"2013-11-14 08:49:33.000000000","message":"Should raise a exception rather than return None","commit_id":"81d35f36e1dfdc02f55c5be3282d458f66e166a3"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"a32b0479a21528d1f7406f341959bdee13d218b9","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    make_partitions(dev, root_mb, swap_mb, ephemeral_mb)"},{"line_number":201,"context_line":"    if not is_block_device(root_part):"},{"line_number":202,"context_line":"        LOG.warn(_(\"root device \u0027%s\u0027 not found\"), root_part)"},{"line_number":203,"context_line":"        return"},{"line_number":204,"context_line":"    if not is_block_device(swap_part):"},{"line_number":205,"context_line":"        LOG.warn(_(\"swap device \u0027%s\u0027 not found\"), swap_part)"},{"line_number":206,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FHiU%3D","line":203,"updated":"2013-11-14 08:49:33.000000000","message":"same","commit_id":"81d35f36e1dfdc02f55c5be3282d458f66e166a3"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"a32b0479a21528d1f7406f341959bdee13d218b9","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        return"},{"line_number":204,"context_line":"    if not is_block_device(swap_part):"},{"line_number":205,"context_line":"        LOG.warn(_(\"swap device \u0027%s\u0027 not found\"), swap_part)"},{"line_number":206,"context_line":"        return"},{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb and not is_block_device(ephemeral_part):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FHiQ%3D","line":206,"updated":"2013-11-14 08:49:33.000000000","message":"same","commit_id":"81d35f36e1dfdc02f55c5be3282d458f66e166a3"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"a32b0479a21528d1f7406f341959bdee13d218b9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb and not is_block_device(ephemeral_part):"},{"line_number":210,"context_line":"        LOG.warn(_(\"ephemeral device \u0027%s\u0027 not found\"), ephemeral_part)"},{"line_number":211,"context_line":"    elif ephemeral_mb:"},{"line_number":212,"context_line":"        mkfs_ephemeral(ephemeral_part)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FHiA%3D","line":210,"updated":"2013-11-14 08:49:33.000000000","message":"same?","commit_id":"81d35f36e1dfdc02f55c5be3282d458f66e166a3"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"7edd1bc5e94bfc791d18aec3a6b63a13bef5acc1","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    dd(image_path, root_part)"},{"line_number":208,"context_line":"    mkswap(swap_part)"},{"line_number":209,"context_line":"    if ephemeral_mb and not is_block_device(ephemeral_part):"},{"line_number":210,"context_line":"        LOG.warn(_(\"ephemeral device \u0027%s\u0027 not found\"), ephemeral_part)"},{"line_number":211,"context_line":"    elif ephemeral_mb:"},{"line_number":212,"context_line":"        mkfs_ephemeral(ephemeral_part)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B5mI%3D","line":210,"in_reply_to":"AAAATn%2F%2FHiA%3D","updated":"2013-11-18 20:21:45.000000000","message":"All these things are following the existing pattern, I agree it may want changing, but as a separate thing IMO - because we need separate patches to port to Ironic.","commit_id":"81d35f36e1dfdc02f55c5be3282d458f66e166a3"}],"nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a2d32f85550829dfcf7a4e650474889d9a1332bc","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, noop)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def test_deploy(self):"},{"line_number":139,"context_line":"        \"\"\"Check loosely all functions are called with right args.\"\"\""},{"line_number":140,"context_line":"        address \u003d \u0027127.0.0.1\u0027"},{"line_number":141,"context_line":"        port \u003d 3306"},{"line_number":142,"context_line":"        iqn \u003d \u0027iqn.xyz\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxM0%3D","side":"PARENT","line":139,"updated":"2013-10-29 13:30:51.000000000","message":"original","commit_id":"afd1358f933a3606c51b83da81cef0870217fa2e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"40d9300ec79f52cb0edb5379783dcb0ec4bfb69f","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, noop)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _deploy_mox(self):"},{"line_number":139,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027get_dev\u0027)"},{"line_number":140,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027get_image_mb\u0027)"},{"line_number":141,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027discovery\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FQFE%3D","line":138,"updated":"2013-10-19 07:46:26.000000000","message":"i have been asked to refrain from mox and to use mock. i am really not sure what the stances is here.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"e6614f7497930502f4b999f41679dd13fa1ff2e7","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, noop)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _deploy_mox(self):"},{"line_number":139,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027get_dev\u0027)"},{"line_number":140,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027get_image_mb\u0027)"},{"line_number":141,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027discovery\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxPo%3D","line":138,"in_reply_to":"AAAATH%2F%2FQFE%3D","updated":"2013-10-29 10:41:33.000000000","message":"The code is still using Mox, this doesn\u0027t make it any worse or more embedded, so I think it\u0027s fine.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"e6614f7497930502f4b999f41679dd13fa1ff2e7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027notify\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_deploy_no_ephemeral(self):"},{"line_number":153,"context_line":"        \"\"\"Check loosely all functions are called with right args.\"\"\""},{"line_number":154,"context_line":"        address \u003d \u0027127.0.0.1\u0027"},{"line_number":155,"context_line":"        port \u003d 3306"},{"line_number":156,"context_line":"        iqn \u003d \u0027iqn.xyz\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxPM%3D","line":153,"updated":"2013-10-29 10:41:33.000000000","message":"Brain parse fail argh.\nCan I suggest you use a comment, not a docstring, and use more words to explain more clearly :)","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a2d32f85550829dfcf7a4e650474889d9a1332bc","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.mox.StubOutWithMock(bmdh, \u0027notify\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_deploy_no_ephemeral(self):"},{"line_number":153,"context_line":"        \"\"\"Check loosely all functions are called with right args.\"\"\""},{"line_number":154,"context_line":"        address \u003d \u0027127.0.0.1\u0027"},{"line_number":155,"context_line":"        port \u003d 3306"},{"line_number":156,"context_line":"        iqn \u003d \u0027iqn.xyz\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxM4%3D","line":153,"in_reply_to":"AAAATn%2F%2FxPM%3D","updated":"2013-10-29 13:30:51.000000000","message":"this  was a cut and paste bug, will fix.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"e6614f7497930502f4b999f41679dd13fa1ff2e7","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        self.mox.VerifyAll()"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def test_deploy_with_ephemeral(self):"},{"line_number":193,"context_line":"        \"\"\"Check loosely all functions are called with right args.\"\"\""},{"line_number":194,"context_line":"        address \u003d \u0027127.0.0.1\u0027"},{"line_number":195,"context_line":"        port \u003d 3306"},{"line_number":196,"context_line":"        iqn \u003d \u0027iqn.xyz\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FxO8%3D","line":193,"updated":"2013-10-29 10:41:33.000000000","message":"Ditto. Or just skip the docstrings entirely - they don\u0027t add much/anything.","commit_id":"2ea837d8556a581e74d22b1195af68b005f64239"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"9ddc2eeb1a5c064a6a742d0d0c3988c4cb00dbb3","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        pxe_config_path \u003d \u0027/tmp/abc/pxeconfig\u0027"},{"line_number":199,"context_line":"        root_mb \u003d 128"},{"line_number":200,"context_line":"        swap_mb \u003d 64"},{"line_number":201,"context_line":"        ephemeral_mb \u003d 128"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        dev \u003d \u0027/dev/fake\u0027"},{"line_number":204,"context_line":"        ephemeral_part \u003d \u0027/dev/fake-part1\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FN9A%3D","line":201,"updated":"2013-11-12 18:15:59.000000000","message":"Please use a different value such as 256 to check ephemeral_mb is really used. If use the same value, we cannot detect the case that root_mb is accidentally used instead of ephemeral_mb.","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"9ddc2eeb1a5c064a6a742d0d0c3988c4cb00dbb3","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        pxe_config_path \u003d \u0027/tmp/abc/pxeconfig\u0027"},{"line_number":242,"context_line":"        root_mb \u003d 128"},{"line_number":243,"context_line":"        swap_mb \u003d 64"},{"line_number":244,"context_line":"        ephemeral_mb \u003d 128"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        dev \u003d \u0027/dev/fake\u0027"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FN8Y%3D","line":244,"updated":"2013-11-12 18:15:59.000000000","message":"same as above","commit_id":"1f807cd500c847134d81b3457bfb5c6c18a32771"}]}
