)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"325195dd330ea10c0606ae66906be96e6db93994","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Simplify method signatures by combining network_info, admin_pass, and"},{"line_number":10,"context_line":"files into a single data structure."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":13,"context_line":"Change-Id: I11ae6a0709d4d85f85c3e8e3f3cf8ca9e26a4798"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7a77a97e_6f906396","line":11,"updated":"2016-11-22 15:49:13.000000000","message":"You also change _create_configdrive to accept a \u0027rescue\u0027 boolean instead of an \u0027image_suffix\u0027 string. Worth mentioning?","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"c87a5c2c890c6a68063c545163d271a67c67f53a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Simplify method signatures by combining network_info, admin_pass, and"},{"line_number":10,"context_line":"files into a single data structure."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: bp/libvirt-imagebackend-refactor"},{"line_number":13,"context_line":"Change-Id: I11ae6a0709d4d85f85c3e8e3f3cf8ca9e26a4798"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5a74a57a_2204f913","line":11,"in_reply_to":"7a77a97e_6f906396","updated":"2016-11-23 12:23:15.000000000","message":"Nah, that\u0027s incidental.","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"95aaa1a231ec9f9a4f1248a9c74e29cbcc7c706f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matthew Booth \u003cmbooth@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-05 11:54:15 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: Combine injection info in InjectionInifo"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Simplify method signatures by combining network_info, admin_pass, and"},{"line_number":10,"context_line":"files into a single data structure."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"3a71b18c_ac6cfed0","line":7,"range":{"start_line":7,"start_character":44,"end_line":7,"end_character":49},"updated":"2016-12-05 15:15:34.000000000","message":"Eurgh.","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"9abed76660324bd0ac2e86633c815259a7920710","unresolved":false,"context_lines":[{"line_number":3044,"context_line":"            libvirt_utils.chown(image(\u0027disk\u0027).path, \u0027root\u0027)"},{"line_number":3045,"context_line":""},{"line_number":3046,"context_line":"        # File injection only if needed"},{"line_number":3047,"context_line":"        need_inject \u003d (config_info is not None and"},{"line_number":3048,"context_line":"                       CONF.libvirt.inject_partition !\u003d -2)"},{"line_number":3049,"context_line":""},{"line_number":3050,"context_line":"        # NOTE(ndipanov): Even if disk_mapping was passed in, which"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a89bdaa_19e1f6d0","line":3047,"updated":"2016-09-06 04:52:41.000000000","message":"You change the logic here, why?","commit_id":"09063e2703c0b76c17e35f13980eb021f89bd1b8"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"fdf2877e40d038d5821ced3cb58a6331be75254d","unresolved":false,"context_lines":[{"line_number":3044,"context_line":"            libvirt_utils.chown(image(\u0027disk\u0027).path, \u0027root\u0027)"},{"line_number":3045,"context_line":""},{"line_number":3046,"context_line":"        # File injection only if needed"},{"line_number":3047,"context_line":"        need_inject \u003d (config_info is not None and"},{"line_number":3048,"context_line":"                       CONF.libvirt.inject_partition !\u003d -2)"},{"line_number":3049,"context_line":""},{"line_number":3050,"context_line":"        # NOTE(ndipanov): Even if disk_mapping was passed in, which"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a89bdaa_7522f902","line":3047,"in_reply_to":"9a89bdaa_19e1f6d0","updated":"2016-09-06 10:02:48.000000000","message":"It fixes a regression :) Good spot, though!\n\nSee change I990f1994. I expect that to land first, which will cause a merge conflict here, and I\u0027ll change it then.","commit_id":"09063e2703c0b76c17e35f13980eb021f89bd1b8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1c4e79ae85fb099eebc1b7ebd2ef721d25231d8e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    \u0027GuestNumaConfig\u0027, [\u0027cpuset\u0027, \u0027cputune\u0027, \u0027numaconfig\u0027, \u0027numatune\u0027])"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"InstanceConfig \u003d collections.namedtuple("},{"line_number":148,"context_line":"    \u0027InstanceConfig\u0027, [\u0027network_info\u0027, \u0027files\u0027, \u0027admin_pass\u0027])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"libvirt_volume_drivers \u003d ["},{"line_number":151,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_9d8b2e68","line":148,"updated":"2016-11-22 19:41:58.000000000","message":"How about \"InjectionInfo\" instead of \"InstanceConfig\" to be explicit about what the configuration information is referring to?","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"c87a5c2c890c6a68063c545163d271a67c67f53a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    \u0027GuestNumaConfig\u0027, [\u0027cpuset\u0027, \u0027cputune\u0027, \u0027numaconfig\u0027, \u0027numatune\u0027])"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"InstanceConfig \u003d collections.namedtuple("},{"line_number":148,"context_line":"    \u0027InstanceConfig\u0027, [\u0027network_info\u0027, \u0027files\u0027, \u0027admin_pass\u0027])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"libvirt_volume_drivers \u003d ["},{"line_number":151,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a74a57a_22795994","line":148,"in_reply_to":"7a77a97e_9d8b2e68","updated":"2016-11-23 12:23:15.000000000","message":"I admit I\u0027m not a fan of InstanceConfig either. Problem is it\u0027s not always injected, as it\u0027s also the data which goes in a config disk. On balance I think InjectionInfo is better, though, so unless I have a better idea I\u0027ll use it.","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1c4e79ae85fb099eebc1b7ebd2ef721d25231d8e","unresolved":false,"context_lines":[{"line_number":2561,"context_line":"                                     admin_pass\u003drescue_password,"},{"line_number":2562,"context_line":"                                     files\u003dNone)"},{"line_number":2563,"context_line":"        gen_confdrive \u003d functools.partial(self._create_configdrive,"},{"line_number":2564,"context_line":"                                          context, instance, config_info,"},{"line_number":2565,"context_line":"                                          rescue\u003dTrue)"},{"line_number":2566,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2567,"context_line":"                           config_info, suffix\u003d\u0027.rescue\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_1da8feda","line":2564,"updated":"2016-11-22 19:41:58.000000000","message":"Here and throughout, please name the variable injection_info instead of config_info to make it clear what the info is actually about...","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"325195dd330ea10c0606ae66906be96e6db93994","unresolved":false,"context_lines":[{"line_number":3161,"context_line":"                instance, name, self._get_disk_config_image_type())"},{"line_number":3162,"context_line":""},{"line_number":3163,"context_line":"            # Don\u0027t overwrite an existing config drive"},{"line_number":3164,"context_line":"            if not config_disk.exists():"},{"line_number":3165,"context_line":"                extra_md \u003d {}"},{"line_number":3166,"context_line":"                if config_info.admin_pass:"},{"line_number":3167,"context_line":"                    extra_md[\u0027admin_pass\u0027] \u003d config_info.admin_pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_5277ce3a","line":3164,"range":{"start_line":3164,"start_character":0,"end_line":3164,"end_character":40},"updated":"2016-11-22 15:49:13.000000000","message":"this is a follow-up, but could this be flattened at some point?\n\n    if config_disk.exists():\n        return\n\n    extra_md \u003d {}\n\nthis would make this easier to read, IMO","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"592a6d05450e5ff7e88c5548f33809253b53ceaf","unresolved":false,"context_lines":[{"line_number":3161,"context_line":"                instance, name, self._get_disk_config_image_type())"},{"line_number":3162,"context_line":""},{"line_number":3163,"context_line":"            # Don\u0027t overwrite an existing config drive"},{"line_number":3164,"context_line":"            if not config_disk.exists():"},{"line_number":3165,"context_line":"                extra_md \u003d {}"},{"line_number":3166,"context_line":"                if config_info.admin_pass:"},{"line_number":3167,"context_line":"                    extra_md[\u0027admin_pass\u0027] \u003d config_info.admin_pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_5590984e","line":3164,"range":{"start_line":3164,"start_character":0,"end_line":3164,"end_character":40},"in_reply_to":"7a77a97e_5277ce3a","updated":"2016-11-22 15:57:20.000000000","message":"+1\n\nbtw, the same is related to L3153 as well","commit_id":"1264e816bbd4ce9af95461ae09bcf4cc94a448c3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b4313bd2da5cec7eca7b4acc1f19de3e0dd432ba","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    \u0027GuestNumaConfig\u0027, [\u0027cpuset\u0027, \u0027cputune\u0027, \u0027numaconfig\u0027, \u0027numatune\u0027])"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"InjectionInfo \u003d collections.namedtuple("},{"line_number":148,"context_line":"    \u0027InjectionInfo\u0027, [\u0027network_info\u0027, \u0027files\u0027, \u0027admin_pass\u0027])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"libvirt_volume_drivers \u003d ["},{"line_number":151,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a71b18c_ca09892e","line":148,"updated":"2016-12-01 22:38:46.000000000","message":"loves me some named tuples","commit_id":"f653d10633efb2d125300d7b1e45211336e58821"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"24f6f13b7ccbe35abddcf8be1eb36e52650bf6ff","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"        if not CONF.libvirt.inject_password:"},{"line_number":2947,"context_line":"            admin_pass \u003d None"},{"line_number":2948,"context_line":"        else:"},{"line_number":2949,"context_line":"            admin_pass \u003d injection_info.admin_pass"},{"line_number":2950,"context_line":""},{"line_number":2951,"context_line":"        # Handles the network injection."},{"line_number":2952,"context_line":"        net \u003d netutils.get_injected_network_template("}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_dd539f15","line":2949,"updated":"2016-11-28 00:31:12.000000000","message":"Hmm, even though this change seems sensible, it definitely represents a change in functional behaviour. Previously, if the CONF.libvirt_inject_password option value was missing, then admin_pass would always be None.\n\nWith this change, the admin_pass is set to the InjectionInfo.admin_pass value (which might be None, but might not be None). I think it\u0027s probably best to keep such a functional change to a separate patch that can be bisected separately if need be, and keep this patch to just refactoring the non-functional pieces.","commit_id":"f653d10633efb2d125300d7b1e45211336e58821"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a60b372d3a62755a673256e9f73ff83e9d8cd5a3","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"        if not CONF.libvirt.inject_password:"},{"line_number":2947,"context_line":"            admin_pass \u003d None"},{"line_number":2948,"context_line":"        else:"},{"line_number":2949,"context_line":"            admin_pass \u003d injection_info.admin_pass"},{"line_number":2950,"context_line":""},{"line_number":2951,"context_line":"        # Handles the network injection."},{"line_number":2952,"context_line":"        net \u003d netutils.get_injected_network_template("}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_6102c60b","line":2949,"in_reply_to":"5a74a57a_da1b97c8","updated":"2016-11-28 15:20:30.000000000","message":"@mdbooth: yeah, you\u0027re totally right. sorry, must have been smoking something...","commit_id":"f653d10633efb2d125300d7b1e45211336e58821"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"e710669ccf70ec39d72b60bb0213e39116608fff","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"        if not CONF.libvirt.inject_password:"},{"line_number":2947,"context_line":"            admin_pass \u003d None"},{"line_number":2948,"context_line":"        else:"},{"line_number":2949,"context_line":"            admin_pass \u003d injection_info.admin_pass"},{"line_number":2950,"context_line":""},{"line_number":2951,"context_line":"        # Handles the network injection."},{"line_number":2952,"context_line":"        net \u003d netutils.get_injected_network_template("}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_da1b97c8","line":2949,"in_reply_to":"5a74a57a_dd539f15","updated":"2016-11-28 10:15:41.000000000","message":"I don\u0027t think this is a functional change. admin_pass used to be passed as an argument, but now it\u0027s passed in injection_info instead. i.e. The code in the else block was previously unnecessary because they were the same thing, but the effect was the same. If you rewrite this to explicitly pull out the admin_pass variable first, you get:\n\n  # This is implicit, because we\u0027ve just changed how it\u0027s passed in\n  admin_pass \u003d injection_info.admin_pass\n\n  # This is what was there before\n  if not CONF.libvirt.inject_password:\n    admin_pass \u003d None\n\nI\u0027m pretty sure that moving the implicit assignment into the else block is entirely equivalent, but I\u0027m still waiting for the first coffee of the morning to kick in, so I will get over it if that\u0027s not the case ;)","commit_id":"f653d10633efb2d125300d7b1e45211336e58821"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d44ed217c474bc96c47a5f348002378689911657","unresolved":false,"context_lines":[{"line_number":2593,"context_line":"                                          context, instance, injection_info,"},{"line_number":2594,"context_line":"                                          rescue\u003dTrue)"},{"line_number":2595,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2596,"context_line":"                           injection_info, suffix\u003d\u0027.rescue\u0027,"},{"line_number":2597,"context_line":"                           disk_images\u003drescue_images)"},{"line_number":2598,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":2599,"context_line":"                                  image_meta, rescue\u003drescue_images)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_c18ba766","line":2596,"range":{"start_line":2596,"start_character":27,"end_line":2596,"end_character":41},"updated":"2016-12-06 03:03:08.000000000","message":"I\u0027d rather this be passed as injection_info\u003dinjection_info since it\u0027s a kwarg instead of relying on the ordering.","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fdfc695bc6ac5446cba165d02c79332448bbfa40","unresolved":false,"context_lines":[{"line_number":2593,"context_line":"                                          context, instance, injection_info,"},{"line_number":2594,"context_line":"                                          rescue\u003dTrue)"},{"line_number":2595,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2596,"context_line":"                           injection_info, suffix\u003d\u0027.rescue\u0027,"},{"line_number":2597,"context_line":"                           disk_images\u003drescue_images)"},{"line_number":2598,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":2599,"context_line":"                                  image_meta, rescue\u003drescue_images)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_fee49cac","line":2596,"range":{"start_line":2596,"start_character":27,"end_line":2596,"end_character":41},"in_reply_to":"3a71b18c_5b6922f8","updated":"2016-12-06 17:54:10.000000000","message":"Yeah, it\u0027s in the right order so it works. I was thinking, in the event of a respin, it would be better to pass it as a kwarg.","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"47758c0df8b3da822fc152d8332d831c865b482e","unresolved":false,"context_lines":[{"line_number":2593,"context_line":"                                          context, instance, injection_info,"},{"line_number":2594,"context_line":"                                          rescue\u003dTrue)"},{"line_number":2595,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2596,"context_line":"                           injection_info, suffix\u003d\u0027.rescue\u0027,"},{"line_number":2597,"context_line":"                           disk_images\u003drescue_images)"},{"line_number":2598,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":2599,"context_line":"                                  image_meta, rescue\u003drescue_images)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_5b6922f8","line":2596,"range":{"start_line":2596,"start_character":27,"end_line":2596,"end_character":41},"in_reply_to":"3a71b18c_c18ba766","updated":"2016-12-06 17:33:02.000000000","message":"Yeah. Assuming since you gave it +2 you don\u0027t want me to update it here, though?\n\nI\u0027ve actually deleted _create_image() now, btw :)","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"f4bc16f550f8a019f72ef4f0b09387bd137d3c3c","unresolved":false,"context_lines":[{"line_number":2593,"context_line":"                                          context, instance, injection_info,"},{"line_number":2594,"context_line":"                                          rescue\u003dTrue)"},{"line_number":2595,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2596,"context_line":"                           injection_info, suffix\u003d\u0027.rescue\u0027,"},{"line_number":2597,"context_line":"                           disk_images\u003drescue_images)"},{"line_number":2598,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":2599,"context_line":"                                  image_meta, rescue\u003drescue_images)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_b8d85854","line":2596,"range":{"start_line":2596,"start_character":27,"end_line":2596,"end_character":41},"in_reply_to":"3a71b18c_fee49cac","updated":"2016-12-07 11:02:50.000000000","message":"Had to respin for merge conflict, so done.","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d44ed217c474bc96c47a5f348002378689911657","unresolved":false,"context_lines":[{"line_number":2647,"context_line":"                                          context, instance,"},{"line_number":2648,"context_line":"                                          injection_info)"},{"line_number":2649,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2650,"context_line":"                           injection_info, block_device_info\u003dblock_device_info)"},{"line_number":2651,"context_line":""},{"line_number":2652,"context_line":"        # Required by Quobyte CI"},{"line_number":2653,"context_line":"        self._ensure_console_log_for_instance(instance)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_619813c1","line":2650,"range":{"start_line":2650,"start_character":27,"end_line":2650,"end_character":41},"updated":"2016-12-06 03:03:08.000000000","message":"Same comment.","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"f4bc16f550f8a019f72ef4f0b09387bd137d3c3c","unresolved":false,"context_lines":[{"line_number":2647,"context_line":"                                          context, instance,"},{"line_number":2648,"context_line":"                                          injection_info)"},{"line_number":2649,"context_line":"        self._create_image(context, instance, disk_info[\u0027mapping\u0027],"},{"line_number":2650,"context_line":"                           injection_info, block_device_info\u003dblock_device_info)"},{"line_number":2651,"context_line":""},{"line_number":2652,"context_line":"        # Required by Quobyte CI"},{"line_number":2653,"context_line":"        self._ensure_console_log_for_instance(instance)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_d8db544d","line":2650,"range":{"start_line":2650,"start_character":27,"end_line":2650,"end_character":41},"in_reply_to":"3a71b18c_619813c1","updated":"2016-12-07 11:02:50.000000000","message":"Done","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d44ed217c474bc96c47a5f348002378689911657","unresolved":false,"context_lines":[{"line_number":2952,"context_line":""},{"line_number":2953,"context_line":"        :param disk: The disk we\u0027re injecting into (an Image object)"},{"line_number":2954,"context_line":"        :param instance: The instance we\u0027re injecting into"},{"line_number":2955,"context_line":"        :param injection_info: Injection info"},{"line_number":2956,"context_line":"        \"\"\""},{"line_number":2957,"context_line":"        # Handles the partition need to be used."},{"line_number":2958,"context_line":"        LOG.debug(\u0027Checking root disk injection %(info)s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_8f247bc5","line":2955,"range":{"start_line":2955,"start_character":31,"end_line":2955,"end_character":45},"updated":"2016-12-06 03:03:08.000000000","message":"InjectionInfo?","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"47758c0df8b3da822fc152d8332d831c865b482e","unresolved":false,"context_lines":[{"line_number":2952,"context_line":""},{"line_number":2953,"context_line":"        :param disk: The disk we\u0027re injecting into (an Image object)"},{"line_number":2954,"context_line":"        :param instance: The instance we\u0027re injecting into"},{"line_number":2955,"context_line":"        :param injection_info: Injection info"},{"line_number":2956,"context_line":"        \"\"\""},{"line_number":2957,"context_line":"        # Handles the partition need to be used."},{"line_number":2958,"context_line":"        LOG.debug(\u0027Checking root disk injection %(info)s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a71b18c_1be08a95","line":2955,"range":{"start_line":2955,"start_character":31,"end_line":2955,"end_character":45},"in_reply_to":"3a71b18c_8f247bc5","updated":"2016-12-06 17:33:02.000000000","message":"It was supposed to be in human, but it\u0027s a lame description anyway :)","commit_id":"45d6ca9dd53aa766fe77250c42348ba5c4a90857"}]}
