)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"678287d8848e3f389ae0c109d5589cd90f26a61f","unresolved":true,"context_lines":[{"line_number":11,"context_line":"feature instead of implementing the own logic to detect availability."},{"line_number":12,"context_line":"The feature in libvirt relies on libvirt itself, so allows us to ensure"},{"line_number":13,"context_line":"the swtpm binaries are present in the PATH used by libvirt, not in one"},{"line_number":14,"context_line":"used by nova-compute. Current libvirt checks not only swtpm and"},{"line_number":15,"context_line":"swtpm_setup but also swtpm_ioctl, so this change makes nova check"},{"line_number":16,"context_line":"swtpm_ioctl additionally, to align check logic in libvirt and one in"},{"line_number":17,"context_line":"nova."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"In addition, libvirt 8.6.0 introduces the additional field to expose"},{"line_number":20,"context_line":"available TPM version[2], which can be used to report available TPM"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"df3dc691_1b99bd97","line":17,"range":{"start_line":14,"start_character":22,"end_line":17,"end_character":5},"updated":"2024-02-13 10:23:30.000000000","message":"this part was moved to the parent change, so this description should be removed.","commit_id":"2c7295ddadccfa1d188925dfc42b78e59d4983a8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2838824f6f955c3fc0bb339cb9e0bda0f18d3d93","unresolved":false,"context_lines":[{"line_number":11,"context_line":"feature instead of implementing the own logic to detect availability."},{"line_number":12,"context_line":"The feature in libvirt relies on libvirt itself, so allows us to ensure"},{"line_number":13,"context_line":"the swtpm binaries are present in the PATH used by libvirt, not in one"},{"line_number":14,"context_line":"used by nova-compute. Current libvirt checks not only swtpm and"},{"line_number":15,"context_line":"swtpm_setup but also swtpm_ioctl, so this change makes nova check"},{"line_number":16,"context_line":"swtpm_ioctl additionally, to align check logic in libvirt and one in"},{"line_number":17,"context_line":"nova."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"In addition, libvirt 8.6.0 introduces the additional field to expose"},{"line_number":20,"context_line":"available TPM version[2], which can be used to report available TPM"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"c63071d7_f24af075","line":17,"range":{"start_line":14,"start_character":22,"end_line":17,"end_character":5},"in_reply_to":"df3dc691_1b99bd97","updated":"2024-02-13 10:24:04.000000000","message":"Done","commit_id":"2c7295ddadccfa1d188925dfc42b78e59d4983a8"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"129d733e01a0af2adabe8ed9e9a3e1427c57c222","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8921b8ae_dd86aa50","updated":"2024-02-08 16:14:32.000000000","message":"Still have to find out how I can add unit tests for this change ...","commit_id":"09c5d3ba8c87e8f164f1f146c60770e56c29a823"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"4de055da402b1dd47ff9af326208bb1520292f8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"64676554_b2345c95","in_reply_to":"8921b8ae_dd86aa50","updated":"2024-02-09 08:23:08.000000000","message":"Done","commit_id":"09c5d3ba8c87e8f164f1f146c60770e56c29a823"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ea35041287dce5669d6cfcb6fcfd2d273262c25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5ea304f9_e2a504f1","updated":"2024-02-13 09:46:20.000000000","message":"hehe yes we asked for this to be added to libvirt when we found out that our downstream qemu had some vtpm modes disbaled...\n\ni have not reviewd this yet but i have no issue with swpping to the libvirt version in general provided we have the fallback until we can raise our min version.","commit_id":"2c7295ddadccfa1d188925dfc42b78e59d4983a8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"562895c1f348bec3df1f356e3fecda836f4dcfa1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"75717710_91d4a235","updated":"2024-08-01 15:14:14.000000000","message":"Honestly, I haven\u0027t found anything wrong. Wow, ALGTM","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"54557d583e008da93fc29b983b23bd5bd589a664","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"1109d665_0b26d1a0","updated":"2024-08-09 02:47:44.000000000","message":"some minor test nits but this looks ok to me","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"54557d583e008da93fc29b983b23bd5bd589a664","unresolved":true,"context_lines":[{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def test_get_domain_capabilities_without_vtpm(self):"},{"line_number":875,"context_line":"        caps \u003d self._test_get_domain_capabilities()"},{"line_number":876,"context_line":"        self.assertEqual(vconfig.LibvirtConfigDomainCaps, type(caps))"},{"line_number":877,"context_line":"        self.assertIsNone(caps.devices.tpm)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    @mock.patch.object("}],"source_content_type":"text/x-python","patch_set":12,"id":"05ea7149_e87c7020","line":876,"updated":"2024-08-09 02:47:44.000000000","message":"in stead of using type(caps) we should be useing \n\nself.assertIsInstance\n\nhttps://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsInstance\n\nthe same is true for all the other usage of assertEqual and type below.","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"271002c3f91f94dc00150a5b6ed5521b3cb8df8d","unresolved":true,"context_lines":[{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def test_get_domain_capabilities_without_vtpm(self):"},{"line_number":875,"context_line":"        caps \u003d self._test_get_domain_capabilities()"},{"line_number":876,"context_line":"        self.assertEqual(vconfig.LibvirtConfigDomainCaps, type(caps))"},{"line_number":877,"context_line":"        self.assertIsNone(caps.devices.tpm)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    @mock.patch.object("}],"source_content_type":"text/x-python","patch_set":12,"id":"31c1cda5_8521dca3","line":876,"in_reply_to":"05ea7149_e87c7020","updated":"2024-08-09 15:12:09.000000000","message":"assertIsInstance is mostly equivalent but is less strict because it does not care class inheritance. However If we are ok with that behavior then I can propose a change to replace the usage.","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"868e361df9d1b1740686cb3ffdf58a178cb9afae","unresolved":true,"context_lines":[{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def test_get_domain_capabilities_without_vtpm(self):"},{"line_number":875,"context_line":"        caps \u003d self._test_get_domain_capabilities()"},{"line_number":876,"context_line":"        self.assertEqual(vconfig.LibvirtConfigDomainCaps, type(caps))"},{"line_number":877,"context_line":"        self.assertIsNone(caps.devices.tpm)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    @mock.patch.object("}],"source_content_type":"text/x-python","patch_set":12,"id":"cc813e20_ac83237d","line":876,"in_reply_to":"31c1cda5_8521dca3","updated":"2024-08-09 16:59:43.000000000","message":"yes \nif we want to check the exact type withoug inheritiance the docs recommend doing\n\nassertIs(type(obj), cls)\n\n\nbut i dont think we explicty need the strictness here.","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"da0b16366caaaf26395e25a1049171f6c9af6c51","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.supported \u003d (xmldoc.get(\u0027supported\u0027) \u003d\u003d \u0027yes\u0027)"},{"line_number":266,"context_line":"        for c in xmldoc:"},{"line_number":267,"context_line":"            if c.tag \u003d\u003d \u0027enum\u0027:"},{"line_number":268,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027model\u0027:"},{"line_number":269,"context_line":"                    for c2 in c:"},{"line_number":270,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"},{"line_number":271,"context_line":"                            self.models.append(c2.text)"},{"line_number":272,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027backendModel\u0027:"},{"line_number":273,"context_line":"                    for c2 in c:"},{"line_number":274,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"6017fafb_9384c3a0","line":271,"range":{"start_line":268,"start_character":16,"end_line":271,"end_character":55},"updated":"2024-02-14 06:34:04.000000000","message":"I wonder if we should report available models as traits and require one of these according to the tpm_model requested in flavor spec or image properties ?","commit_id":"afe711984891d88fc86206f7226c5e3de8591c66"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b37f09e3cdb51f5aa0214d584a2cb50704800114","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.supported \u003d (xmldoc.get(\u0027supported\u0027) \u003d\u003d \u0027yes\u0027)"},{"line_number":266,"context_line":"        for c in xmldoc:"},{"line_number":267,"context_line":"            if c.tag \u003d\u003d \u0027enum\u0027:"},{"line_number":268,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027model\u0027:"},{"line_number":269,"context_line":"                    for c2 in c:"},{"line_number":270,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"},{"line_number":271,"context_line":"                            self.models.append(c2.text)"},{"line_number":272,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027backendModel\u0027:"},{"line_number":273,"context_line":"                    for c2 in c:"},{"line_number":274,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"e3822d8f_e6f0dede","line":271,"range":{"start_line":268,"start_character":16,"end_line":271,"end_character":55},"in_reply_to":"569ab7f2_10f49771","updated":"2024-02-15 12:00:03.000000000","message":"I\u0027ve submitted https://review.opendev.org/c/openstack/os-traits/+/909107 just in case we can move this forward during this cycle . (probably this needs spec-less blueprint ? in case we need spec then I\u0027m ok to push this to the next cycle)","commit_id":"afe711984891d88fc86206f7226c5e3de8591c66"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7cec0d055e22dd7d0e1cb593084a47973318b41e","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.supported \u003d (xmldoc.get(\u0027supported\u0027) \u003d\u003d \u0027yes\u0027)"},{"line_number":266,"context_line":"        for c in xmldoc:"},{"line_number":267,"context_line":"            if c.tag \u003d\u003d \u0027enum\u0027:"},{"line_number":268,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027model\u0027:"},{"line_number":269,"context_line":"                    for c2 in c:"},{"line_number":270,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"},{"line_number":271,"context_line":"                            self.models.append(c2.text)"},{"line_number":272,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027backendModel\u0027:"},{"line_number":273,"context_line":"                    for c2 in c:"},{"line_number":274,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"569ab7f2_10f49771","line":271,"range":{"start_line":268,"start_character":16,"end_line":271,"end_character":55},"in_reply_to":"6017fafb_9384c3a0","updated":"2024-02-15 10:01:51.000000000","message":"we could.\nwe have the version traits so this would just be adding partity\nhttps://github.com/openstack/os-traits/blob/master/os_traits/compute/security.py\n\nbut the non client lib freeze is next week so if we want to do that this cycyle we have to do it quickly.\n\nbut yes i belive that would make sense to do\n\nwhen vtpm was first added we expect both models to always be present if one of them was.\n\nthat expectation was broken by rhel because rhel actully compiled out one of the two modeles.\n\nall versions of qemu/libvert we support based on min version number should support both but that is not the case in rhel 9","commit_id":"afe711984891d88fc86206f7226c5e3de8591c66"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f7f97fae7cb16fdb2bdd80941e2d50c7a289a889","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            self.supported \u003d (xmldoc.get(\u0027supported\u0027) \u003d\u003d \u0027yes\u0027)"},{"line_number":266,"context_line":"        for c in xmldoc:"},{"line_number":267,"context_line":"            if c.tag \u003d\u003d \u0027enum\u0027:"},{"line_number":268,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027model\u0027:"},{"line_number":269,"context_line":"                    for c2 in c:"},{"line_number":270,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"},{"line_number":271,"context_line":"                            self.models.append(c2.text)"},{"line_number":272,"context_line":"                if c.get(\u0027name\u0027) \u003d\u003d \u0027backendModel\u0027:"},{"line_number":273,"context_line":"                    for c2 in c:"},{"line_number":274,"context_line":"                        if c2.tag \u003d\u003d \u0027value\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"b2dd2459_dc0240b1","line":271,"range":{"start_line":268,"start_character":16,"end_line":271,"end_character":55},"in_reply_to":"e3822d8f_e6f0dede","updated":"2024-02-16 06:54:04.000000000","message":"I\u0027ve created https://blueprints.launchpad.net/nova/+spec/libvirt-detect-vtpm-support and link the nova changes and os-trait patch to it.","commit_id":"afe711984891d88fc86206f7226c5e3de8591c66"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"562895c1f348bec3df1f356e3fecda836f4dcfa1","unresolved":true,"context_lines":[{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"        vtpm_support \u003d self._host.supports_vtpm"},{"line_number":1089,"context_line":"        if vtpm_support is not None:"},{"line_number":1090,"context_line":"            # libvirt \u003e\u003d 8.0.0 presents availability of vTPM support and swtpm"},{"line_number":1091,"context_line":"            # in domain capabilities"},{"line_number":1092,"context_line":"            if not vtpm_support:"},{"line_number":1093,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":12,"id":"49bbf6ea_2ad400e0","line":1090,"updated":"2024-08-01 15:14:14.000000000","message":"++ but we don\u0027t really need to explain it :-)\nThat said, meh.","commit_id":"510cc2404ed2ad25b719081a1d83791c53c0a601"}]}
