)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"e313558199ee3bf4fedd0864ffbe20115a66aa60","unresolved":false,"context_lines":[{"line_number":3817,"context_line":"        image_meta \u003d {\"properties\": {\"hw_boot_menu\": \"True\"}}"},{"line_number":3818,"context_line":""},{"line_number":3819,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3820,"context_line":"                                            instance_ref)"},{"line_number":3821,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], image_meta, disk_info)"},{"line_number":3822,"context_line":"        self.assertTrue(conf.os_bootmenu)"},{"line_number":3823,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_97d106d0","line":3820,"updated":"2015-01-31 15:33:29.000000000","message":"blockinfo.get_disk_info also takes image_meta as an argument","commit_id":"379df26194b4db20a16ab3d074ea604558ae3f14"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"e313558199ee3bf4fedd0864ffbe20115a66aa60","unresolved":false,"context_lines":[{"line_number":3830,"context_line":"        flavor.extra_specs \u003d {\u0027hw:boot_menu\u0027: \u0027True\u0027}"},{"line_number":3831,"context_line":"        mock_flavor.return_value \u003d flavor"},{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3834,"context_line":"                                            instance_ref)"},{"line_number":3835,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], {}, disk_info)"},{"line_number":3836,"context_line":"        self.assertTrue(conf.os_bootmenu)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_b7d60ac4","line":3833,"updated":"2015-01-31 15:33:29.000000000","message":"ditto","commit_id":"379df26194b4db20a16ab3d074ea604558ae3f14"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"036bffa679171ec24912c7f5fdd9f473e10b6fbd","unresolved":false,"context_lines":[{"line_number":3834,"context_line":"                                            instance_ref)"},{"line_number":3835,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], {}, disk_info)"},{"line_number":3836,"context_line":"        self.assertTrue(conf.os_bootmenu)"},{"line_number":3837,"context_line":""},{"line_number":3838,"context_line":"    @mock.patch.object(objects.Flavor, \u0027get_by_id\u0027)"},{"line_number":3839,"context_line":"    def test_get_guest_cpu_config_none(self, mock_flavor):"},{"line_number":3840,"context_line":"        self.flags(cpu_mode\u003d\"none\", group\u003d\u0027libvirt\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_ff41230c","line":3837,"updated":"2015-02-02 08:59:13.000000000","message":"Thanks for the updated commit message which clarifies what should happen when both possibilities are set. If you could express this behavior in an additional unit test, that would be great! For example:\n\n    flavor.extra_specs \u003d {\u0027hw:boot_menu\u0027: \u0027True\u0027}\n    image_meta \u003d {\"properties\": {\"hw_boot_menu\": \"False\"}}\n    self.assertTrue(conf.os_bootmenu)\n\nOn a second thought there is a fourth test case:\n\n    flavor.extra_specs \u003d {\u0027hw:boot_menu\u0027: \u0027False\u0027}\n    self.assertIsNone(conf.os_bootmenu)","commit_id":"379df26194b4db20a16ab3d074ea604558ae3f14"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"876b889712f97188a69d9a1394d4927f5bc0e84e","unresolved":false,"context_lines":[{"line_number":3831,"context_line":"        mock_flavor.return_value \u003d flavor"},{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3834,"context_line":"                                            instance_ref, {})"},{"line_number":3835,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], {}, disk_info)"},{"line_number":3836,"context_line":"        self.assertTrue(conf.os_bootmenu)"},{"line_number":3837,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_be13e3b6","line":3834,"updated":"2015-02-03 16:21:56.000000000","message":"Can you declare a var for the image_meta, eg   \u0027image_meta \u003d {}\u0027 rather than just passing {} inline, so it is obvious what it is.","commit_id":"4501fdd0bb4b2bb14e1b38cb6517f3a45042a39d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fd168f707d2faef90bc8cddda826022ce0284aa0","unresolved":false,"context_lines":[{"line_number":3831,"context_line":"        mock_flavor.return_value \u003d flavor"},{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3834,"context_line":"                                            instance_ref, {})"},{"line_number":3835,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], {}, disk_info)"},{"line_number":3836,"context_line":"        self.assertTrue(conf.os_bootmenu)"},{"line_number":3837,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_caed11b9","line":3834,"in_reply_to":"da86d52c_a464ad22","updated":"2015-02-04 09:37:18.000000000","message":"Just the image_meta is special - I\u0027ve got a patch which is replacing the use of a dict with an object, and its easier for me to grep for the string \u0027image_meta\u0027 in the tests to find places which need replacing rather than examining every dict. So not critical, but if you can declare image_meta as a variable that\u0027d be nice.","commit_id":"4501fdd0bb4b2bb14e1b38cb6517f3a45042a39d"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"46a55c7cf2fea03f3bcec79beddff5de803f856c","unresolved":false,"context_lines":[{"line_number":3831,"context_line":"        mock_flavor.return_value \u003d flavor"},{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3834,"context_line":"                                            instance_ref, {})"},{"line_number":3835,"context_line":"        conf \u003d conn._get_guest_config(instance_ref, [], {}, disk_info)"},{"line_number":3836,"context_line":"        self.assertTrue(conf.os_bootmenu)"},{"line_number":3837,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a464ad22","line":3834,"in_reply_to":"da86d52c_be13e3b6","updated":"2015-02-03 18:15:03.000000000","message":"The _get_guest_config() call directly after this one passes null lists and dicts inline, which is where I got the idea this was best practice.\n\nShould I bind everything to an lvalue, or is image_meta special?","commit_id":"4501fdd0bb4b2bb14e1b38cb6517f3a45042a39d"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"7369300158f75fe4aec22ff6c80a227f2d9c02da","unresolved":false,"context_lines":[{"line_number":3746,"context_line":"            guest.os_bootmenu \u003d strutils.bool_from_string("},{"line_number":3747,"context_line":"                flavor.extra_specs.get("},{"line_number":3748,"context_line":"                    \u0027hw:boot_menu\u0027, image_meta.get(\u0027properties\u0027, {}).get("},{"line_number":3749,"context_line":"                        \u0027hw_boot_menu\u0027, \u0027no\u0027)))"},{"line_number":3750,"context_line":"        elif virt_type \u003d\u003d \"lxc\":"},{"line_number":3751,"context_line":"            guest.os_init_path \u003d \"/sbin/init\""},{"line_number":3752,"context_line":"            guest.os_cmdline \u003d CONSOLE"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa81d914_286b0ef3","line":3749,"updated":"2015-01-30 16:46:20.000000000","message":"The commit message says the either flavor extra specs OR image metadata must be set to \"True\" to enable the bootmenu. According to this the following configuration should allow the bootmenu:\n\nflavor.extra_specs \u003d {\u0027hw:boot_menu\u0027: \u0027False\u0027}\n\nimage_meta \u003d {\"properties\": {\"hw_boot_menu\": \"True\"}}\n\nThis configuration will result to \"False\".\n\nI suggest to:\n\n1) add another unit test to the \"test_driver\" module which clarifies what happens in such a case.\n\n2) extract this algorithm to a new method to keep the level of abstraction in the \"_configure_guest_by_virt_type\" method.","commit_id":"008ffaad142581e1c7f0177b1a40b0b3debb6564"}]}
