)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dfc9c42b55471e902dc2417e4882f1ea88cebaea","unresolved":false,"context_lines":[{"line_number":4187,"context_line":"        else:"},{"line_number":4188,"context_line":"            guest.os_boot_dev \u003d blockinfo.get_boot_order(disk_info)"},{"line_number":4189,"context_line":""},{"line_number":4190,"context_line":"    def _create_and_append_char_devices(self, virt_type, guest, instance,"},{"line_number":4191,"context_line":"                                        flavor, image_meta, caps):"},{"line_number":4192,"context_line":"        \"\"\"Create and append char device config objects to the given guest"},{"line_number":4193,"context_line":"        config."}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_718c0b80","line":4190,"updated":"2016-06-02 10:56:55.000000000","message":"- If you are re-factoring this method we should not to use \u0027guest\u0027 to refer the config of a guest. Perhaps guest_cfg or config or something else...\n\n- We could probably move this method in Guest\u0027s object and remove guest config and instance parameter.\n\n  guest.create_console(virt_type, flavor, image_meta, config\u003dconfig) with config the guest config object, if not passed the method retrieves it by itself. config\u003dself._encoded_xml()","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a930e56a8e01affa57db3d8e2b9f9bbf2cd7b10c","unresolved":false,"context_lines":[{"line_number":4187,"context_line":"        else:"},{"line_number":4188,"context_line":"            guest.os_boot_dev \u003d blockinfo.get_boot_order(disk_info)"},{"line_number":4189,"context_line":""},{"line_number":4190,"context_line":"    def _create_and_append_char_devices(self, virt_type, guest, instance,"},{"line_number":4191,"context_line":"                                        flavor, image_meta, caps):"},{"line_number":4192,"context_line":"        \"\"\"Create and append char device config objects to the given guest"},{"line_number":4193,"context_line":"        config."}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_06b1b08f","line":4190,"in_reply_to":"9abb7d3a_631b4e81","updated":"2016-06-03 15:01:44.000000000","message":"We already have a module to handle guest config creation \u0027libvirt/designer\u0027. If you are not happy with create_console, attach_console would be a good choice as we have attach_device.","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"2b47a56af9343dfa6a4995c63bcddc4aa31f15c6","unresolved":false,"context_lines":[{"line_number":4187,"context_line":"        else:"},{"line_number":4188,"context_line":"            guest.os_boot_dev \u003d blockinfo.get_boot_order(disk_info)"},{"line_number":4189,"context_line":""},{"line_number":4190,"context_line":"    def _create_and_append_char_devices(self, virt_type, guest, instance,"},{"line_number":4191,"context_line":"                                        flavor, image_meta, caps):"},{"line_number":4192,"context_line":"        \"\"\"Create and append char device config objects to the given guest"},{"line_number":4193,"context_line":"        config."}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_631b4e81","line":4190,"in_reply_to":"9abb7d3a_718c0b80","updated":"2016-06-03 14:55:15.000000000","message":"@sahid:\n* yeah, \"guest_cfg\" makes it easier to understand, I\u0027ll change that in the next ps.\n\n* In the long run I\u0027d like to introduce a \"GuestConfigCreator\" class (or a similar name) which will then be responsible to create the domain XML correctly. I understand the scope of the \"virt.libvirt.guest\" class as a wrapper around libvirt APIs. By applying your suggestions I feel I would \"pollute\" the scope of the \"virt.libvirt.guest\" class.","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dfc9c42b55471e902dc2417e4882f1ea88cebaea","unresolved":false,"context_lines":[{"line_number":4196,"context_line":"        :param guest: The config object of the guest"},{"line_number":4197,"context_line":"        :type guest: :class: `nova.virt.libvirt.config.LibvirtConfigGuest`"},{"line_number":4198,"context_line":"        :param instance: The instance to create a guest config for."},{"line_number":4199,"context_line":"        :type instance: :class: `nova.objects.instance.Instance`"},{"line_number":4200,"context_line":"        :param flavor: The flavor of the instance."},{"line_number":4201,"context_line":"        :type flavor: :class: `nova.objects.flavor.Flavor`"},{"line_number":4202,"context_line":"        :param image_meta: The meta information of the image of the instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_b1e033ce","line":4199,"updated":"2016-06-02 10:56:55.000000000","message":"Instance is used to retrieve the instance path and so the log file. It should be possible to do that with the guest object itself by adding a method like \u0027get_path\u0027. Since we generate the path based of the name of the instance which is the same as the name of a Guest\u0027 object.\n\n  guest.get_path()","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"0af88e3e2eff8839d96b633280f7a5c4d827cb79","unresolved":false,"context_lines":[{"line_number":4196,"context_line":"        :param guest: The config object of the guest"},{"line_number":4197,"context_line":"        :type guest: :class: `nova.virt.libvirt.config.LibvirtConfigGuest`"},{"line_number":4198,"context_line":"        :param instance: The instance to create a guest config for."},{"line_number":4199,"context_line":"        :type instance: :class: `nova.objects.instance.Instance`"},{"line_number":4200,"context_line":"        :param flavor: The flavor of the instance."},{"line_number":4201,"context_line":"        :type flavor: :class: `nova.objects.flavor.Flavor`"},{"line_number":4202,"context_line":"        :param image_meta: The meta information of the image of the instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_88304158","line":4199,"in_reply_to":"3aaa91ec_fa5552c6","updated":"2016-06-22 11:03:12.000000000","message":"It avoid to pass instance, I think it\u0027s something good to have it in Guest object.","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"939def347e56bff0a5c66d124b833ed66d1e7538","unresolved":false,"context_lines":[{"line_number":4196,"context_line":"        :param guest: The config object of the guest"},{"line_number":4197,"context_line":"        :type guest: :class: `nova.virt.libvirt.config.LibvirtConfigGuest`"},{"line_number":4198,"context_line":"        :param instance: The instance to create a guest config for."},{"line_number":4199,"context_line":"        :type instance: :class: `nova.objects.instance.Instance`"},{"line_number":4200,"context_line":"        :param flavor: The flavor of the instance."},{"line_number":4201,"context_line":"        :type flavor: :class: `nova.objects.flavor.Flavor`"},{"line_number":4202,"context_line":"        :param image_meta: The meta information of the image of the instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_fa5552c6","line":4199,"in_reply_to":"9abb7d3a_662fdc3e","updated":"2016-06-22 08:27:43.000000000","message":"I wouldn\u0027t be in favour of guest.get_path() unless it was a proxy to get_instance_path(), and then I wouldn\u0027t be in favour of it because it would be unnecessary. There should only be one way to determine this.","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"2b47a56af9343dfa6a4995c63bcddc4aa31f15c6","unresolved":false,"context_lines":[{"line_number":4196,"context_line":"        :param guest: The config object of the guest"},{"line_number":4197,"context_line":"        :type guest: :class: `nova.virt.libvirt.config.LibvirtConfigGuest`"},{"line_number":4198,"context_line":"        :param instance: The instance to create a guest config for."},{"line_number":4199,"context_line":"        :type instance: :class: `nova.objects.instance.Instance`"},{"line_number":4200,"context_line":"        :param flavor: The flavor of the instance."},{"line_number":4201,"context_line":"        :type flavor: :class: `nova.objects.flavor.Flavor`"},{"line_number":4202,"context_line":"        :param image_meta: The meta information of the image of the instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_662fdc3e","line":4199,"in_reply_to":"9abb7d3a_b1e033ce","updated":"2016-06-03 14:55:15.000000000","message":"@sahid: As said in the previous comment, in the long run there should be a \"GuestConfigCreator\" class (or a similar name) which does that. The refactorings in this change series are purely to easier understand the functional change later.","commit_id":"cac4ce1ff5b361412e77dfb7e6bb6f4cb65b6778"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"129260ec7ef160a5061fb6f6841842c1d65c7113","unresolved":false,"context_lines":[{"line_number":4202,"context_line":""},{"line_number":4203,"context_line":"    def _create_consoles(self, virt_type, guest, instance, flavor, image_meta,"},{"line_number":4204,"context_line":"                         caps):"},{"line_number":4205,"context_line":"        if virt_type in (\"qemu\", \"kvm\"):"},{"line_number":4206,"context_line":"            # Create the serial console char devices"},{"line_number":4207,"context_line":"            self._create_serial_console_devices(guest, instance, flavor,"},{"line_number":4208,"context_line":"                                                image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_6baeaf86","side":"PARENT","line":4205,"updated":"2016-06-22 11:19:56.000000000","message":"To make this change interesting, please add a condition to quit early if virt_type \u003d \u0027parallels\u0027.","commit_id":"ab3a8b590080243da80388fec5807c779a945781"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"663c8be387dc4abdebe2ca7f04881d25e1739130","unresolved":false,"context_lines":[{"line_number":4202,"context_line":""},{"line_number":4203,"context_line":"    def _create_consoles(self, virt_type, guest, instance, flavor, image_meta,"},{"line_number":4204,"context_line":"                         caps):"},{"line_number":4205,"context_line":"        if virt_type in (\"qemu\", \"kvm\"):"},{"line_number":4206,"context_line":"            # Create the serial console char devices"},{"line_number":4207,"context_line":"            self._create_serial_console_devices(guest, instance, flavor,"},{"line_number":4208,"context_line":"                                                image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_8e403e58","side":"PARENT","line":4205,"in_reply_to":"3aaa91ec_6baeaf86","updated":"2016-06-22 14:32:26.000000000","message":"This change intents to keep the code flow the same as before, but move everything into one place. The early quit is done in [1] when I reduce the nesting of other conditionals. From my POV I would mix two intentions if I would make your suggested change.\n\n[1] https://review.openstack.org/#/c/323763/6","commit_id":"ab3a8b590080243da80388fec5807c779a945781"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2f7394762f1022cff1a41094d85793daea6b901a","unresolved":false,"context_lines":[{"line_number":4202,"context_line":""},{"line_number":4203,"context_line":"    def _create_consoles(self, virt_type, guest, instance, flavor, image_meta,"},{"line_number":4204,"context_line":"                         caps):"},{"line_number":4205,"context_line":"        if virt_type in (\"qemu\", \"kvm\"):"},{"line_number":4206,"context_line":"            # Create the serial console char devices"},{"line_number":4207,"context_line":"            self._create_serial_console_devices(guest, instance, flavor,"},{"line_number":4208,"context_line":"                                                image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_c707c87f","side":"PARENT","line":4205,"in_reply_to":"3aaa91ec_8e403e58","updated":"2016-06-22 14:51:42.000000000","message":"Hum You are not going to change the code flow by addressing my comment. Just make it better, isn\u0027t the purpose of this patch ?\n\nThere is no reason of moving a block of code and put it in a function without to update it to correctly fit that function. what is the problem here ?","commit_id":"ab3a8b590080243da80388fec5807c779a945781"}]}
