)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"15f7309f4083c8c6c028322c2f3d874f2eeaf48c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b60ef84c_64dfaa95","updated":"2024-09-03 13:12:51.000000000","message":"We used client-side pagination because at the time there was no support for server-side pagination, if I remember correctly. The correct solution for this is to switch to server-side pagination for this.\n\nI think it\u0027s expect for Horizon to be slow when there are thousands of records to show. On the other hand, not showing some records would be a bug, so I don\u0027t think this is the right solution here.\n\nDoesn\u0027t swift have quotas for the number of containers that can be created by a user?","commit_id":"491d9ad4c2b919d845d3bc581dbb415239ea1e00"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"c60dd39d617e579b4171fd27d7a03692b3bb8f5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d2017442_338d50ec","in_reply_to":"21d7e44f_7ec7d08c","updated":"2024-09-10 12:35:27.000000000","message":"Pushing this upstream to start the discussion as we\u0027ve had to carry this minimal change downstream I\u0027d like to address it upstream.","commit_id":"491d9ad4c2b919d845d3bc581dbb415239ea1e00"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"e0d5de8216d90496b3d0c310121d864ed81866e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"21d7e44f_7ec7d08c","in_reply_to":"b60ef84c_64dfaa95","updated":"2024-09-10 12:34:49.000000000","message":"I agree that using server-side pagination is the correct solution here, I linked by attempt at starting to introduce that but then realised the entire Swift code in Horizon was Angular code with client-side pagination which I\u0027m unfortunately not knowledgeable enough to tackle myself.\n\nThe Swift panel is also quite unique in how it looks so I couldn\u0027t really copy any other tables used to replace it, so there is probably more work there as well.\n\nHorizon being slow is to be expected, but it\u0027s also a Denial of Service risk here on purpose or not. We\u0027ve some end-users with super large containers and when they accidentally (or on purpose) clicks on that container Horizon dies both because it\u0027s hanging but also due to memory trying to index all those objects messing with httpd hosting Horizon through WSGI.\n\nQuota is irrelevant here as it\u0027s a valid use-case to have a lot of objects in containers.","commit_id":"491d9ad4c2b919d845d3bc581dbb415239ea1e00"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"656f0a411580c1d8c6bbd741d70aaddb77c1e8e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"65dff003_a380998a","updated":"2025-08-18 23:38:37.000000000","message":"@matt@oliver.net.au Matthew, hello, sorry, what do your think about? Maybe you\u0027ve already considered this?","commit_id":"4bc80afc50e4b40c06f1a65b174666045913e199"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d8ef9d56c03270cadfd7d7c5199f5ef78abb000b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"82ca1a98_83eb4b64","updated":"2025-09-08 16:40:05.000000000","message":"@t.v.ovtchinnikova@gmail.com hello, please review this MR.","commit_id":"4bc80afc50e4b40c06f1a65b174666045913e199"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"8ba602de6f64440726ded02fc61349f7767dea87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"de91ea10_66a5841f","updated":"2025-08-03 17:30:12.000000000","message":"@tburke@nvidia.com Tim hello, sorry, what do your think about? Maybe you\u0027ve already considered this?","commit_id":"4bc80afc50e4b40c06f1a65b174666045913e199"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7610810861faa7918711baf68043856b41e064a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cda8ce53_e222026a","updated":"2025-09-08 16:20:28.000000000","message":"So I\u0027ll warn that I\u0027ve never tried running Horizon myself, but this seems reasonable on the face of it, since both functions take `marker` and `limit` parameters (which are Swift\u0027s normal means of enabling pagination). I have no idea how this will impact the end-user experience, though.","commit_id":"4bc80afc50e4b40c06f1a65b174666045913e199"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"fba121ca2e9c5b4c3c167549c0529cc93947c4cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"dd96023a_f79b37e8","updated":"2025-08-03 20:25:30.000000000","message":"recheck","commit_id":"4bc80afc50e4b40c06f1a65b174666045913e199"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"9f7de7a26ca75847d91ee0be0f636a32621604dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"100b9924_eca00303","updated":"2025-09-15 09:12:39.000000000","message":"@jjasek@redhat.com hello, please review it, we talk about.","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"da76a815997bc35fb2c228d1ff5821d15bf02293","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8b804935_830059af","updated":"2025-09-15 07:28:35.000000000","message":"I added a release note to this patch, to make notify operators/end-users of the behaviour change.","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"76aeea2d538ffa18e0fecda80bcd35773fee40ae","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"292b1d38_2488cd7b","in_reply_to":"0144ca47_5fe52c3f","updated":"2025-10-02 09:47:37.000000000","message":"I\u0027ve proposed changes here that makes it a configurable behaviour until we\u0027ve migrated to proper pagination in the future, hopefully that an acceptable workaround to support both use-cases and keeping the current default behaviour.\n\nWhat do you think?","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d2f87f77e2a5199863f861860f81bf1f5cbdc0f7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d652da77_b1709729","in_reply_to":"06d99936_aebcee53","updated":"2025-09-15 10:22:58.000000000","message":"@jjasek@redhat.com\n\nThis is exactly what I was talking about at our meeting, of course this is not a complete solution, and @tobias.urdin@binero.com himself says so. But it solves part of the problems that have existed for several years.\n\nConsidering that it will also take time to resolve the issues with removing Angular, I believe that we can apply this fix, Tim also confirmed this.\n\n@openstack@dopieralski.pl hello Radomir, what do you think about?","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"baaf36e639e44ffb7364c5a30ab618958e419e7d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"06d99936_aebcee53","in_reply_to":"100b9924_eca00303","updated":"2025-09-15 10:18:16.000000000","message":"Hi @lazekteam@gmail.com, I can see that @openstack@dopieralski.pl commented on this patch at the very beginning with quite significant points.\nAnd I can not see any relevant arguments against his points. I mean relevant - other than implementing pagination is a lot of work and significantly more complicated than setting full_listing to False and cutting the number of objects to 1000 by default.\nSo I would definitely like to see Radomir’s current stand here after all the comments.\n\nMy personal opinion is that it is not a good approach to limit it by default and say to customers that if they want to display all the data they need to set something somewhere. From my point of view the much more reasonable way would be to show everything and make it possible to change something somewhere to set the limit (when they are aware they will not see all the objects and they really want it).\n\nOr of course, use correct implementation pagination is probably the best way. Remove Angular completely from Horizon is planned for the next cycle if I am right. So maybe there is another good point/reason to do it the correct way here?","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"14df9f9c59a827f5939ffa6231933a737de92efe","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"454a07e7_a3434c1a","in_reply_to":"292b1d38_2488cd7b","updated":"2025-10-07 16:16:50.000000000","message":"Hello @tobias.urdin@binero.com, I finally had time to take a look at it. It seems like a acceptable workaround for me but I am missing the visual warning that we talked about as a condition. When it is set to show a different (limited) number of containers then I would like to see there some warning like “Listed only {API_RESULT_LIMIT} containers/objects because of xyz settings” or something like that, that warns me that those containers that I can see there are not all.","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"30615aab1593106f7cb29067a5dc21b391c36a4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"866fb8c4_d72fcd9b","in_reply_to":"454a07e7_a3434c1a","updated":"2025-10-08 12:31:05.000000000","message":"Added changes to template as per above, here is how it look https://imgur.com/LvM8hqO","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"55e25e2e73128d6007b33db9c8465997b610f5f9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b4e405bd_d291c87a","in_reply_to":"65f967bb_9879b0cb","updated":"2025-09-16 07:42:50.000000000","message":"Two more ideas:\n\n- We could hide this behaviour (not do full listing) behind a configuration option in Horizon\n- We could add a footer to the containers page \"Only listing a maximum of {API_RESULT_LIMIT} containers or objects in container\".\n\nAny of those work? Or both of them? Or both combined (only show when config opt is true etc)","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"87ebad68710bc65802650b9444cb83229266141f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"65f967bb_9879b0cb","in_reply_to":"a00e3994_2ee324ae","updated":"2025-09-15 10:46:10.000000000","message":"Yes, this right question.","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"3606289b880bd3bea05de896890945baeceb610b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0144ca47_5fe52c3f","in_reply_to":"b4e405bd_d291c87a","updated":"2025-09-23 12:55:15.000000000","message":"Hi @tobias.urdin@binero.com,\nMy ultimate point here is to keep the default behavior (from the customer perspective) the same as it is now. To not affect the majority of the customers (who are not affected by this issue you mentioned) by this change. And if we are not able (for whatever reasons) to fix it the correct way right now, then a workaround should be implemented as a possibility, not default behavior.\n\nIf I understand your previous comment correctly - Everything will works the same how it works now (by default) and there will be implemented possibility to do “not full listing” through the Horizon configuration and in this case there will be also show in UI some warning that not all objects/containers are shown because of this setting, then it seems like a legit workaround for me.\nAnd of course, it would be good to have somewhere pointed out (maybe at PTG) that after angular will be removed, it should be done the correct way - pagination.\n\nThat is my point of view. Let\u0027s wait for the other core members\u0027 opinion (or you can raise this topic up at Wednesday\u0027s upstream meeting).","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"13576b1b95a239ab6fbbe903eeaa0e2efba39702","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a00e3994_2ee324ae","in_reply_to":"d652da77_b1709729","updated":"2025-09-15 10:44:35.000000000","message":"I understand the point that it is a temporary/not complete solution. But I am a little worried that instead of a few customers complaining about a problem that has been here for several years as you said (And can probably be fixed correctly in the next cycle when we will remove Angular).\nIt can start that a lot of other customers that did not have a problem with current implementation will start reporting bugs and asking what is wrong and how to fix it when it will start to cut the number of results for them.\n\nIf others are okay with that I am fine with that too. But I would like to see complete agreement from all. Ideally with specified next steps how to get it rid off as soon as possible.","commit_id":"8e0a49c3742fe1cfec01ec361f7b431300c5dd3e"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"10773112140f0904338a5c145f52161f199449cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4061d10b_6a1788d1","updated":"2025-10-09 19:49:32.000000000","message":"Hello @tobias.urdin@binero.com, thank you for all the changes. It looks like an acceptable workaround for me. Thank you.","commit_id":"ceb677d489640fdaf70b4eb171d937ea77c28662"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"b44a0a5c3cb4ac54f23e76ff6c8957674625a6aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d03fef93_1fe424a1","updated":"2025-12-02 14:23:11.000000000","message":"Thanks, LGTM. I hope somebody tested it in a actual env.(which I don\u0027t have) before approving it.","commit_id":"ceb677d489640fdaf70b4eb171d937ea77c28662"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"94c181c39a69c35b0cec8dce0dae1c60f22244e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"14028c66_ff94c3aa","in_reply_to":"d03fef93_1fe424a1","updated":"2025-12-02 14:46:57.000000000","message":"Hello @manchandavishal143@gmail.com, I did :-)","commit_id":"ceb677d489640fdaf70b4eb171d937ea77c28662"}],"doc/source/configuration/settings.rst":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"698bc31a07fa19ae94510fd7617823829245ce09","unresolved":true,"context_lines":[{"line_number":2578,"context_line":"SWIFT_PANEL_FULL_LISTING"},{"line_number":2579,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":2580,"context_line":""},{"line_number":2581,"context_line":".. versionadded:: Gazpacho"},{"line_number":2582,"context_line":""},{"line_number":2583,"context_line":"Perform full listing of containers and objects in the Swift panel."},{"line_number":2584,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"a5d01d02_0a8ac309","line":2581,"updated":"2025-10-08 12:42:24.000000000","message":"```suggestion\n.. versionadded:: 2026.1(Gazpacho)\n```","commit_id":"aa208f3cc17d1a0e537d08f4cc865afc4c119882"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"096d42394a0743c24ce69f2e92294f420b150ad7","unresolved":false,"context_lines":[{"line_number":2578,"context_line":"SWIFT_PANEL_FULL_LISTING"},{"line_number":2579,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":2580,"context_line":""},{"line_number":2581,"context_line":".. versionadded:: Gazpacho"},{"line_number":2582,"context_line":""},{"line_number":2583,"context_line":"Perform full listing of containers and objects in the Swift panel."},{"line_number":2584,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"2fe9f0bc_3ebfe503","line":2581,"in_reply_to":"a5d01d02_0a8ac309","updated":"2025-10-09 13:05:18.000000000","message":"I will fix this","commit_id":"aa208f3cc17d1a0e537d08f4cc865afc4c119882"}],"openstack_dashboard/dashboards/project/containers/templates/containers/ngindex.html":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"94a2510d944b5194108e8ed80e7e6d42921e9886","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"{% block main %}"},{"line_number":22,"context_line":"  \u003cng-include src\u003d\"\u0027{{ STATIC_URL }}dashboard/project/containers/containers.html\u0027\"\u003e\u003c/ng-include\u003e"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  {% if SWIFT_PANEL_FULL_LISTING is False %}"},{"line_number":25,"context_line":"  \u003cdiv\u003e{% blocktrans %}Listing only {{ API_RESULT_LIMIT }} containers/objects because full listing is disabled in settings.{% endblocktrans %}\u003c/div\u003e"},{"line_number":26,"context_line":"  {% endif %}"}],"source_content_type":"text/html","patch_set":9,"id":"6c3d631b_33483941","line":23,"updated":"2025-10-08 12:44:01.000000000","message":"@tobias.urdin@binero.com\n\nHello, may be show this only for admins? User cannot change it.","commit_id":"aa208f3cc17d1a0e537d08f4cc865afc4c119882"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"096d42394a0743c24ce69f2e92294f420b150ad7","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"{% block main %}"},{"line_number":22,"context_line":"  \u003cng-include src\u003d\"\u0027{{ STATIC_URL }}dashboard/project/containers/containers.html\u0027\"\u003e\u003c/ng-include\u003e"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  {% if SWIFT_PANEL_FULL_LISTING is False %}"},{"line_number":25,"context_line":"  \u003cdiv\u003e{% blocktrans %}Listing only {{ API_RESULT_LIMIT }} containers/objects because full listing is disabled in settings.{% endblocktrans %}\u003c/div\u003e"},{"line_number":26,"context_line":"  {% endif %}"}],"source_content_type":"text/html","patch_set":9,"id":"52eec701_6e18d3db","line":23,"in_reply_to":"6c3d631b_33483941","updated":"2025-10-09 13:05:18.000000000","message":"The intent here is for the end users to be informed about it, so must be visible to all users.","commit_id":"aa208f3cc17d1a0e537d08f4cc865afc4c119882"}]}
