)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we introduced `cpu_model_extra_flags` config attribute (in"},{"line_number":10,"context_line":"commit: 6b601b7 -- \"libvirt: Allow to specify granular CPU feature"},{"line_number":11,"context_line":"flags\"), we told it was case-insensitive; but unfortunately I missed to"},{"line_number":12,"context_line":"_really_ make it so (despite proposing code for it in one of the"},{"line_number":13,"context_line":"revisions)."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f6a8fd7_0e301be8","line":11,"range":{"start_line":11,"start_character":12,"end_line":11,"end_character":16},"updated":"2018-04-30 19:22:19.000000000","message":"said","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Change-Id: Ia7ff0566a5109c76c009f3a0c6199c4ba419cfb1"},{"line_number":26,"context_line":"Reported-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e"},{"line_number":27,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"},{"line_number":28,"context_line":"BluePrint: libvirt-cpu-model-extra-flags"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f6a8fd7_4e3613ea","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":40},"updated":"2018-04-30 19:22:19.000000000","message":"If this is a change you plan on backporting, then remove this line.","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":6361,"context_line":"                                      image_meta, disk_info)"},{"line_number":6362,"context_line":"        self.assertIsInstance(conf.cpu,"},{"line_number":6363,"context_line":"                              vconfig.LibvirtConfigGuestCPU)"},{"line_number":6364,"context_line":"        self.assertEqual(conf.cpu.mode, \"custom\")"},{"line_number":6365,"context_line":"        self.assertEqual(conf.cpu.model, \"IvyBridge\")"},{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(conf.cpu.features.pop().name, \"pcid\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_8ea74b0c","line":6365,"range":{"start_line":6364,"start_character":8,"end_line":6365,"end_character":53},"updated":"2018-04-30 19:22:19.000000000","message":"reverse these args, see below","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":6365,"context_line":"        self.assertEqual(conf.cpu.model, \"IvyBridge\")"},{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(conf.cpu.features.pop().name, \"pcid\")"},{"line_number":6369,"context_line":"        self.assertEqual(conf.cpu.sockets, instance_ref.flavor.vcpus)"},{"line_number":6370,"context_line":"        self.assertEqual(conf.cpu.cores, 1)"},{"line_number":6371,"context_line":"        self.assertEqual(conf.cpu.threads, 1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_ae9a4fc2","line":6368,"range":{"start_line":6368,"start_character":13,"end_line":6368,"end_character":21},"updated":"2018-04-30 19:22:19.000000000","message":"Why wouldn\u0027t this be assertEqual?","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0444d330760e11a95fb1c99f567337c4d70a020c","unresolved":false,"context_lines":[{"line_number":6365,"context_line":"        self.assertEqual(conf.cpu.model, \"IvyBridge\")"},{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(conf.cpu.features.pop().name, \"pcid\")"},{"line_number":6369,"context_line":"        self.assertEqual(conf.cpu.sockets, instance_ref.flavor.vcpus)"},{"line_number":6370,"context_line":"        self.assertEqual(conf.cpu.cores, 1)"},{"line_number":6371,"context_line":"        self.assertEqual(conf.cpu.threads, 1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_e55e1844","line":6368,"range":{"start_line":6368,"start_character":13,"end_line":6368,"end_character":21},"in_reply_to":"9f6a8fd7_14302ae8","updated":"2018-05-01 15:35:21.000000000","message":"But the flags are controlled within this test, so if you\u0027re going to add more flags to the configuration in this specific test, you should be asserting each one is in the list, not using a generic \u0027in\u0027 check. Anyway, future proofing tests isn\u0027t something we need to do, and could mask issues in the future.","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"31d813c20174db2a49986848677e82d65e698f71","unresolved":false,"context_lines":[{"line_number":6365,"context_line":"        self.assertEqual(conf.cpu.model, \"IvyBridge\")"},{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(conf.cpu.features.pop().name, \"pcid\")"},{"line_number":6369,"context_line":"        self.assertEqual(conf.cpu.sockets, instance_ref.flavor.vcpus)"},{"line_number":6370,"context_line":"        self.assertEqual(conf.cpu.cores, 1)"},{"line_number":6371,"context_line":"        self.assertEqual(conf.cpu.threads, 1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_14302ae8","line":6368,"range":{"start_line":6368,"start_character":13,"end_line":6368,"end_character":21},"in_reply_to":"9f6a8fd7_ae9a4fc2","updated":"2018-04-30 21:07:16.000000000","message":"I consciously chose \u0027assertIn\u0027, because that way the test doesn\u0027t need rewriting when you add support for additional flags.","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(conf.cpu.features.pop().name, \"pcid\")"},{"line_number":6369,"context_line":"        self.assertEqual(conf.cpu.sockets, instance_ref.flavor.vcpus)"},{"line_number":6370,"context_line":"        self.assertEqual(conf.cpu.cores, 1)"},{"line_number":6371,"context_line":"        self.assertEqual(conf.cpu.threads, 1)"},{"line_number":6372,"context_line":"        self.assertFalse(mock_warn.called)"},{"line_number":6373,"context_line":""},{"line_number":6374,"context_line":"    @mock.patch.object(libvirt_driver.LOG, \u0027warning\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_ce9d43bc","line":6371,"range":{"start_line":6369,"start_character":8,"end_line":6371,"end_character":45},"updated":"2018-04-30 19:22:19.000000000","message":"nit: reverse these args, since assertEqual params are (expected, actual).","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"620506f02ee9c950fb44b5e25a625a815f01491b","unresolved":false,"context_lines":[{"line_number":6369,"context_line":"        self.assertEqual(conf.cpu.sockets, instance_ref.flavor.vcpus)"},{"line_number":6370,"context_line":"        self.assertEqual(conf.cpu.cores, 1)"},{"line_number":6371,"context_line":"        self.assertEqual(conf.cpu.threads, 1)"},{"line_number":6372,"context_line":"        self.assertFalse(mock_warn.called)"},{"line_number":6373,"context_line":""},{"line_number":6374,"context_line":"    @mock.patch.object(libvirt_driver.LOG, \u0027warning\u0027)"},{"line_number":6375,"context_line":"    def test_get_guest_cpu_config_host_model_with_extra_flags(self,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_2e695fbd","line":6372,"range":{"start_line":6372,"start_character":8,"end_line":6372,"end_character":42},"updated":"2018-04-30 19:22:19.000000000","message":"nit: mock_warn.assert_not_called()","commit_id":"00e02c0e48510b9a4ef4eb2a35d190773cf6038f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d1b65bfd0dec6182e22c68d77ab082498a7a83a3","unresolved":false,"context_lines":[{"line_number":6365,"context_line":"        self.assertEqual(\"IvyBridge\", conf.cpu.model)"},{"line_number":6366,"context_line":"        # At this point the upper case CPU flag is normalized to lower"},{"line_number":6367,"context_line":"        # case, so assert for that"},{"line_number":6368,"context_line":"        self.assertIn(\"pcid\", conf.cpu.features.pop().name)"},{"line_number":6369,"context_line":"        self.assertEqual(instance_ref.flavor.vcpus, conf.cpu.sockets)"},{"line_number":6370,"context_line":"        self.assertEqual(1, conf.cpu.cores)"},{"line_number":6371,"context_line":"        self.assertEqual(1, conf.cpu.threads)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_253ad0e6","line":6368,"range":{"start_line":6368,"start_character":13,"end_line":6368,"end_character":21},"updated":"2018-05-01 15:35:58.000000000","message":"assertEqual please.","commit_id":"c341a39d44848fc8dd84ef2f6a93d6c521fa0f38"}]}
