)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a92b2efdf6b5ef06eb62f6c052fb7d751dd971b0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Boris Bobrov \u003cbbobrov@suse.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-31 21:36:30 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Use launchSecurity element when SEV was required"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"launchSecurity enabled use of SEV. Two related configuration values are"},{"line_number":10,"context_line":"extracted from domain capabilities and set to the launchSecurity"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_4db73b88","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":18},"updated":"2019-06-03 12:34:01.000000000","message":"\"\u003claunchSecurity\u003e\" makes it clearer that element refers to some XML.","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3d5a829667ad41990e34b375d2790b346f12c7bf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Boris Bobrov \u003cbbobrov@suse.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-31 21:36:30 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Use launchSecurity element when SEV was required"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"launchSecurity enabled use of SEV. Two related configuration values are"},{"line_number":10,"context_line":"extracted from domain capabilities and set to the launchSecurity"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_76f20709","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":18},"in_reply_to":"9fb8cfa7_4db73b88","updated":"2019-06-03 17:32:49.000000000","message":"Done","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a92b2efdf6b5ef06eb62f6c052fb7d751dd971b0","unresolved":false,"context_lines":[{"line_number":2602,"context_line":"                                     _fake_network_info(self, 1),"},{"line_number":2603,"context_line":"                                     image_meta, disk_info,"},{"line_number":2604,"context_line":"                                     context\u003dctxt)"},{"line_number":2605,"context_line":"        # sev-related tag should be set"},{"line_number":2606,"context_line":"        self.assertIsInstance(cfg.launch_security,"},{"line_number":2607,"context_line":"                              vconfig.LibvirtConfigGuestSEVLaunchSecurity)"},{"line_number":2608,"context_line":"        # all disks are expected to be virtio, thus iommu should be on"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_0d8863c4","line":2605,"range":{"start_line":2605,"start_character":10,"end_line":2605,"end_character":13},"updated":"2019-06-03 12:34:01.000000000","message":"nit: SEV","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3d5a829667ad41990e34b375d2790b346f12c7bf","unresolved":false,"context_lines":[{"line_number":2602,"context_line":"                                     _fake_network_info(self, 1),"},{"line_number":2603,"context_line":"                                     image_meta, disk_info,"},{"line_number":2604,"context_line":"                                     context\u003dctxt)"},{"line_number":2605,"context_line":"        # sev-related tag should be set"},{"line_number":2606,"context_line":"        self.assertIsInstance(cfg.launch_security,"},{"line_number":2607,"context_line":"                              vconfig.LibvirtConfigGuestSEVLaunchSecurity)"},{"line_number":2608,"context_line":"        # all disks are expected to be virtio, thus iommu should be on"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_3b2478c6","line":2605,"range":{"start_line":2605,"start_character":10,"end_line":2605,"end_character":13},"in_reply_to":"9fb8cfa7_0d8863c4","updated":"2019-06-03 17:32:49.000000000","message":"Done","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a92b2efdf6b5ef06eb62f6c052fb7d751dd971b0","unresolved":false,"context_lines":[{"line_number":5455,"context_line":""},{"line_number":5456,"context_line":"    def _guest_add_sev(self, guest, image_meta, flavor):"},{"line_number":5457,"context_line":"        domain_caps \u003d self._host.get_domain_capabilities()"},{"line_number":5458,"context_line":"        # feature #0 is sev"},{"line_number":5459,"context_line":"        sev \u003d domain_caps.features[0]"},{"line_number":5460,"context_line":""},{"line_number":5461,"context_line":"        launch_security \u003d vconfig.LibvirtConfigGuestSEVLaunchSecurity()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_8813e1b8","line":5458,"range":{"start_line":5458,"start_character":0,"end_line":5458,"end_character":27},"updated":"2019-06-03 12:34:01.000000000","message":"I think it\u0027s incorrect, or at least too brittle, to rely on this always being true.  Perhaps I should have made features into a dict keyed by the element name.  It\u0027s not too late to change it.","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3d5a829667ad41990e34b375d2790b346f12c7bf","unresolved":false,"context_lines":[{"line_number":5455,"context_line":""},{"line_number":5456,"context_line":"    def _guest_add_sev(self, guest, image_meta, flavor):"},{"line_number":5457,"context_line":"        domain_caps \u003d self._host.get_domain_capabilities()"},{"line_number":5458,"context_line":"        # feature #0 is sev"},{"line_number":5459,"context_line":"        sev \u003d domain_caps.features[0]"},{"line_number":5460,"context_line":""},{"line_number":5461,"context_line":"        launch_security \u003d vconfig.LibvirtConfigGuestSEVLaunchSecurity()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_3669efbd","line":5458,"range":{"start_line":5458,"start_character":0,"end_line":5458,"end_character":27},"in_reply_to":"9fb8cfa7_8813e1b8","updated":"2019-06-03 17:32:49.000000000","message":"there is a attempt to fix it in the next patchset, what do you think of it?","commit_id":"29127c8f748ded85c632fb39966ff43720d9a372"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"14cf5ae45698e8be6d3b79c65b413e69be60735e","unresolved":false,"context_lines":[{"line_number":5458,"context_line":"        # search for feature with root name \"sev\""},{"line_number":5459,"context_line":"        for feature in domain_caps.features:"},{"line_number":5460,"context_line":"            if feature.root_name \u003d\u003d \u0027sev\u0027:"},{"line_number":5461,"context_line":"                sev \u003d feature"},{"line_number":5462,"context_line":""},{"line_number":5463,"context_line":"        launch_security \u003d vconfig.LibvirtConfigGuestSEVLaunchSecurity()"},{"line_number":5464,"context_line":"        launch_security.cbitpos \u003d sev.cbitpos"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_26021cb6","line":5461,"updated":"2019-06-03 22:23:53.000000000","message":"Or you *could* write:\n\n    sev \u003d next(f for f in domain_caps.features \n               if f.root_name \u003d\u003d \u0027sev\u0027)\n\nHaving said that, without a default I think it will throw an exception.\n\nEither way you should definitely handle the case that it doesn\u0027t find the element.  If it doesn\u0027t, it should either throw an exception with a helpful error message, or (maybe) attempt to recover gracefully after logging a helpful error message.\n\nThe sanity check should never fail, but Murphy\u0027s Law exists, so ... ;-)","commit_id":"5fa90a916a23d1c89b18aebafddc86469150531f"}]}
