)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fedc0dc6_bb24af54","updated":"2025-02-24 17:06:02.000000000","message":"A good start, but there\u0027s some work needed here.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b6f311a6_27d334f2","updated":"2025-02-26 18:51:42.000000000","message":"This is looking better, but I have a few more changes that I think you should make. I also rebased this on top of a fix for the manila job that will also make that job voting. That should ensure our functional test isn\u0027t accidentally merged in a broken state.","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"}],"openstack/shared_file_system/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":1187,"context_line":"            _quota_class_set.QuotaClassSet, quota_class_name, **attrs"},{"line_number":1188,"context_line":"        )"},{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":"    def create_share_transfers(self, transfer, **attrs):"},{"line_number":1191,"context_line":"        \"\"\"Initiates a share transfer from a source project namespace to a"},{"line_number":1192,"context_line":"        destination project namespace."},{"line_number":1193,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"314c2f83_70878483","line":1190,"updated":"2025-02-24 17:06:02.000000000","message":"This is creating a single object yet the function name is pluralized. Shouldn\u0027t this be:\n\n```suggestion\n    def create_share_transfer(self, transfer, **attrs):\n```\n\nAlso, you need documentation for the attributes and the return value.\n\nDitto for the rest of the functions here.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"f674a7ee9d417e53d678cd1bffccbb1c69754d3a","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"            _quota_class_set.QuotaClassSet, quota_class_name, **attrs"},{"line_number":1188,"context_line":"        )"},{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":"    def create_share_transfers(self, transfer, **attrs):"},{"line_number":1191,"context_line":"        \"\"\"Initiates a share transfer from a source project namespace to a"},{"line_number":1192,"context_line":"        destination project namespace."},{"line_number":1193,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3c30a352_6e578ac6","line":1190,"in_reply_to":"314c2f83_70878483","updated":"2025-02-26 02:07:06.000000000","message":"Done","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":1197,"context_line":"        \"\"\"Accept a share transfer in the destination project namespace\"\"\""},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"        base_path \u003d f\"/share-transfer/{transfer_id}/accept\""},{"line_number":1200,"context_line":"        return self._create("},{"line_number":1201,"context_line":"            _share_transfer.ShareTransfer, base_path\u003dbase_path, **attrs"},{"line_number":1202,"context_line":"        )"},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bd664894_42ad0a44","line":1200,"updated":"2025-02-24 17:06:02.000000000","message":"The API ref says this needs an `auth_key` and optionally accepts a `clear_access_rules` boolean. I don\u0027t think you want to implement things this way. Rather, there likely should be an `accept` method on the `ShareTransfer` resource that you\u0027re calling here. Look at how we implement e.g. `Server.reboot` in `openstack/compute/v2/server.py` and call that from `reboot_server` in `openstack/compute/v2/_proxy.py` for inspiration.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"f674a7ee9d417e53d678cd1bffccbb1c69754d3a","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"        \"\"\"Accept a share transfer in the destination project namespace\"\"\""},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"        base_path \u003d f\"/share-transfer/{transfer_id}/accept\""},{"line_number":1200,"context_line":"        return self._create("},{"line_number":1201,"context_line":"            _share_transfer.ShareTransfer, base_path\u003dbase_path, **attrs"},{"line_number":1202,"context_line":"        )"},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"6e00d4f2_f3538ce0","line":1200,"in_reply_to":"bd664894_42ad0a44","updated":"2025-02-26 02:07:06.000000000","message":"Acknowledged","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":1201,"context_line":"            _share_transfer.ShareTransfer, base_path\u003dbase_path, **attrs"},{"line_number":1202,"context_line":"        )"},{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":"    def list_share_transfers(self):"},{"line_number":1205,"context_line":"        \"\"\"List share transfers and details\"\"\""},{"line_number":1206,"context_line":"        return self._list(_share_transfer.ShareTransfer)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"0dac03e4_5c51032e","line":1204,"range":{"start_line":1204,"start_character":8,"end_line":1204,"end_character":28},"updated":"2025-02-24 17:06:02.000000000","message":"We don\u0027t use the `list_` prefix for proxy methods. Also, rather than having a separate `_details` method, we usually provide a `details` boolean parameter (see e.g. `Proxy.stores` in the `openstack/image/v2/_proxy.py` or `Proxy.flavors` in `openstack/compute/v2/_proxy.py`)\n\n```suggestion\n    def share_transfers(self, details\u003dFalse, **query):\n```","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"f674a7ee9d417e53d678cd1bffccbb1c69754d3a","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"            _share_transfer.ShareTransfer, base_path\u003dbase_path, **attrs"},{"line_number":1202,"context_line":"        )"},{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":"    def list_share_transfers(self):"},{"line_number":1205,"context_line":"        \"\"\"List share transfers and details\"\"\""},{"line_number":1206,"context_line":"        return self._list(_share_transfer.ShareTransfer)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"4b31b42c_cf37e26a","line":1204,"range":{"start_line":1204,"start_character":8,"end_line":1204,"end_character":28},"in_reply_to":"0dac03e4_5c51032e","updated":"2025-02-26 02:07:06.000000000","message":"Done","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":1217,"context_line":"        \"\"\"Show share transfer detail\"\"\""},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"        base_path \u003d f\"/share-transfers/detail/{transfer_id}\""},{"line_number":1220,"context_line":"        return self._get(_share_transfer.ShareTransfer, base_path\u003dbase_path)"},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"    def delete_share_transfers(self, transfer_id):"},{"line_number":1223,"context_line":"        \"\"\"Delete a share transfer\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"6166c9fe_30427d43","line":1220,"updated":"2025-02-24 17:06:02.000000000","message":"I think you could implement a `find_share_transfer` method also, since it looks like share transfers can have a `name` field.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"50495b41a0a2c68c52fe3680702a53088b6a78e9","unresolved":true,"context_lines":[{"line_number":1217,"context_line":"        \"\"\"Show share transfer detail\"\"\""},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"        base_path \u003d f\"/share-transfers/detail/{transfer_id}\""},{"line_number":1220,"context_line":"        return self._get(_share_transfer.ShareTransfer, base_path\u003dbase_path)"},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"    def delete_share_transfers(self, transfer_id):"},{"line_number":1223,"context_line":"        \"\"\"Delete a share transfer\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"8aef69d5_c03600a9","line":1220,"in_reply_to":"6166c9fe_30427d43","updated":"2025-02-28 20:31:23.000000000","message":"Created a `find_share_transfer` method, however transfers are not being found via name only id when I was testing it.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"}],"openstack/tests/functional/shared_file_system/test_share_transfers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":20,"context_line":"        share_id \u003d share.id"},{"line_number":21,"context_line":"        self.assertIsNotNone(share_id, \"Share creation failed.\")"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        print(\u0027share:\u0027, share)"},{"line_number":24,"context_line":"        print(\u0027share_id:\u0027, share_id)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Create a share transfer"},{"line_number":27,"context_line":"        share_transfer \u003d ("},{"line_number":28,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfers("}],"source_content_type":"text/x-python","patch_set":6,"id":"a5e21f07_ad9c68d7","line":25,"range":{"start_line":23,"start_character":4,"end_line":25,"end_character":1},"updated":"2025-02-24 17:06:02.000000000","message":"You don\u0027t want prints in functional tests","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"f674a7ee9d417e53d678cd1bffccbb1c69754d3a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        share_id \u003d share.id"},{"line_number":21,"context_line":"        self.assertIsNotNone(share_id, \"Share creation failed.\")"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        print(\u0027share:\u0027, share)"},{"line_number":24,"context_line":"        print(\u0027share_id:\u0027, share_id)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Create a share transfer"},{"line_number":27,"context_line":"        share_transfer \u003d ("},{"line_number":28,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfers("}],"source_content_type":"text/x-python","patch_set":6,"id":"df478153_65e9cac1","line":25,"range":{"start_line":23,"start_character":4,"end_line":25,"end_character":1},"in_reply_to":"a5e21f07_ad9c68d7","updated":"2025-02-26 02:07:06.000000000","message":"Done","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":26,"context_line":"        # Create a share transfer"},{"line_number":27,"context_line":"        share_transfer \u003d ("},{"line_number":28,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfers("},{"line_number":29,"context_line":"                share_id\u003dshare_id,"},{"line_number":30,"context_line":"                name\u003d\u0027transfer_name\u0027,"},{"line_number":31,"context_line":"                destination_project_id\u003d\u0027destination_project_id\u0027,"},{"line_number":32,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"54854fb2_6b75bc02","line":29,"updated":"2025-02-24 17:06:02.000000000","message":"I don\u0027t understand how this is working. Is it working? There is no `share_id` field in the `ShareTransfer` resource, so what\u0027s populating this?\n\n*Later:* That\u0027s because it\u0027s not working but the job is non-voting.\n\nhttps://zuul.opendev.org/t/openstack/build/e471a3a9302d402cb7a300be5ad07b8a","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"f674a7ee9d417e53d678cd1bffccbb1c69754d3a","unresolved":true,"context_lines":[{"line_number":26,"context_line":"        # Create a share transfer"},{"line_number":27,"context_line":"        share_transfer \u003d ("},{"line_number":28,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfers("},{"line_number":29,"context_line":"                share_id\u003dshare_id,"},{"line_number":30,"context_line":"                name\u003d\u0027transfer_name\u0027,"},{"line_number":31,"context_line":"                destination_project_id\u003d\u0027destination_project_id\u0027,"},{"line_number":32,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"d00bf71d_d59614a8","line":29,"in_reply_to":"54854fb2_6b75bc02","updated":"2025-02-26 02:07:06.000000000","message":"This was a mistake from initial implementation that I hadn\u0027t that I thought I had updated. This wouldn\u0027t have worked at all but should be fixed now.","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        # Create a share transfer"},{"line_number":27,"context_line":"        share_transfer \u003d ("},{"line_number":28,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfers("},{"line_number":29,"context_line":"                share_id\u003dshare_id,"},{"line_number":30,"context_line":"                name\u003d\u0027transfer_name\u0027,"},{"line_number":31,"context_line":"                destination_project_id\u003d\u0027destination_project_id\u0027,"},{"line_number":32,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"c1a5274f_7b16a8ff","line":29,"in_reply_to":"d00bf71d_d59614a8","updated":"2025-02-26 18:51:42.000000000","message":"Acknowledged","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        self.assertTrue(accepted_transfer.accepted)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # cleanup"},{"line_number":68,"context_line":"        self.assertEqual(share_transfer.id, share_transfer_details.id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        if share_transfer:"},{"line_number":71,"context_line":"            self.operator_cloud.shared_file_system.delete_share_transfers("}],"source_content_type":"text/x-python","patch_set":6,"id":"b8837af4_378f99db","line":68,"updated":"2025-02-24 17:06:02.000000000","message":"This feels like it belongs on line 57 under the call to `get_share_transfer`","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":67,"context_line":"        # cleanup"},{"line_number":68,"context_line":"        self.assertEqual(share_transfer.id, share_transfer_details.id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        if share_transfer:"},{"line_number":71,"context_line":"            self.operator_cloud.shared_file_system.delete_share_transfers("},{"line_number":72,"context_line":"                share_transfer.id"},{"line_number":73,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f8cfff6_b193b96a","line":70,"updated":"2025-02-24 17:06:02.000000000","message":"This will always be true?","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0138bf73667e1264a0fca55f87c407e95a801f42","unresolved":true,"context_lines":[{"line_number":71,"context_line":"            self.operator_cloud.shared_file_system.delete_share_transfers("},{"line_number":72,"context_line":"                share_transfer.id"},{"line_number":73,"context_line":"            )"},{"line_number":74,"context_line":"        if share:"},{"line_number":75,"context_line":"            self.delete_share(share)"}],"source_content_type":"text/x-python","patch_set":6,"id":"e09fb14a_75a7293b","line":74,"updated":"2025-02-24 17:06:02.000000000","message":"As will this?","commit_id":"df8828f6c8505c39944aa9da7d0c40beaf36c700"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":23,"context_line":"            share_type\u003d\"dhss_false\","},{"line_number":24,"context_line":"            share_protocol\u003d\u0027NFS\u0027,"},{"line_number":25,"context_line":"            description\u003dNone,"},{"line_number":26,"context_line":"        )"},{"line_number":27,"context_line":"        self.SHARE_ID \u003d share.id"},{"line_number":28,"context_line":"        self.user_cloud.shared_file_system.wait_for_status("},{"line_number":29,"context_line":"            share,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ce3f2fc9_2b599854","line":26,"updated":"2025-02-26 18:51:42.000000000","message":"Can you use `addCleanup` to ensure this is *always* deleted even when of our assertions below fails?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            share_type\u003d\"dhss_false\","},{"line_number":24,"context_line":"            share_protocol\u003d\u0027NFS\u0027,"},{"line_number":25,"context_line":"            description\u003dNone,"},{"line_number":26,"context_line":"        )"},{"line_number":27,"context_line":"        self.SHARE_ID \u003d share.id"},{"line_number":28,"context_line":"        self.user_cloud.shared_file_system.wait_for_status("},{"line_number":29,"context_line":"            share,"}],"source_content_type":"text/x-python","patch_set":8,"id":"cf8c79e1_da515ee6","line":26,"in_reply_to":"ce3f2fc9_2b599854","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        new_transfer \u003d ("},{"line_number":44,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":45,"context_line":"                **share_transfer_object"},{"line_number":46,"context_line":"            )"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        self.share_transfer_id \u003d new_transfer.id"}],"source_content_type":"text/x-python","patch_set":8,"id":"50fe4bb3_2e2d1c34","line":45,"updated":"2025-02-26 18:51:42.000000000","message":"Could you just inline these arguments?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        new_transfer \u003d ("},{"line_number":44,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":45,"context_line":"                **share_transfer_object"},{"line_number":46,"context_line":"            )"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        self.share_transfer_id \u003d new_transfer.id"}],"source_content_type":"text/x-python","patch_set":8,"id":"f524827a_43b0aafc","line":45,"in_reply_to":"50fe4bb3_2e2d1c34","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":44,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":45,"context_line":"                **share_transfer_object"},{"line_number":46,"context_line":"            )"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        self.share_transfer_id \u003d new_transfer.id"},{"line_number":49,"context_line":"        auth_key \u003d new_transfer.auth_key"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"0edb1f99_34637970","line":47,"updated":"2025-02-26 18:51:42.000000000","message":"As above You should use `addCleanup` to ensure that, no matter what happens, we will clean this up. You can look at [1] for guidance.\n\n[1] https://github.com/openstack/openstacksdk/blob/6438e3b653a64a790f4ec9b30c9ebd0e63ae6055/openstack/tests/functional/identity/v3/test_projects.py#L36","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":45,"context_line":"                **share_transfer_object"},{"line_number":46,"context_line":"            )"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        self.share_transfer_id \u003d new_transfer.id"},{"line_number":49,"context_line":"        auth_key \u003d new_transfer.auth_key"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f3e80da2_771ffda4","line":47,"in_reply_to":"0edb1f99_34637970","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(self.share_transfer_id, share_transfer_details.id)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # List share transfers"},{"line_number":65,"context_line":"        share_transfers \u003d ("},{"line_number":66,"context_line":"            self.operator_cloud.shared_file_system.share_transfers()"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        transfers_list \u003d list(share_transfers)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Ensure list has at least one transfer"},{"line_number":71,"context_line":"        self.assertGreaterEqual(len(transfers_list), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7d9d2dfc_68429956","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":46},"updated":"2025-02-26 18:51:42.000000000","message":"```suggestion\n        share_transfers \u003d list(\n            self.operator_cloud.shared_file_system.share_transfers()\n        )\n```\n\nAlso, as I note below, we should assert more things about this than the length of the list","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(self.share_transfer_id, share_transfer_details.id)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # List share transfers"},{"line_number":65,"context_line":"        share_transfers \u003d ("},{"line_number":66,"context_line":"            self.operator_cloud.shared_file_system.share_transfers()"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        transfers_list \u003d list(share_transfers)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Ensure list has at least one transfer"},{"line_number":71,"context_line":"        self.assertGreaterEqual(len(transfers_list), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"029281fe_11dcfb80","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":46},"in_reply_to":"7d9d2dfc_68429956","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":74,"context_line":"            self.operator_cloud.shared_file_system.share_transfers("},{"line_number":75,"context_line":"                details\u003dTrue"},{"line_number":76,"context_line":"            )"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        list(share_transfers_details)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        accepted_transfer \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"b75c0250_d550633b","line":77,"updated":"2025-02-26 18:51:42.000000000","message":"You don\u0027t do anything with this. You should probably assert the type and at least one attribute of the return. For example, we could check that the ID of the created share transfer is in the list + another field that will only be returned in the detail view.\n\nhttps://github.com/openstack/openstacksdk/blob/6438e3b653a64a790f4ec9b30c9ebd0e63ae6055/openstack/tests/functional/identity/v3/test_projects.py#L60-L64 might be helpful for inspiration.","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":75,"context_line":"                details\u003dTrue"},{"line_number":76,"context_line":"            )"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        list(share_transfers_details)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        accepted_transfer \u003d ("},{"line_number":81,"context_line":"            self.operator_cloud.shared_file_system.accept_share_transfer("}],"source_content_type":"text/x-python","patch_set":8,"id":"3f90c724_519ef958","line":78,"updated":"2025-02-26 18:51:42.000000000","message":"leftover?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":82,"context_line":"                transfer_id\u003dself.share_transfer_id, auth_key\u003dauth_key"},{"line_number":83,"context_line":"            )"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.assertIsNotNone(accepted_transfer)"},{"line_number":86,"context_line":"        self.assertEqual(self.share_transfer_id, accepted_transfer.id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        share_transfer_object \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"0eac64ed_2f2029e8","line":85,"updated":"2025-02-26 18:51:42.000000000","message":"Can you assert the type also?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                transfer_id\u003dself.share_transfer_id, auth_key\u003dauth_key"},{"line_number":83,"context_line":"            )"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        self.assertIsNotNone(accepted_transfer)"},{"line_number":86,"context_line":"        self.assertEqual(self.share_transfer_id, accepted_transfer.id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        share_transfer_object \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"a670a0ea_85d2c138","line":85,"in_reply_to":"0eac64ed_2f2029e8","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        new_transfer \u003d ("},{"line_number":96,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":97,"context_line":"                **share_transfer_object"},{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e807a2e1_5fcc6a03","line":97,"updated":"2025-02-26 18:51:42.000000000","message":"Can you just inline these arguments?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        new_transfer \u003d ("},{"line_number":96,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":97,"context_line":"                **share_transfer_object"},{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"39ccde63_b094c89d","line":97,"in_reply_to":"e807a2e1_5fcc6a03","updated":"2025-02-28 20:25:29.000000000","message":"Done","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"280362d2e197110bc1ea855183fa9c218414bb29","unresolved":true,"context_lines":[{"line_number":92,"context_line":"            \"name\": self.SHARE_TRANSFER_NAME,"},{"line_number":93,"context_line":"        }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        new_transfer \u003d ("},{"line_number":96,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":97,"context_line":"                **share_transfer_object"},{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        self.share_transfer_id \u003d new_transfer.id"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # Delete share transfer"},{"line_number":104,"context_line":"        self.operator_cloud.shared_file_system.delete_share_transfers("},{"line_number":105,"context_line":"            id\u003dself.share_transfer_id,"},{"line_number":106,"context_line":"        )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # cleanup"},{"line_number":109,"context_line":"        # delete share"}],"source_content_type":"text/x-python","patch_set":8,"id":"348283ca_93c1dc4d","line":106,"range":{"start_line":95,"start_character":0,"end_line":106,"end_character":9},"updated":"2025-02-26 18:51:42.000000000","message":"What\u0027s going on here? You already created a share transfer. Why are we creating a new one?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"21e2c781c42d64a6737488fcf2159bc73166edc8","unresolved":true,"context_lines":[{"line_number":92,"context_line":"            \"name\": self.SHARE_TRANSFER_NAME,"},{"line_number":93,"context_line":"        }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        new_transfer \u003d ("},{"line_number":96,"context_line":"            self.operator_cloud.shared_file_system.create_share_transfer("},{"line_number":97,"context_line":"                **share_transfer_object"},{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        self.share_transfer_id \u003d new_transfer.id"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # Delete share transfer"},{"line_number":104,"context_line":"        self.operator_cloud.shared_file_system.delete_share_transfers("},{"line_number":105,"context_line":"            id\u003dself.share_transfer_id,"},{"line_number":106,"context_line":"        )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # cleanup"},{"line_number":109,"context_line":"        # delete share"}],"source_content_type":"text/x-python","patch_set":8,"id":"659087b4_30aeff47","line":106,"range":{"start_line":95,"start_character":0,"end_line":106,"end_character":9},"in_reply_to":"348283ca_93c1dc4d","updated":"2025-02-28 20:25:29.000000000","message":"I might not be fully understanding the share transfer. From running the tests a few times. I noticed that once a share transfer is accepted it is no longer listed as a transfer at least not in the OpenStack/manilla cli. \n\nSo, creating a new transfer is so I can test the delete method. What assertion do you recommend for a the delete test?","commit_id":"0e13ddc700b34c7976ac440d387189c7252dd33c"},{"author":{"_account_id":36772,"name":"Manuel Osorio","display_name":"Manuel Osorio","email":"themanuelosorio@gmail.com","username":"manuelosorio"},"change_message_id":"50495b41a0a2c68c52fe3680702a53088b6a78e9","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        self.assertIsInstance(share_transfer, _share_transfer.ShareTransfer)"},{"line_number":81,"context_line":"        self.assertEqual(self.share_transfer_id, share_transfer.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # List share transfers"},{"line_number":84,"context_line":"        transfers_list \u003d list("},{"line_number":85,"context_line":"            self.operator_cloud.shared_file_system.share_transfers()"},{"line_number":86,"context_line":"        )"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Ensure list has at least one transfer"},{"line_number":89,"context_line":"        self.assertGreater(len(transfers_list), 0)"},{"line_number":90,"context_line":"        self.assertIsInstance(transfers_list[0], _share_transfer.ShareTransfer)"},{"line_number":91,"context_line":"        # self.assertIn("},{"line_number":92,"context_line":"        #     self.share_transfer_id,"},{"line_number":93,"context_line":"        #     [transfer.id for transfer in transfers_list]"},{"line_number":94,"context_line":"        # )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        transfers_details_list \u003d list("},{"line_number":97,"context_line":"            self.operator_cloud.shared_file_system.share_transfers("},{"line_number":98,"context_line":"                details\u003dTrue"},{"line_number":99,"context_line":"            )"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        self.assertGreaterEqual(len(transfers_details_list), 0)"},{"line_number":102,"context_line":"        self.assertIsInstance("},{"line_number":103,"context_line":"            transfers_details_list[0], _share_transfer.ShareTransfer"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        # self.assertIn("},{"line_number":106,"context_line":"        #     self.share_transfer_id,"},{"line_number":107,"context_line":"        #     [transfer.id for transfer in transfers_details_list]"},{"line_number":108,"context_line":"        # )"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        accepted_transfer \u003d ("},{"line_number":111,"context_line":"            self.operator_cloud.shared_file_system.accept_share_transfer("}],"source_content_type":"text/x-python","patch_set":9,"id":"bb50d267_d6c8177a","line":108,"range":{"start_line":83,"start_character":7,"end_line":108,"end_character":11},"updated":"2025-02-28 20:31:23.000000000","message":"The lists are returning a ShareTransfer instance. For some reason id, name, and other properties are returning as none.","commit_id":"60d84ea5fc28e7705ef24bbd7da634a1aa267986"}]}
