)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Takashi Kajinami \u003ckajinamit@oss.nttdata.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-08-29 02:13:18 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: Remove tpm supoort detection for libvirt \u003c 8.0.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The minimum libvirt version was bumped to 8.0.0 so we can now safely"},{"line_number":10,"context_line":"assume libvirt always provides basic information about its tpm support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"56fc9ab9_0cff53b2","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":27},"updated":"2025-08-28 17:59:56.000000000","message":"Not important but I didn\u0027t notice this typo last time 😩","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"07ae8b233b75f28eaa0ec9511133ad6d22e78bbe","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Takashi Kajinami \u003ckajinamit@oss.nttdata.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-08-29 02:13:18 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: Remove tpm supoort detection for libvirt \u003c 8.0.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The minimum libvirt version was bumped to 8.0.0 so we can now safely"},{"line_number":10,"context_line":"assume libvirt always provides basic information about its tpm support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"d7af66cf_e1bcd957","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":27},"in_reply_to":"56fc9ab9_0cff53b2","updated":"2026-02-02 17:16:51.000000000","message":"Done","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"099ad3ab325ce3de8f47ecb9049593e780393513","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"93d8665d_e6235c20","updated":"2025-08-28 16:55:26.000000000","message":"Some comments inline.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ad298d332b15f337a31b4675423e72434951367e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c92daac0_ba2680c4","updated":"2025-09-27 15:40:28.000000000","message":"Can we merge this now since 2025.2 branch is already cut ?","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"b6889270c3450ed3b147a81d82c1ee81a377eb12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"63405798_88e6f5e1","updated":"2025-09-29 12:01:45.000000000","message":"LGTM","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"459ad9bc_3a3625f1","updated":"2025-08-28 17:59:56.000000000","message":"Looks OK to me","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"80d6296b79f4b232a92228a6319c240bedd1d5a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ab6e0198_a12708dc","updated":"2025-09-01 09:03:24.000000000","message":"Not +W\u0027ing while in freeze, but this also looks fine to me","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"24f0d0ef5641f0b6a6b452e4b5da83b9e02f5f55","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f1426739_8b09a5f0","updated":"2025-08-29 01:29:50.000000000","message":"recheck grenade failure is unrelated","commit_id":"7de1d78c0a68c2fe7f30339c6366356e796b298f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e53b5d6d285ea3700e1950c4eb8207447e626268","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7708f06b_6d45a953","updated":"2026-02-03 05:50:20.000000000","message":"recheck","commit_id":"eaee95b17607a5d70b0d942111501ddcbd9b3d6a"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"099ad3ab325ce3de8f47ecb9049593e780393513","unresolved":true,"context_lines":[{"line_number":1176,"context_line":"                    \"vTPM support is configured but some (or all) of \""},{"line_number":1177,"context_line":"                    \"the \u0027swtpm\u0027, \u0027swtpm_setup\u0027 and \u0027swtpm_ioctl\u0027 binaries \""},{"line_number":1178,"context_line":"                    \"could not be found on PATH.\")"},{"line_number":1179,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"        # The user and group must be valid on this host for cold migration and"},{"line_number":1182,"context_line":"        # resize to function."}],"source_content_type":"text/x-python","patch_set":5,"id":"028a9499_564e304a","side":"PARENT","line":1179,"updated":"2025-08-28 16:55:26.000000000","message":"Shouldn\u0027t the else block be retained? It would run when vtpm_support is None.","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"545c51ca6ea51ca8c4d028bc85b9c658c74ce891","unresolved":true,"context_lines":[{"line_number":1176,"context_line":"                    \"vTPM support is configured but some (or all) of \""},{"line_number":1177,"context_line":"                    \"the \u0027swtpm\u0027, \u0027swtpm_setup\u0027 and \u0027swtpm_ioctl\u0027 binaries \""},{"line_number":1178,"context_line":"                    \"could not be found on PATH.\")"},{"line_number":1179,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"        # The user and group must be valid on this host for cold migration and"},{"line_number":1182,"context_line":"        # resize to function."}],"source_content_type":"text/x-python","patch_set":5,"id":"faeb6dbd_ebd92113","side":"PARENT","line":1179,"in_reply_to":"028a9499_564e304a","updated":"2025-08-28 17:10:32.000000000","message":"See my reply above.","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":false,"context_lines":[{"line_number":1176,"context_line":"                    \"vTPM support is configured but some (or all) of \""},{"line_number":1177,"context_line":"                    \"the \u0027swtpm\u0027, \u0027swtpm_setup\u0027 and \u0027swtpm_ioctl\u0027 binaries \""},{"line_number":1178,"context_line":"                    \"could not be found on PATH.\")"},{"line_number":1179,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"        # The user and group must be valid on this host for cold migration and"},{"line_number":1182,"context_line":"        # resize to function."}],"source_content_type":"text/x-python","patch_set":5,"id":"7cc58921_a0e2b522","side":"PARENT","line":1179,"in_reply_to":"faeb6dbd_ebd92113","updated":"2025-08-28 17:59:56.000000000","message":"Acknowledged","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"099ad3ab325ce3de8f47ecb9049593e780393513","unresolved":true,"context_lines":[{"line_number":1155,"context_line":"                \"\u0027kvm\u0027; found \u0027%s\u0027.\")"},{"line_number":1156,"context_line":"            raise exception.InvalidConfiguration(msg % CONF.libvirt.virt_type)"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        if not self._host.supports_vtpm:"},{"line_number":1159,"context_line":"            msg \u003d _("},{"line_number":1160,"context_line":"                \"vTPM support is configured but it\u0027s not supported by \""},{"line_number":1161,"context_line":"                \"libvirt.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"77114924_034513e4","line":1158,"updated":"2025-08-28 16:55:26.000000000","message":"And it seems like this should be `if self._host.supports_vtpm is not None and not self._host.supports_vtpm:` instead because None has different handling (the else block about the executables).","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2adbf237772ca496ebe8e292584be2f7fb2755f5","unresolved":true,"context_lines":[{"line_number":1155,"context_line":"                \"\u0027kvm\u0027; found \u0027%s\u0027.\")"},{"line_number":1156,"context_line":"            raise exception.InvalidConfiguration(msg % CONF.libvirt.virt_type)"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        if not self._host.supports_vtpm:"},{"line_number":1159,"context_line":"            msg \u003d _("},{"line_number":1160,"context_line":"                \"vTPM support is configured but it\u0027s not supported by \""},{"line_number":1161,"context_line":"                \"libvirt.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"c58f2db3_20f24818","line":1158,"in_reply_to":"2b9b1981_cfa82cbb","updated":"2025-08-28 17:18:48.000000000","message":"\u003e However I noticed I didn\u0027t update return type of supports_vtpm . I\u0027ll fix it.\n\nI fixed this part.\n\n\u003e the else block about the executables\n\n(Just for record)\nThis check is done by libvirt itself since 8.0.0 and libvirt provides TPM support status according to the presence of these executables and also qemu\u0027s capability.\nThat\u0027s why we can drop the whole else field.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"545c51ca6ea51ca8c4d028bc85b9c658c74ce891","unresolved":true,"context_lines":[{"line_number":1155,"context_line":"                \"\u0027kvm\u0027; found \u0027%s\u0027.\")"},{"line_number":1156,"context_line":"            raise exception.InvalidConfiguration(msg % CONF.libvirt.virt_type)"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        if not self._host.supports_vtpm:"},{"line_number":1159,"context_line":"            msg \u003d _("},{"line_number":1160,"context_line":"                \"vTPM support is configured but it\u0027s not supported by \""},{"line_number":1161,"context_line":"                \"libvirt.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"2b9b1981_cfa82cbb","line":1158,"in_reply_to":"77114924_034513e4","updated":"2025-08-28 17:10:32.000000000","message":"Short answer is No. The tpm block was added in libvirt 8.0.0[1] so now we can safely assume supports_vtpm can be only True or False.\n\n[1] https://github.com/libvirt/libvirt/commit/6f7fc0b54ad97e62e10cd6f9524fcc29b4bb4cc5\n\nHowever I noticed I didn\u0027t update return type of supports_vtpm . I\u0027ll fix it.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"                \"\u0027kvm\u0027; found \u0027%s\u0027.\")"},{"line_number":1156,"context_line":"            raise exception.InvalidConfiguration(msg % CONF.libvirt.virt_type)"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        if not self._host.supports_vtpm:"},{"line_number":1159,"context_line":"            msg \u003d _("},{"line_number":1160,"context_line":"                \"vTPM support is configured but it\u0027s not supported by \""},{"line_number":1161,"context_line":"                \"libvirt.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"4a1e8644_48afd895","line":1158,"in_reply_to":"c58f2db3_20f24818","updated":"2025-08-28 17:59:56.000000000","message":"Gotcha, thanks for explaining.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"099ad3ab325ce3de8f47ecb9049593e780393513","unresolved":true,"context_lines":[{"line_number":13106,"context_line":"            ot.COMPUTE_SECURITY_TPM_TIS: \u0027tpm-tis\u0027 in tpm_models,"},{"line_number":13107,"context_line":"            ot.COMPUTE_SECURITY_TPM_CRB: \u0027tpm-crb\u0027 in tpm_models,"},{"line_number":13108,"context_line":"        }"},{"line_number":13109,"context_line":""},{"line_number":13110,"context_line":"        tpm_versions \u003d self._host.tpm_versions"},{"line_number":13111,"context_line":"        if tpm_versions is None:"},{"line_number":13112,"context_line":"            # TODO(tkajinam): Remove this fallback once libvirt\u003e\u003d8.6.0 is"}],"source_content_type":"text/x-python","patch_set":5,"id":"54d06aa5_fbca2b69","line":13109,"updated":"2025-08-28 16:55:26.000000000","message":"If we do need to keep the check in nova/virt/libvirt/host.py (see my comment in there) then tpm_models could be None and we need to still account for that.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2adbf237772ca496ebe8e292584be2f7fb2755f5","unresolved":true,"context_lines":[{"line_number":13106,"context_line":"            ot.COMPUTE_SECURITY_TPM_TIS: \u0027tpm-tis\u0027 in tpm_models,"},{"line_number":13107,"context_line":"            ot.COMPUTE_SECURITY_TPM_CRB: \u0027tpm-crb\u0027 in tpm_models,"},{"line_number":13108,"context_line":"        }"},{"line_number":13109,"context_line":""},{"line_number":13110,"context_line":"        tpm_versions \u003d self._host.tpm_versions"},{"line_number":13111,"context_line":"        if tpm_versions is None:"},{"line_number":13112,"context_line":"            # TODO(tkajinam): Remove this fallback once libvirt\u003e\u003d8.6.0 is"}],"source_content_type":"text/x-python","patch_set":5,"id":"5af47ffb_f07c8399","line":13109,"in_reply_to":"54d06aa5_fbca2b69","updated":"2025-08-28 17:18:48.000000000","message":"As I mentioned in my comment in host.py tpm_models should be always presented by libvirt (as long as it reports that tpm is supported) so we shouldn\u0027t get None here.","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":false,"context_lines":[{"line_number":13106,"context_line":"            ot.COMPUTE_SECURITY_TPM_TIS: \u0027tpm-tis\u0027 in tpm_models,"},{"line_number":13107,"context_line":"            ot.COMPUTE_SECURITY_TPM_CRB: \u0027tpm-crb\u0027 in tpm_models,"},{"line_number":13108,"context_line":"        }"},{"line_number":13109,"context_line":""},{"line_number":13110,"context_line":"        tpm_versions \u003d self._host.tpm_versions"},{"line_number":13111,"context_line":"        if tpm_versions is None:"},{"line_number":13112,"context_line":"            # TODO(tkajinam): Remove this fallback once libvirt\u003e\u003d8.6.0 is"}],"source_content_type":"text/x-python","patch_set":5,"id":"a21cf8c6_3e09f978","line":13109,"in_reply_to":"5af47ffb_f07c8399","updated":"2025-08-28 17:59:56.000000000","message":"Acknowledged","commit_id":"112850be7ecf2ab1dfdd53ccf5ec600067b0b868"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5a644ebc165ffc7d5a36a12d7f2afa39390dba44","unresolved":false,"context_lines":[{"line_number":1928,"context_line":"            _tpm \u003d domain_caps[arch][machine_type].devices.tpm"},{"line_number":1929,"context_line":"            # TODO(tkajinam): Remove first check once libvirt \u003e\u003d 8.0.0 is"},{"line_number":1930,"context_line":"            # required"},{"line_number":1931,"context_line":"            # TODO(tkajinam): Remove second check once libvirt \u003e\u003d 8.6.0 is"},{"line_number":1932,"context_line":"            # required"},{"line_number":1933,"context_line":"            if _tpm is None or _tpm.models is None:"},{"line_number":1934,"context_line":"                return None"},{"line_number":1935,"context_line":"            return _tpm.models"}],"source_content_type":"text/x-python","patch_set":1,"id":"8b650180_a9fda91a","side":"PARENT","line":1932,"range":{"start_line":1931,"start_character":0,"end_line":1932,"end_character":22},"updated":"2025-06-11 02:37:12.000000000","message":"(note for reviewers)\nThis was wrong. models field should be available since libvirt 8.0.0 .","commit_id":"c4c513436920525cff9e45f3dd4016a80f0371c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"099ad3ab325ce3de8f47ecb9049593e780393513","unresolved":true,"context_lines":[{"line_number":1931,"context_line":"            # TODO(tkajinam): Remove second check once libvirt \u003e\u003d 8.6.0 is"},{"line_number":1932,"context_line":"            # required"},{"line_number":1933,"context_line":"            if _tpm is None or _tpm.models is None:"},{"line_number":1934,"context_line":"                return None"},{"line_number":1935,"context_line":"            return _tpm.models"},{"line_number":1936,"context_line":"        # safe guard"},{"line_number":1937,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"7c8c7fc7_30b41061","side":"PARENT","line":1934,"updated":"2025-08-28 16:55:26.000000000","message":"Shouldn\u0027t the second check here be retained for now? Or is there some other reason it is no longer needed?","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3095ac61d7b8c811ad26b29df947d75cf52dff95","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"            # TODO(tkajinam): Remove second check once libvirt \u003e\u003d 8.6.0 is"},{"line_number":1932,"context_line":"            # required"},{"line_number":1933,"context_line":"            if _tpm is None or _tpm.models is None:"},{"line_number":1934,"context_line":"                return None"},{"line_number":1935,"context_line":"            return _tpm.models"},{"line_number":1936,"context_line":"        # safe guard"},{"line_number":1937,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"195670c0_7046fb31","side":"PARENT","line":1934,"in_reply_to":"10e9550c_0ea12874","updated":"2025-08-28 17:59:56.000000000","message":"Ah OK, thanks.","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"545c51ca6ea51ca8c4d028bc85b9c658c74ce891","unresolved":true,"context_lines":[{"line_number":1931,"context_line":"            # TODO(tkajinam): Remove second check once libvirt \u003e\u003d 8.6.0 is"},{"line_number":1932,"context_line":"            # required"},{"line_number":1933,"context_line":"            if _tpm is None or _tpm.models is None:"},{"line_number":1934,"context_line":"                return None"},{"line_number":1935,"context_line":"            return _tpm.models"},{"line_number":1936,"context_line":"        # safe guard"},{"line_number":1937,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"10e9550c_0ea12874","side":"PARENT","line":1934,"in_reply_to":"7c8c7fc7_30b41061","updated":"2025-08-28 17:10:32.000000000","message":"\"models\" field was added in libvirt 8.0.0 so the comment above is wrong. (That was my mistake...) What was added in 8.6.0 is only backend_versions.\n\nhttps://github.com/libvirt/libvirt/commit/6f7fc0b54ad97e62e10cd6f9524fcc29b4bb4cc5","commit_id":"6ebfd0c247b37ae7938012cf93ce4718fcd80ed3"}]}
