)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: harden get_domain_capabilities"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts nova.virt.libvirt.host._get_domain_capabilities"},{"line_number":10,"context_line":"to take all arguments as option kwargs which mathces the signiture"},{"line_number":11,"context_line":"of the libvirt getDomainCapabilities fucntion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_8a39b9a4","line":10,"range":{"start_line":10,"start_character":45,"end_line":10,"end_character":52},"updated":"2019-07-19 17:06:13.000000000","message":"matches","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: harden get_domain_capabilities"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts nova.virt.libvirt.host._get_domain_capabilities"},{"line_number":10,"context_line":"to take all arguments as option kwargs which mathces the signiture"},{"line_number":11,"context_line":"of the libvirt getDomainCapabilities fucntion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_eab86d11","line":10,"range":{"start_line":10,"start_character":25,"end_line":10,"end_character":31},"updated":"2019-07-19 17:06:13.000000000","message":"optional","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts nova.virt.libvirt.host._get_domain_capabilities"},{"line_number":10,"context_line":"to take all arguments as option kwargs which mathces the signiture"},{"line_number":11,"context_line":"of the libvirt getDomainCapabilities fucntion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"},{"line_number":14,"context_line":"to use a dictonary of defualt arch to machine_type mappings"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_aa3cb592","line":11,"range":{"start_line":11,"start_character":37,"end_line":11,"end_character":45},"updated":"2019-07-19 17:06:13.000000000","message":"function","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":11,"context_line":"of the libvirt getDomainCapabilities fucntion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"},{"line_number":14,"context_line":"to use a dictonary of defualt arch to machine_type mappings"},{"line_number":15,"context_line":"and default i686 and x86_64 to \u0027pc\u0027"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This change extends get_domain_capabilities to register"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_4a3f4186","line":14,"range":{"start_line":14,"start_character":22,"end_line":14,"end_character":29},"updated":"2019-07-19 17:06:13.000000000","message":"default","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":18,"context_line":"domcaps by both the versioned name returned by libvirt"},{"line_number":19,"context_line":"and the alias that was requested."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This change LibvirtConfigDomainCaps with machine_type and"},{"line_number":22,"context_line":"machine_type_alias properties."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This change factors out the domain cap test data into a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_ea4dcd3a","line":21,"updated":"2019-07-19 17:06:13.000000000","message":"enhances? augments?","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This change factors out the domain cap test data into a"},{"line_number":25,"context_line":"seperate fake_libvirt_data module and adds valid"},{"line_number":26,"context_line":"example for sever architectures such as armv7 i686 and"},{"line_number":27,"context_line":"sparc."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This change adds more test cases to validate the changes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_aa6595b6","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":7},"updated":"2019-07-19 17:06:13.000000000","message":"examples","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This change factors out the domain cap test data into a"},{"line_number":25,"context_line":"seperate fake_libvirt_data module and adds valid"},{"line_number":26,"context_line":"example for sever architectures such as armv7 i686 and"},{"line_number":27,"context_line":"sparc."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This change adds more test cases to validate the changes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_4a58a1f8","line":26,"range":{"start_line":26,"start_character":12,"end_line":26,"end_character":17},"updated":"2019-07-19 17:06:13.000000000","message":"server","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This change adds more test cases to validate the changes"},{"line_number":30,"context_line":"above."},{"line_number":31,"context_line":"Partial-Implements: blueprint image-metadata-prefiltering"},{"line_number":32,"context_line":"Partial-Implements: blueprint amd-sev-libvirt-support"},{"line_number":33,"context_line":"Change-Id: Id86c6b23a32a66564c2e7c794104e3a553df947d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_2a71a576","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":53},"updated":"2019-07-19 17:06:13.000000000","message":"might call these related-blueprint instead","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"967e3a254158b34ae1bc571b8d664ca68a584370","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: harden get_domain_capabilities"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts nova.virt.libvirt.host._get_domain_capabilities"},{"line_number":10,"context_line":"to take all arguments as optional kwargs which matches the signiture"},{"line_number":11,"context_line":"of the libvirt getDomainCapabilities function."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7faddb67_4ac1572e","line":10,"range":{"start_line":10,"start_character":59,"end_line":10,"end_character":68},"updated":"2019-07-23 21:36:57.000000000","message":"signature","commit_id":"ba3a947c6a82f4ae2e972606f5a9913bb9a7f252"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"967e3a254158b34ae1bc571b8d664ca68a584370","unresolved":false,"context_lines":[{"line_number":11,"context_line":"of the libvirt getDomainCapabilities function."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"},{"line_number":14,"context_line":"to use a dictonary of default arch to machine_type mappings"},{"line_number":15,"context_line":"and defaults i686 and x86_64 to \u0027pc\u0027"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This change extends get_domain_capabilities to register"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7faddb67_eadb631e","line":14,"range":{"start_line":14,"start_character":9,"end_line":14,"end_character":18},"updated":"2019-07-23 21:36:57.000000000","message":"dictionary","commit_id":"ba3a947c6a82f4ae2e972606f5a9913bb9a7f252"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"967e3a254158b34ae1bc571b8d664ca68a584370","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change refactors libvirt_utils.get_default_machine_type"},{"line_number":14,"context_line":"to use a dictonary of default arch to machine_type mappings"},{"line_number":15,"context_line":"and defaults i686 and x86_64 to \u0027pc\u0027"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This change extends get_domain_capabilities to register"},{"line_number":18,"context_line":"domcaps by both the versioned name returned by libvirt"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7faddb67_6acf7357","line":15,"updated":"2019-07-23 21:36:57.000000000","message":"Yeah this is good.  Sorry for that snafu","commit_id":"ba3a947c6a82f4ae2e972606f5a9913bb9a7f252"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8950da651438902c9f207912a152c77b0fd3045f","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"                {\u0027features\u0027: self._domain_capability_features,"},{"line_number":1371,"context_line":"                 \u0027mtype\u0027: machine_type}"},{"line_number":1372,"context_line":""},{"line_number":1373,"context_line":"        raise Exception(\"fakelibvirt doesn\u0027t support getDomainCapabilities \""},{"line_number":1374,"context_line":"                        \"for %s architecture\" % arch)"},{"line_number":1375,"context_line":""},{"line_number":1376,"context_line":"    # Features are kept separately so that the tests can patch this"},{"line_number":1377,"context_line":"    # class variable with alternate values."}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_ff5d4ee9","line":1374,"range":{"start_line":1373,"start_character":8,"end_line":1374,"end_character":53},"updated":"2019-07-24 16:46:25.000000000","message":"ya this is a good idea to make sure we dont endup with none in the dict again good catch","commit_id":"02144d79e30be60b2919bee129bebdf2e1008d82"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":641,"context_line":"        caps \u003d self.host.get_domain_capabilities()"},{"line_number":642,"context_line":"        for arch, mtypes in caps.items():"},{"line_number":643,"context_line":"            for mtype, dom_cap in mtypes.items():"},{"line_number":644,"context_line":"                # NOTE(sean-k-mooney): this should always be true since we"},{"line_number":645,"context_line":"                # mapping from an arch and machine_type to a domain cap object"},{"line_number":646,"context_line":"                # for that pair. we use in to allow libvirt to expand the"},{"line_number":647,"context_line":"                # unversioned alias such as \u0027pc\u0027 or \u0027q35\u0027 to there versioned"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6adebd3e","line":644,"range":{"start_line":644,"start_character":72,"end_line":644,"end_character":74},"updated":"2019-07-19 17:06:13.000000000","message":"we are","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":643,"context_line":"            for mtype, dom_cap in mtypes.items():"},{"line_number":644,"context_line":"                # NOTE(sean-k-mooney): this should always be true since we"},{"line_number":645,"context_line":"                # mapping from an arch and machine_type to a domain cap object"},{"line_number":646,"context_line":"                # for that pair. we use in to allow libvirt to expand the"},{"line_number":647,"context_line":"                # unversioned alias such as \u0027pc\u0027 or \u0027q35\u0027 to there versioned"},{"line_number":648,"context_line":"                # form e.g. pc-i440fx-2.11"},{"line_number":649,"context_line":"                self.assertIn(mtype, dom_cap.machine_type)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8abe99d2","line":646,"range":{"start_line":646,"start_character":33,"end_line":646,"end_character":42},"updated":"2019-07-19 17:06:13.000000000","message":"We use `In`","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":644,"context_line":"                # NOTE(sean-k-mooney): this should always be true since we"},{"line_number":645,"context_line":"                # mapping from an arch and machine_type to a domain cap object"},{"line_number":646,"context_line":"                # for that pair. we use in to allow libvirt to expand the"},{"line_number":647,"context_line":"                # unversioned alias such as \u0027pc\u0027 or \u0027q35\u0027 to there versioned"},{"line_number":648,"context_line":"                # form e.g. pc-i440fx-2.11"},{"line_number":649,"context_line":"                self.assertIn(mtype, dom_cap.machine_type)"},{"line_number":650,"context_line":"                self.assertIn(dom_cap.machine_type_alias, mtype)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_aac11556","line":647,"range":{"start_line":647,"start_character":61,"end_line":647,"end_character":66},"updated":"2019-07-19 17:06:13.000000000","message":"its","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                # form e.g. pc-i440fx-2.11"},{"line_number":649,"context_line":"                self.assertIn(mtype, dom_cap.machine_type)"},{"line_number":650,"context_line":"                self.assertIn(dom_cap.machine_type_alias, mtype)"},{"line_number":651,"context_line":"        # We assume we are testing with x86_64 in other part of the code"},{"line_number":652,"context_line":"        # so we just assert its in the test data and return it."},{"line_number":653,"context_line":"        self.assertIn(\u0027x86_64\u0027, caps)"},{"line_number":654,"context_line":"        self.assertIn(\u0027pc\u0027, caps[\u0027x86_64\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6ab79df6","line":651,"range":{"start_line":651,"start_character":56,"end_line":651,"end_character":60},"updated":"2019-07-19 17:06:13.000000000","message":"parts","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                self.assertIn(mtype, dom_cap.machine_type)"},{"line_number":650,"context_line":"                self.assertIn(dom_cap.machine_type_alias, mtype)"},{"line_number":651,"context_line":"        # We assume we are testing with x86_64 in other part of the code"},{"line_number":652,"context_line":"        # so we just assert its in the test data and return it."},{"line_number":653,"context_line":"        self.assertIn(\u0027x86_64\u0027, caps)"},{"line_number":654,"context_line":"        self.assertIn(\u0027pc\u0027, caps[\u0027x86_64\u0027])"},{"line_number":655,"context_line":"        return caps[\u0027x86_64\u0027][\u0027pc\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8ad5391e","line":652,"range":{"start_line":652,"start_character":28,"end_line":652,"end_character":31},"updated":"2019-07-19 17:06:13.000000000","message":"it\u0027s","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":671,"context_line":"    def test_get_domain_capabilities_with_versioned_machine_type(self):"},{"line_number":672,"context_line":"        caps \u003d self.host.get_domain_capabilities()"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        # i686 supports both and unversioned pc alias and"},{"line_number":675,"context_line":"        # a versioned form."},{"line_number":676,"context_line":"        i686 \u003d caps[\u0027i686\u0027]"},{"line_number":677,"context_line":"        self.assertIn(\u0027pc\u0027, i686)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_eac2ad52","line":674,"range":{"start_line":674,"start_character":29,"end_line":674,"end_character":32},"updated":"2019-07-19 17:06:13.000000000","message":"an","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e7f2474d8847688d04c0dc63bf65b8d122c6bc4","unresolved":false,"context_lines":[{"line_number":663,"context_line":"        self.assertEqual(0, len(caps.features))"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def test_get_domain_capabilities_non_native_kvm(self):"},{"line_number":666,"context_line":"        # This test assumes that we are on a x86 host and the"},{"line_number":667,"context_line":"        # virt-type is set to kvm. In that case we would expect"},{"line_number":668,"context_line":"        # libvirt to raise an error if you try to get the domain"},{"line_number":669,"context_line":"        # capabilities for non-native archs specifying the kvm virt"},{"line_number":670,"context_line":"        # type."}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_d120684c","line":667,"range":{"start_line":666,"start_character":10,"end_line":667,"end_character":34},"updated":"2019-07-26 11:59:49.000000000","message":"not it assumes this by the fact i did not add the \nx86 archs to the arch below this test should run fine on any host and is not actually using the host acitrure directly anywhere so we dont need to worry about portablity of this test.","commit_id":"40f24ca9a20092744f998108622679c75185e6b4"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fac0f67f48ef73d5064642a284ac693e9782d5eb","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @property"},{"line_number":148,"context_line":"    def machine_type_alias(self):"},{"line_number":149,"context_line":"        if self._alias is None:"},{"line_number":150,"context_line":"            return self._machine"},{"line_number":151,"context_line":"        return self._alias"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7faddb67_4954b3ca","line":149,"range":{"start_line":149,"start_character":22,"end_line":149,"end_character":30},"updated":"2019-07-29 14:53:43.000000000","message":"nit: don\u0027t really need this","commit_id":"f1426d128ef504ce364828720ac1d08435dbdeb8"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"48b61c7a9f9cc4cc00284ff4a588df9b37495aec","unresolved":false,"context_lines":[{"line_number":671,"context_line":"                        raise"},{"line_number":672,"context_line":"        return self._caps"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def get_domain_capabilities(self):"},{"line_number":675,"context_line":"        \"\"\"Returns the capabilities you can request when creating a"},{"line_number":676,"context_line":"        domain (VM) with that hypervisor, for various combinations of"},{"line_number":677,"context_line":"        architecture and machine type."}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e1db01ea","line":674,"range":{"start_line":674,"start_character":8,"end_line":674,"end_character":31},"updated":"2019-07-15 16:36:12.000000000","message":"thinking about this a little more i think the api of this is still not want we want.\n\ni think we want to either have this register the cap for all machine types supported for all emulators or we want to allow passing in the machine type and arch as option keyword args\nto lazy load combinations.\n\nill change that in a follow up patch if i find i need it.","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"29dbdccfe3cce5c787bbcdc1e5257b02d1056a49","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                    emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":760,"context_line":"                    machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":761,"context_line":"            # register the domain caps using the expanded form"},{"line_number":762,"context_line":"            # retruned by libvirt"},{"line_number":763,"context_line":"            domain_caps[arch][cap_obj.machine_type] \u003d cap_obj"},{"line_number":764,"context_line":"            # and if not none the machine_type we were expecting"},{"line_number":765,"context_line":"            if machine_type and machine_type !\u003d cap_obj.machine_type:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_ffd11124","line":762,"range":{"start_line":762,"start_character":14,"end_line":762,"end_character":22},"updated":"2019-07-19 17:06:13.000000000","message":"returned","commit_id":"63edba913e6ff05af3db4044daab3b30789b3a3e"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"35fa473a1cdddf044cf67a19e9bdc38e2d585185","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            # doesn\u0027t have a default machine type for this"},{"line_number":760,"context_line":"            # architecture.  In that case we pass a machine_type of"},{"line_number":761,"context_line":"            # None to the libvirt API and rely on it choosing a"},{"line_number":762,"context_line":"            # sensible default which will be returned in the \u003cmachine\u003e"},{"line_number":763,"context_line":"            # element.  It could also be an alias like \u0027pc\u0027 rather"},{"line_number":764,"context_line":"            # than a full machine type."},{"line_number":765,"context_line":"            cap_obj \u003d self._get_domain_capabilities("}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_5bf8407b","line":762,"range":{"start_line":762,"start_character":14,"end_line":762,"end_character":30},"updated":"2019-07-24 09:19:00.000000000","message":"Speaking of libvirt\u0027s defaults, I think it is worth adding some form of the below note:\n\nPrior to libvirt v4.7.0 libvirt picked its default machine type for x86, \u0027pc\u0027, as reported by QEMU\u0027s default.  From libvirt v4.7.0 onwards, libvirt _explicitly_ declared the \"preferred\" default for x86 as \u0027pc\u0027 (and appropriate values for other architectures), and only uses QEMU\u0027s reported default (whatever that may be) if \u0027pc\u0027 does not exist.  This was done \"to isolate applications from hypervisor changes that may cause incompatibilities\" -- i.e. if, or when, QEMU changes its default machine type to something else.  (Refer to this libvirt commit: https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3 -- \"qemu: ensure default machine types don\u0027t change if QEMU changes\")","commit_id":"98597e70ce26551d19482889d03394f63355bb14"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4130dba95db2f62b9faa5bd1a808f24653d4901e","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            # doesn\u0027t have a default machine type for this"},{"line_number":760,"context_line":"            # architecture.  In that case we pass a machine_type of"},{"line_number":761,"context_line":"            # None to the libvirt API and rely on it choosing a"},{"line_number":762,"context_line":"            # sensible default which will be returned in the \u003cmachine\u003e"},{"line_number":763,"context_line":"            # element.  It could also be an alias like \u0027pc\u0027 rather"},{"line_number":764,"context_line":"            # than a full machine type."},{"line_number":765,"context_line":"            cap_obj \u003d self._get_domain_capabilities("}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_76467124","line":762,"range":{"start_line":762,"start_character":14,"end_line":762,"end_character":30},"in_reply_to":"7faddb67_5bf8407b","updated":"2019-07-24 09:44:01.000000000","message":"Done","commit_id":"98597e70ce26551d19482889d03394f63355bb14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"35fa473a1cdddf044cf67a19e9bdc38e2d585185","unresolved":false,"context_lines":[{"line_number":773,"context_line":"                domain_caps[arch][cap_obj.machine_type] \u003d cap_obj"},{"line_number":774,"context_line":"            else:"},{"line_number":775,"context_line":"                # NOTE(aspiers): In theory this should never happen,"},{"line_number":776,"context_line":"                # but better safe than sorry."},{"line_number":777,"context_line":"                LOG.warn("},{"line_number":778,"context_line":"                    \"libvirt getDomainCapabilities(\""},{"line_number":779,"context_line":"                    \"emulator_bin\u003d%(emulator_bin)s, arch\u003d%(arch)s, \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_9be8f87c","line":776,"range":{"start_line":776,"start_character":22,"end_line":776,"end_character":44},"updated":"2019-07-24 09:19:00.000000000","message":":-) Indeed.","commit_id":"98597e70ce26551d19482889d03394f63355bb14"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8950da651438902c9f207912a152c77b0fd3045f","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            # libvirt commit:"},{"line_number":777,"context_line":"            #"},{"line_number":778,"context_line":"            #   https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3"},{"line_number":779,"context_line":"            cap_obj \u003d self._get_domain_capabilities("},{"line_number":780,"context_line":"                    emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":781,"context_line":"                    machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"            # Register the domain caps using the expanded form of"},{"line_number":784,"context_line":"            # machine type returned by libvirt in the \u003cmachine\u003e"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_9fe53a0d","line":781,"range":{"start_line":779,"start_character":12,"end_line":781,"end_character":67},"updated":"2019-07-24 16:46:25.000000000","message":"so i was testing this on one of my vm where i have nested virt and that exposed another error.\n\nthat is if i set virt-type\u003dkvm this raiase and exception for architture that are not my native architure as i cannot run them with kvm accleartion.\n\nso i think we have 5 options to resolve this.\n\n1.) do not pass the virt type ever which will alway resutl in calling libvirt with virt-type\u003dNone\n2.) convert virt_type\u003dkvm to virt_type\u003dqemu if the arch is not the same as the native one but otherwise set the virt_type to whatever is in the config.\n3.) if the virt-type is not qemu always pass None\n4.) catch the exception that is raised and skip this arch as its incompatible with the virt-type.\n5.) catch the exception and check again without the virt type set.\n\nim leaning towrds number 2,3 or 5.\n\nwhat do people think.\n\nif you have virt-type\u003dqemu the current patch seams to be sufficnt by the way so we just need to cover virt-type\u003dkvm\nalthough we should quickly test lxc as weel.\n\npersonally i think we proably dont need to call this funtion if we are not useing virt-type qemu or kvm but that is a seperate mater.","commit_id":"02144d79e30be60b2919bee129bebdf2e1008d82"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b1ce93c6a858b6b7430c5c56d55d075041c00d51","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            # libvirt commit:"},{"line_number":777,"context_line":"            #"},{"line_number":778,"context_line":"            #   https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3"},{"line_number":779,"context_line":"            cap_obj \u003d self._get_domain_capabilities("},{"line_number":780,"context_line":"                    emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":781,"context_line":"                    machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"            # Register the domain caps using the expanded form of"},{"line_number":784,"context_line":"            # machine type returned by libvirt in the \u003cmachine\u003e"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_f7c32a56","line":781,"range":{"start_line":779,"start_character":12,"end_line":781,"end_character":67},"in_reply_to":"7faddb67_22bbc9e5","updated":"2019-07-25 10:40:06.000000000","message":"So I\u0027ve read the IRC transcript.\n\ntl;dr — yes, option-4 seems most reasonable (and indeed, logging at DEBUG level).\n\nA couple of things based on my remarks on IRC:\n\n* The output of domCapabilities() with or without \u0027virt_type\u0027 should be the same — i.e. if libvirt \"knows\" that KVM is available on the host, then it will default to \u0027kvm\u0027, whether you pass the \u0027virt_type\u0027 parameter or not.  You can compare and `diff` (which is none) here[1] from the outputs here [2][3].\n\n* That said, if Nova _knows_ the \u0027virt_type\u0027, then it should explicitly specify it.\n\n* The option-2 above, as I noted on IRC is too black magic, and can be an unwanted surprise for the operator.  Let\u0027s avoid it.\n\n* And as Adam guessed on IRC, the difference in output of getDomainCapabilities() will be non-trivial for virt_type as KVM vs. QEMU.  Compare the `diff` here[4].\n\n[1] https://kashyapc.fedorapeople.org/getDomainCapabilities/diff_domCapabilities_of_virt_type_kvm_and_none.txt\n[2] https://kashyapc.fedorapeople.org/getDomainCapabilities/domCapabilities_without_virt_type.txt\n[3] https://kashyapc.fedorapeople.org/getDomainCapabilities/domCapabilities_with_virt_type_kvm.txt\n[4] https://kashyapc.fedorapeople.org/getDomainCapabilities/diff_domCapabilities_of_virt_type_kvm_and_qemu.txt","commit_id":"02144d79e30be60b2919bee129bebdf2e1008d82"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4b4f28b1be588a04c4d5a0446bb80ad31587f1d","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            # libvirt commit:"},{"line_number":777,"context_line":"            #"},{"line_number":778,"context_line":"            #   https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3"},{"line_number":779,"context_line":"            cap_obj \u003d self._get_domain_capabilities("},{"line_number":780,"context_line":"                    emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":781,"context_line":"                    machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"            # Register the domain caps using the expanded form of"},{"line_number":784,"context_line":"            # machine type returned by libvirt in the \u003cmachine\u003e"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_22bbc9e5","line":781,"range":{"start_line":779,"start_character":12,"end_line":781,"end_character":67},"in_reply_to":"7faddb67_9fe53a0d","updated":"2019-07-24 17:37:06.000000000","message":"i spoke about this with aspiers on irc for about 20mins which can be found here\n\nhttp://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-07-24.log.html#t2019-07-24T16:33:41\n\nwe decided to go with option 4 unless anyone else disagrees and catch the excpeiton and skip that architecture if its not compatible with the virt-type you have set in the config.\n\nwe might want to log the fact we are skipping at debug level but this is not an error since ubunut and possibly other distos install all qemu emulator by default so we dont want to log a at a higher log level to avoid spamming the logs.","commit_id":"02144d79e30be60b2919bee129bebdf2e1008d82"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e728968f9944d6850ed0abb16fb8873d34c9bcde","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                        emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":782,"context_line":"                        machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":783,"context_line":"            except libvirt.libvirtError:"},{"line_number":784,"context_line":"                # NOTE(sean-k-mooney): This can happen if for several reasons"},{"line_number":785,"context_line":"                # but one common examile is if you have multiple qemu emulators"},{"line_number":786,"context_line":"                # installed and you set virt-type\u003dkvm. In this case any non"},{"line_number":787,"context_line":"                # native emulator e.g. aarch64 on x86 host, will"},{"line_number":788,"context_line":"                # raise an exception as kvm cannot be used to accelerate cpu"},{"line_number":789,"context_line":"                # instructions for non native architectures."},{"line_number":790,"context_line":"                LOG.debug("},{"line_number":791,"context_line":"                    \"Skipping arch: %s as it is not compatible with \""},{"line_number":792,"context_line":"                    \"virt-type: %s and machine-type: %s\","},{"line_number":793,"context_line":"                    arch, virt_type, machine_type)"},{"line_number":794,"context_line":"                # remove archs added by default dict lookup when checking"},{"line_number":795,"context_line":"                # if the machine type has already been recoded."},{"line_number":796,"context_line":"                if arch in domain_caps:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_825e3274","line":793,"range":{"start_line":784,"start_character":0,"end_line":793,"end_character":50},"updated":"2019-07-25 11:50:07.000000000","message":"The comment says that this exception can happen for several reasons, but then the debug message assumes a single reason.  If the comment is true then we should check the exception message first rather than jumping to this conclusion.","commit_id":"aa61d5a19b86f304963a864430399092d0f67404"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"6d59155050c8d9e853887c16a2ddad6c9972f2e8","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                        emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":782,"context_line":"                        machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":783,"context_line":"            except libvirt.libvirtError:"},{"line_number":784,"context_line":"                # NOTE(sean-k-mooney): This can happen for several"},{"line_number":785,"context_line":"                # reasons, but one common example is if you have"},{"line_number":786,"context_line":"                # multiple qemu emulators installed and you set"},{"line_number":787,"context_line":"                # virt-type\u003dkvm. In this case any non-native emulator"},{"line_number":788,"context_line":"                # e.g. aarch64 on x86 host, will raise an exception as"},{"line_number":789,"context_line":"                # kvm cannot be used to accelerate cpu instructions"},{"line_number":790,"context_line":"                # for non-native architectures."},{"line_number":791,"context_line":"                LOG.debug("},{"line_number":792,"context_line":"                    \"Skipping arch: %s as it is not compatible with \""},{"line_number":793,"context_line":"                    \"virt-type: %s and machine-type: %s\","},{"line_number":794,"context_line":"                    arch, virt_type, machine_type)"},{"line_number":795,"context_line":"                # Remove archs added by default dict lookup when checking"},{"line_number":796,"context_line":"                # if the machine type has already been recoded."},{"line_number":797,"context_line":"                if arch in domain_caps:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_2203be44","line":794,"range":{"start_line":784,"start_character":0,"end_line":794,"end_character":50},"updated":"2019-07-25 11:50:43.000000000","message":"Seems wrong to me as explained in PS10.","commit_id":"12563a27e24373c98ed236cba45530c0bdeea645"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e54f96529f021a782dbe803a4895dc7eac80827","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                        emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":782,"context_line":"                        machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":783,"context_line":"            except libvirt.libvirtError:"},{"line_number":784,"context_line":"                # NOTE(sean-k-mooney): This can happen for several"},{"line_number":785,"context_line":"                # reasons, but one common example is if you have"},{"line_number":786,"context_line":"                # multiple qemu emulators installed and you set"},{"line_number":787,"context_line":"                # virt-type\u003dkvm. In this case any non-native emulator"},{"line_number":788,"context_line":"                # e.g. aarch64 on x86 host, will raise an exception as"},{"line_number":789,"context_line":"                # kvm cannot be used to accelerate cpu instructions"},{"line_number":790,"context_line":"                # for non-native architectures."},{"line_number":791,"context_line":"                LOG.debug("},{"line_number":792,"context_line":"                    \"Skipping arch: %s as it is not compatible with \""},{"line_number":793,"context_line":"                    \"virt-type: %s and machine-type: %s\","},{"line_number":794,"context_line":"                    arch, virt_type, machine_type)"},{"line_number":795,"context_line":"                # Remove archs added by default dict lookup when checking"},{"line_number":796,"context_line":"                # if the machine type has already been recoded."},{"line_number":797,"context_line":"                if arch in domain_caps:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_9d83f756","line":794,"range":{"start_line":784,"start_character":0,"end_line":794,"end_character":50},"in_reply_to":"7faddb67_2203be44","updated":"2019-07-25 12:20:40.000000000","message":"Yeah, as discussed on IRC, let\u0027s go with the agreed (between Adam, Sean, and me):\n\n \"Failed to retrieve domain capabilities from libvirt \n  for arch %(arch)s / virt_type %(virt_type)s / \n  machine_type %(mach_type)s; libvirt error was: %(error)s\"\n\n\nNit, capitalization in the NOTE:\n\nThis can happen for several reasons, but one common example is if you have multiple QEMU emulators installed and you set `virt_type \u003d kvm`. In this case any non-native emulator, e.g. AArch64 on an x86 host, will (correctly) raise an exception as KVM cannot be used to accelerate CPU instructions for non-native architectures.","commit_id":"12563a27e24373c98ed236cba45530c0bdeea645"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"3832bd7db4fc3c227d6067af699f76f5fd3efddc","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                        emulator_bin\u003demulator_bin, arch\u003darch,"},{"line_number":782,"context_line":"                        machine_type\u003dmachine_type, virt_type\u003dvirt_type)"},{"line_number":783,"context_line":"            except libvirt.libvirtError:"},{"line_number":784,"context_line":"                # NOTE(sean-k-mooney): This can happen for several"},{"line_number":785,"context_line":"                # reasons, but one common example is if you have"},{"line_number":786,"context_line":"                # multiple qemu emulators installed and you set"},{"line_number":787,"context_line":"                # virt-type\u003dkvm. In this case any non-native emulator"},{"line_number":788,"context_line":"                # e.g. aarch64 on x86 host, will raise an exception as"},{"line_number":789,"context_line":"                # kvm cannot be used to accelerate cpu instructions"},{"line_number":790,"context_line":"                # for non-native architectures."},{"line_number":791,"context_line":"                LOG.debug("},{"line_number":792,"context_line":"                    \"Skipping arch: %s as it is not compatible with \""},{"line_number":793,"context_line":"                    \"virt-type: %s and machine-type: %s\","},{"line_number":794,"context_line":"                    arch, virt_type, machine_type)"},{"line_number":795,"context_line":"                # Remove archs added by default dict lookup when checking"},{"line_number":796,"context_line":"                # if the machine type has already been recoded."},{"line_number":797,"context_line":"                if arch in domain_caps:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_08fd83b0","line":794,"range":{"start_line":784,"start_character":0,"end_line":794,"end_character":50},"in_reply_to":"7faddb67_9d83f756","updated":"2019-07-25 13:30:12.000000000","message":"Done. I found a further improvement based on existing code which logs libvirt exceptions.","commit_id":"12563a27e24373c98ed236cba45530c0bdeea645"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"87df15467933982cf8bda4176b9ac0a90c242d61","unresolved":false,"context_lines":[{"line_number":790,"context_line":"                # instructions for non-native architectures."},{"line_number":791,"context_line":"                error_code \u003d ex.get_error_code()"},{"line_number":792,"context_line":"                LOG.debug("},{"line_number":793,"context_line":"                    \"Error from libvirt when retrieving domain capabilities \""},{"line_number":794,"context_line":"                    \"for arch %(arch)s / virt_type %(virt_type)s / \""},{"line_number":795,"context_line":"                    \"machine_type %(mach_type)s: \""},{"line_number":796,"context_line":"                    \"[Error Code %(error_code)s]: %(exception)s\","},{"line_number":797,"context_line":"                    {\u0027arch\u0027: arch, \u0027virt_type\u0027: virt_type,"},{"line_number":798,"context_line":"                     \u0027mach_type\u0027: machine_type, \u0027error_code\u0027: error_code,"},{"line_number":799,"context_line":"                     \u0027exception\u0027: ex})"},{"line_number":800,"context_line":"                # Remove archs added by default dict lookup when checking"},{"line_number":801,"context_line":"                # if the machine type has already been recoded."},{"line_number":802,"context_line":"                if arch in domain_caps:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_18c0722a","line":799,"range":{"start_line":793,"start_character":1,"end_line":799,"end_character":38},"updated":"2019-07-25 15:36:06.000000000","message":"Yes, reads better.","commit_id":"40f24ca9a20092744f998108622679c75185e6b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fac0f67f48ef73d5064642a284ac693e9782d5eb","unresolved":false,"context_lines":[{"line_number":808,"context_line":"            # element (e.g. pc-i440fx-2.11)"},{"line_number":809,"context_line":"            if cap_obj.machine_type:"},{"line_number":810,"context_line":"                domain_caps[arch][cap_obj.machine_type] \u003d cap_obj"},{"line_number":811,"context_line":"            else:"},{"line_number":812,"context_line":"                # NOTE(aspiers): In theory this should never happen,"},{"line_number":813,"context_line":"                # but better safe than sorry."},{"line_number":814,"context_line":"                LOG.warning("},{"line_number":815,"context_line":"                    \"libvirt getDomainCapabilities(\""},{"line_number":816,"context_line":"                    \"emulator_bin\u003d%(emulator_bin)s, arch\u003d%(arch)s, \""},{"line_number":817,"context_line":"                    \"machine_type\u003d%(machine_type)s, virt_type\u003d%(virt_type)s) \""},{"line_number":818,"context_line":"                    \"returned null \u003cmachine\u003e type\","},{"line_number":819,"context_line":"                    {\u0027emulator_bin\u0027: emulator_bin, \u0027arch\u0027: arch,"},{"line_number":820,"context_line":"                     \u0027machine_type\u0027: machine_type, \u0027virt_type\u0027: virt_type}"},{"line_number":821,"context_line":"                )"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"            # And if we passed an alias, register the domain caps"}],"source_content_type":"text/x-python","patch_set":14,"id":"7faddb67_09055bc2","line":820,"range":{"start_line":811,"start_character":0,"end_line":820,"end_character":74},"updated":"2019-07-29 14:53:43.000000000","message":"I\u0027d rather fall over here, tbh, that log and continue. If it should never happen, cases where it does happen should be highlighted","commit_id":"f1426d128ef504ce364828720ac1d08435dbdeb8"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"35fa473a1cdddf044cf67a19e9bdc38e2d585185","unresolved":false,"context_lines":[{"line_number":567,"context_line":"    # default machine type.  It is the recommended board, which is designed"},{"line_number":568,"context_line":"    # to be used with virtual machines.  The \u0027virt\u0027 board is more flexible,"},{"line_number":569,"context_line":"    # supports PCI, \u0027virtio\u0027, has decent RAM limits, etc."},{"line_number":570,"context_line":"    # NOTE(sean-k-mooney): pc is still our default for x86 so use that not"},{"line_number":571,"context_line":"    # q35 for x86_64 and i686"},{"line_number":572,"context_line":"    default_mtypes \u003d {"},{"line_number":573,"context_line":"        obj_fields.Architecture.ARMV7: \"virt\","},{"line_number":574,"context_line":"        obj_fields.Architecture.AARCH64: \"virt\","}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_9b079819","line":571,"range":{"start_line":570,"start_character":26,"end_line":571,"end_character":29},"updated":"2019-07-24 09:19:00.000000000","message":"OCD nit on phrasing:\n\nNova\u0027s default for x86 is still \u0027pc\u0027, so use that, not \u0027q35\u0027, for x86_64 and i686.\n\n(I think is worth expanding the NOTE to mention the default behavior of libvirt for x86; probably in the \u0027host.py\u0027 -- I\u0027ll add a comment there.)","commit_id":"98597e70ce26551d19482889d03394f63355bb14"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4130dba95db2f62b9faa5bd1a808f24653d4901e","unresolved":false,"context_lines":[{"line_number":567,"context_line":"    # default machine type.  It is the recommended board, which is designed"},{"line_number":568,"context_line":"    # to be used with virtual machines.  The \u0027virt\u0027 board is more flexible,"},{"line_number":569,"context_line":"    # supports PCI, \u0027virtio\u0027, has decent RAM limits, etc."},{"line_number":570,"context_line":"    # NOTE(sean-k-mooney): pc is still our default for x86 so use that not"},{"line_number":571,"context_line":"    # q35 for x86_64 and i686"},{"line_number":572,"context_line":"    default_mtypes \u003d {"},{"line_number":573,"context_line":"        obj_fields.Architecture.ARMV7: \"virt\","},{"line_number":574,"context_line":"        obj_fields.Architecture.AARCH64: \"virt\","}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_5649f52f","line":571,"range":{"start_line":570,"start_character":26,"end_line":571,"end_character":29},"in_reply_to":"7faddb67_9b079819","updated":"2019-07-24 09:44:01.000000000","message":"Done","commit_id":"98597e70ce26551d19482889d03394f63355bb14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"35fa473a1cdddf044cf67a19e9bdc38e2d585185","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    # NOTE(sean-k-mooney): pc is still our default for x86 so use that not"},{"line_number":571,"context_line":"    # q35 for x86_64 and i686"},{"line_number":572,"context_line":"    default_mtypes \u003d {"},{"line_number":573,"context_line":"        obj_fields.Architecture.ARMV7: \"virt\","},{"line_number":574,"context_line":"        obj_fields.Architecture.AARCH64: \"virt\","},{"line_number":575,"context_line":"        obj_fields.Architecture.S390: \"s390-ccw-virtio\","},{"line_number":576,"context_line":"        obj_fields.Architecture.S390X: \"s390-ccw-virtio\","},{"line_number":577,"context_line":"        obj_fields.Architecture.I686: \"pc\","},{"line_number":578,"context_line":"        obj_fields.Architecture.X86_64: \"pc\","},{"line_number":579,"context_line":"    }"},{"line_number":580,"context_line":"    return default_mtypes.get(arch)"},{"line_number":581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_bb25b4ad","line":578,"range":{"start_line":573,"start_character":0,"end_line":578,"end_character":44},"updated":"2019-07-24 09:19:00.000000000","message":"Yep, looks good.","commit_id":"98597e70ce26551d19482889d03394f63355bb14"}]}
