)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e3a7cdd6a08db59b70bab5b58ed180ea4c69ad8e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Extract shared lifecycle helpers from TestPCIDriverLifecycle into"},{"line_number":10,"context_line":"a DriverLifecycleMixin that can be reused with multiple drivers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iab172cb788442ab763a16a254c6f1dd348e6832e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iba2eef9ee39d7be31bd673fa788819c6845d71b1"},{"line_number":15,"context_line":"Signed-off-by: jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f3582c1_a9825ee2","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":52},"updated":"2026-07-20 09:24:16.000000000","message":"We can drop this change id","commit_id":"cee49a3f1c2e7b208b62688d79c6ea9646c68e3d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f69a29a64ef4e27b8d4f32e82e5cde1c507d6dc5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Extract shared lifecycle helpers from TestPCIDriverLifecycle into"},{"line_number":10,"context_line":"a DriverLifecycleMixin that can be reused with multiple drivers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iab172cb788442ab763a16a254c6f1dd348e6832e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iba2eef9ee39d7be31bd673fa788819c6845d71b1"},{"line_number":15,"context_line":"Signed-off-by: jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b1025ad6_2f68776b","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":52},"in_reply_to":"3f3582c1_a9825ee2","updated":"2026-07-21 07:53:16.000000000","message":"Done","commit_id":"cee49a3f1c2e7b208b62688d79c6ea9646c68e3d"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"b1efc28ca8bbe539de1ac2bdd0276bdbd5f4d4fc","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Extract shared lifecycle helpers from TestPCIDriverLifecycle into"},{"line_number":10,"context_line":"a DriverLifecycleMixin that can be reused with multiple drivers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iab172cb788442ab763a16a254c6f1dd348e6832e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iba2eef9ee39d7be31bd673fa788819c6845d71b1"},{"line_number":15,"context_line":"Signed-off-by: jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d4336ecf_8979a773","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":52},"in_reply_to":"3f3582c1_a9825ee2","updated":"2026-07-21 06:01:17.000000000","message":"Done","commit_id":"cee49a3f1c2e7b208b62688d79c6ea9646c68e3d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e5d4f6fea2edd509f5d2c942052c45fc9df89fc4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"90409c64_9a2894de","updated":"2026-07-21 12:48:31.000000000","message":"recheck reboot test failure","commit_id":"628aab9d867f3831d3590383978196a1deceb542"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"601d67cd24d0df90fd41499e297b05a7dada3e6c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"43b58fd6_74082f20","updated":"2026-07-22 11:43:09.000000000","message":"recheck","commit_id":"5d0dcbe0871fdcc852abac35b7bf0c2e53b83d50"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c92b4630b3aec5873a7a258c9c72b3fb3718edaf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b3ce3d0d_12c0d11a","updated":"2026-07-28 11:06:19.000000000","message":"i think this looks ok overall lets see wht ci thinks","commit_id":"22349de37e89d0d0a527738e08a6a91faed5e21f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dceecec5275fff78fcad46d8a7f7f229bce254c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"e7779851_c38e2d6e","updated":"2026-07-28 15:22:02.000000000","message":"dropping the _ is not really enough to require a re spin of the patch so im ok to proceed with this for now and we can refine this more in followups","commit_id":"ae4fd72abc28b8cf032fac9279c502f0bf432380"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"520ad593e5daee5c378ee8fa768e8154dce0cdf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"090d901d_f1b4a8fa","in_reply_to":"e7779851_c38e2d6e","updated":"2026-07-28 15:25:54.000000000","message":"thanks, I\u0027ll add the change to the next patch in the chain","commit_id":"ae4fd72abc28b8cf032fac9279c502f0bf432380"}],"cyborg_tempest_plugin/config.py":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"103ab7da5f46b313bce696a06cdd9b8651c1eb8f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt(\"product_id\","},{"line_number":42,"context_line":"               default\u003d\"\","},{"line_number":43,"context_line":"               help\u003d\"Expected PCI product ID visible in the guest.\"),"},{"line_number":44,"context_line":"    cfg.StrOpt(\"image_ref\","},{"line_number":45,"context_line":"               default\u003d\"\","},{"line_number":46,"context_line":"               help\u003d\"Optional image ID for Cyborg scenario tests. Defaults \""},{"line_number":47,"context_line":"                    \"to compute.image_ref when unset.\"),"},{"line_number":48,"context_line":"    cfg.StrOpt(\"flavor_ref\","},{"line_number":49,"context_line":"               default\u003d\"\","},{"line_number":50,"context_line":"               help\u003d\"Optional base flavor ID for Cyborg scenario tests. \""},{"line_number":51,"context_line":"                    \"Defaults to compute.flavor_ref when unset.\"),"},{"line_number":52,"context_line":"    cfg.BoolOpt(\"expected_managed\","},{"line_number":53,"context_line":"                default\u003dNone,"},{"line_number":54,"context_line":"                help\u003d\"Expected value of attach_handle_info.managed for \""}],"source_content_type":"text/x-python","patch_set":9,"id":"0688ba32_916118d6","line":51,"range":{"start_line":44,"start_character":4,"end_line":51,"end_character":66},"updated":"2026-07-28 10:09:57.000000000","message":"Can we move image_ref and flavor_ref under new [cyborg] group so that it will be shared with different device testing like pci, mdev etc.","commit_id":"85f4067d0f815829c69b2e8a0acd28c7bff7fa45"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"64b054ece2c5ff90992055429512ba58dd6f7c95","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt(\"product_id\","},{"line_number":42,"context_line":"               default\u003d\"\","},{"line_number":43,"context_line":"               help\u003d\"Expected PCI product ID visible in the guest.\"),"},{"line_number":44,"context_line":"    cfg.StrOpt(\"image_ref\","},{"line_number":45,"context_line":"               default\u003d\"\","},{"line_number":46,"context_line":"               help\u003d\"Optional image ID for Cyborg scenario tests. Defaults \""},{"line_number":47,"context_line":"                    \"to compute.image_ref when unset.\"),"},{"line_number":48,"context_line":"    cfg.StrOpt(\"flavor_ref\","},{"line_number":49,"context_line":"               default\u003d\"\","},{"line_number":50,"context_line":"               help\u003d\"Optional base flavor ID for Cyborg scenario tests. \""},{"line_number":51,"context_line":"                    \"Defaults to compute.flavor_ref when unset.\"),"},{"line_number":52,"context_line":"    cfg.BoolOpt(\"expected_managed\","},{"line_number":53,"context_line":"                default\u003dNone,"},{"line_number":54,"context_line":"                help\u003d\"Expected value of attach_handle_info.managed for \""}],"source_content_type":"text/x-python","patch_set":9,"id":"e969c5a5_5f9db10a","line":51,"range":{"start_line":44,"start_character":4,"end_line":51,"end_character":66},"in_reply_to":"0688ba32_916118d6","updated":"2026-07-28 10:31:50.000000000","message":"yes,  that probably makes sense, I was thinking if there could be some use case where we could require having a different image for pci vs mdev for example, but none come to mind right now, I\u0027ve moved the options to a new shared group","commit_id":"85f4067d0f815829c69b2e8a0acd28c7bff7fa45"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c92b4630b3aec5873a7a258c9c72b3fb3718edaf","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt(\"product_id\","},{"line_number":42,"context_line":"               default\u003d\"\","},{"line_number":43,"context_line":"               help\u003d\"Expected PCI product ID visible in the guest.\"),"},{"line_number":44,"context_line":"    cfg.StrOpt(\"image_ref\","},{"line_number":45,"context_line":"               default\u003d\"\","},{"line_number":46,"context_line":"               help\u003d\"Optional image ID for Cyborg scenario tests. Defaults \""},{"line_number":47,"context_line":"                    \"to compute.image_ref when unset.\"),"},{"line_number":48,"context_line":"    cfg.StrOpt(\"flavor_ref\","},{"line_number":49,"context_line":"               default\u003d\"\","},{"line_number":50,"context_line":"               help\u003d\"Optional base flavor ID for Cyborg scenario tests. \""},{"line_number":51,"context_line":"                    \"Defaults to compute.flavor_ref when unset.\"),"},{"line_number":52,"context_line":"    cfg.BoolOpt(\"expected_managed\","},{"line_number":53,"context_line":"                default\u003dNone,"},{"line_number":54,"context_line":"                help\u003d\"Expected value of attach_handle_info.managed for \""}],"source_content_type":"text/x-python","patch_set":9,"id":"c2cb2a3a_d3c8c110","line":51,"range":{"start_line":44,"start_character":4,"end_line":51,"end_character":66},"in_reply_to":"e969c5a5_5f9db10a","updated":"2026-07-28 11:06:19.000000000","message":"Done","commit_id":"85f4067d0f815829c69b2e8a0acd28c7bff7fa45"}],"cyborg_tempest_plugin/tests/scenario/driver_lifecycle_base.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"eca61f8cc5478527c450a48c8b90cb0751359687","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _assert_device_arq(self, arq, server_id):"},{"line_number":89,"context_line":"        raise NotImplementedError"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _is_ssh_reachable(self, ip_address, port\u003d22,"},{"line_number":92,"context_line":"                          timeout\u003d5):"},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            conn \u003d socket.create_connection("}],"source_content_type":"text/x-python","patch_set":2,"id":"093fec36_7586c129","line":91,"updated":"2026-07-20 10:24:05.000000000","message":"The _is_ssh_reachable method is defined in the new DriverLifecycleMixin but is never invoked anywhere in the codebase. It introduces unused code and an unnecessary socket import dependency.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Unused code in a shared mixin increases maintenance burden and can confuse future driver-test authors who may assume the method is part of the expected lifecycle flow. The socket import adds a dependency with no functional benefit.\n\n**Recommendation**:\nRemove the _is_ssh_reachable method and the \u0027import socket\u0027 statement at the top of the file, unless there is an immediate plan to call it from a driver subclass landing in the same cycle.","commit_id":"527e57028f0eba39f4eaec44375b3b22cdac6de4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"b1efc28ca8bbe539de1ac2bdd0276bdbd5f4d4fc","unresolved":true,"context_lines":[{"line_number":88,"context_line":"    def _assert_device_arq(self, arq, server_id):"},{"line_number":89,"context_line":"        raise NotImplementedError"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _is_ssh_reachable(self, ip_address, port\u003d22,"},{"line_number":92,"context_line":"                          timeout\u003d5):"},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            conn \u003d socket.create_connection("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa9e989f_2fdd1d9e","line":91,"in_reply_to":"093fec36_7586c129","updated":"2026-07-21 06:01:17.000000000","message":"This comment is valid. ` _is_ssh_reachable` is not used anywhere with in the codebase and not even in mdev test. We can drop this method as well as import socket from the top.","commit_id":"527e57028f0eba39f4eaec44375b3b22cdac6de4"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f69a29a64ef4e27b8d4f32e82e5cde1c507d6dc5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _assert_device_arq(self, arq, server_id):"},{"line_number":89,"context_line":"        raise NotImplementedError"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _is_ssh_reachable(self, ip_address, port\u003d22,"},{"line_number":92,"context_line":"                          timeout\u003d5):"},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            conn \u003d socket.create_connection("}],"source_content_type":"text/x-python","patch_set":2,"id":"d6a8abdf_9a04457d","line":91,"in_reply_to":"fa9e989f_2fdd1d9e","updated":"2026-07-21 07:53:16.000000000","message":"Done","commit_id":"527e57028f0eba39f4eaec44375b3b22cdac6de4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"432f470437dca6c09795b5c7074abd4361c94fcd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import socket"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.common import compute"},{"line_number":19,"context_line":"from tempest.common import waiters"}],"source_content_type":"text/x-python","patch_set":3,"id":"ad9600a5_8f6ea6d7","line":16,"updated":"2026-07-21 08:32:46.000000000","message":"pep8: F401 \u0027socket\u0027 imported but unused","commit_id":"a89b6e2b97f439faed59e92b83dc4a5ff6f978bf"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b78bbd96780acc00959ac39faf133d81870ac35a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    def _assert_device_arq(self, arq, server_id):"},{"line_number":87,"context_line":"        raise NotImplementedError"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _assert_guest_has_device(self, ssh_client):"},{"line_number":90,"context_line":"        vendor_id \u003d self._normalize_pci_id(self._cfg.vendor_id)"},{"line_number":91,"context_line":"        product_id \u003d self._normalize_pci_id(self._cfg.product_id)"},{"line_number":92,"context_line":"        expected \u003d \"%s:%s\" % (vendor_id, product_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bdc9887c_d3cd8a37","line":89,"updated":"2026-07-21 13:13:36.000000000","message":"The DriverLifecycleMixin is explicitly designed for reuse with multiple driver types, but _assert_guest_has_device hardcodes PCI-specific logic by accessing self._cfg.vendor_id and self._cfg.product_id. These config options only exist in the cyborg_pci group, so a non-PCI driver subclass would hi...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: A future non-PCI driver subclass (e.g., GPU, FPGA) using this mixin will encounter an AttributeError when _assert_guest_has_device runs, because its config group will not have vendor_id or product_id options. The docstring gives no guidance to override this method.\n\n**Recommendation**:\nEither (a) make _assert_guest_has_device a no-op default like _run_device_specific_validation and override it in TestPCIDriverLifecycle with the PCI-specific logic, or (b) update the class docstring to list _assert_guest_has_device among the methods subclasses may need to override.","commit_id":"628aab9d867f3831d3590383978196a1deceb542"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"694a8513fa992694f6df45e18a507d5befe7d910","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def _cfg(self):"},{"line_number":38,"context_line":"        return getattr(CONF, self.cfg_group)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def _normalize_pci_id(pci_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"8935d131_5fe4418e","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":44},"updated":"2026-07-21 20:35:39.000000000","message":"-1 we should never us getattr with oslo config objects\n\ni dont tihnk we should have the mixin interact with config in general.\nat least not dymiclly like this if we want ot use a give image that should be an imput partmer to the create server function ectra not something hiddent waway like this","commit_id":"96b2c23640eb8534e468cc83802b647275f61800"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"8485725df259942da1b49c7f0761679164981cc1","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def _cfg(self):"},{"line_number":38,"context_line":"        return getattr(CONF, self.cfg_group)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def _normalize_pci_id(pci_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"b4f908d4_4000c7f3","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":44},"in_reply_to":"8935d131_5fe4418e","updated":"2026-07-22 08:56:06.000000000","message":"fair, I\u0027ve added the image, flavor, etc as parameters","commit_id":"96b2c23640eb8534e468cc83802b647275f61800"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c92b4630b3aec5873a7a258c9c72b3fb3718edaf","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def _cfg(self):"},{"line_number":38,"context_line":"        return getattr(CONF, self.cfg_group)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def _normalize_pci_id(pci_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a6efe0a8_a729b2a5","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":44},"in_reply_to":"b4f908d4_4000c7f3","updated":"2026-07-28 11:06:19.000000000","message":"Done","commit_id":"96b2c23640eb8534e468cc83802b647275f61800"}],"cyborg_tempest_plugin/tests/scenario/test_pci_driver_lifecycle.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c92b4630b3aec5873a7a258c9c72b3fb3718edaf","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    attach_handle_type \u003d \u0027PCI\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _lifecycle_params(self):"},{"line_number":34,"context_line":"        return dict("},{"line_number":35,"context_line":"            device_profile_name\u003dCONF.cyborg_pci.device_profile_name,"},{"line_number":36,"context_line":"            image_ref\u003dCONF.cyborg.image_ref or CONF.compute.image_ref,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9c854cc1_afbbd16a","line":33,"range":{"start_line":33,"start_character":4,"end_line":33,"end_character":32},"updated":"2026-07-28 11:06:19.000000000","message":"i would personally make this a property but that jsut me\n\ni guess youre constucting this every time because you want to be able to mutate the result in tests if needed.\n\nyou can factor out the commin image/flavor part into the mixin\n\nthen have this return super.lifecycle_parms.update({...})","commit_id":"22349de37e89d0d0a527738e08a6a91faed5e21f"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"30bb740f802c50edb9e8e5b1d372f3d72db7cfc2","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    attach_handle_type \u003d \u0027PCI\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _lifecycle_params(self):"},{"line_number":34,"context_line":"        return dict("},{"line_number":35,"context_line":"            device_profile_name\u003dCONF.cyborg_pci.device_profile_name,"},{"line_number":36,"context_line":"            image_ref\u003dCONF.cyborg.image_ref or CONF.compute.image_ref,"}],"source_content_type":"text/x-python","patch_set":10,"id":"c056943c_0bff30eb","line":33,"range":{"start_line":33,"start_character":4,"end_line":33,"end_character":32},"in_reply_to":"9c854cc1_afbbd16a","updated":"2026-07-28 12:59:51.000000000","message":"that\u0027s a good point, I\u0027ve changed it to a property","commit_id":"22349de37e89d0d0a527738e08a6a91faed5e21f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"04c3e5181334485e3f539772f23fc4af05222bd3","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    attach_handle_type \u003d \u0027PCI\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _lifecycle_params(self):"},{"line_number":34,"context_line":"        return dict("},{"line_number":35,"context_line":"            device_profile_name\u003dCONF.cyborg_pci.device_profile_name,"},{"line_number":36,"context_line":"            image_ref\u003dCONF.cyborg.image_ref or CONF.compute.image_ref,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fe23e1e8_22ad334a","line":33,"range":{"start_line":33,"start_character":4,"end_line":33,"end_character":32},"in_reply_to":"c056943c_0bff30eb","updated":"2026-07-28 14:26:47.000000000","message":"we should proably drop the `_` and condier it public","commit_id":"22349de37e89d0d0a527738e08a6a91faed5e21f"}]}
