)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"2a11bbfffff35f69eff69415e608571ed65958e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5961d593_c6402522","updated":"2025-08-15 00:05:27.000000000","message":"@matthewnorthcott@catalystcloud.nz Hello, update localization files not need, translation team do it via Zanata.","commit_id":"7bba23a96687eaca10376b171f4d901731225da2"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"572c15d14385ddbd4f4c9fd95bcb016b97349b62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"56551e96_dd775330","in_reply_to":"5961d593_c6402522","updated":"2025-08-21 04:03:47.000000000","message":"Thanks Ivan. I\u0027ve removed these now.","commit_id":"7bba23a96687eaca10376b171f4d901731225da2"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4c2fe61_ee4eae8f","updated":"2025-08-29 02:39:21.000000000","message":"Note: This change also requires `python-magnumclient` version requirement bump, which can be done after https://review.opendev.org/c/openstack/python-magnumclient/+/956848 is merged and released.","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e1c78ed_65119397","in_reply_to":"61b2054d_97d26382","updated":"2025-09-02 00:59:44.000000000","message":"Done","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"180a17411e0565b7089f8e64ccbb0b42248e10a7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"61b2054d_97d26382","in_reply_to":"b4c2fe61_ee4eae8f","updated":"2025-09-01 00:24:25.000000000","message":"`python-magnumclient` is now merged, and the requirement is expected to be released in version `4.9.0`: https://review.opendev.org/c/openstack/releases/+/958410","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"7f0e5e183e9cbfe5332acff34ef3f0ed9e6364f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"68641343_2260317c","updated":"2025-09-03 01:09:13.000000000","message":"Looking good. Thanks for the confirmation popup changes.\n\nThere is a display issue where Magnum returns a \"not supported by driver\" error and Horizon will display both a green \"Accepted\" and a red \"Failed\" toast popup.\n\nI\u0027m +2\u0027ing as this is a display bug we can fix later, but if resolved before this merges then please update this changeset.","commit_id":"5738aedf540eccadca20f47c924748380c122330"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"dd77c3206699c63c9be962d85524b86939eade14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3fa65250_4908677f","updated":"2025-09-02 22:03:53.000000000","message":"recheck","commit_id":"5738aedf540eccadca20f47c924748380c122330"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"2f8c7f39fa9cc84e619746bd48420c5f1cc0e3e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c5acf8ed_6cf31307","in_reply_to":"68641343_2260317c","updated":"2025-09-03 01:36:45.000000000","message":"Thanks for bringing the display issue to attention. This was due to an earlier `Promise.catch` in `magnum.service.js` which bypasses the error handling in the new credential service. Unfortunately, the automated unit tests for `magnum.service.js` require the error to be handled there. I\u0027ve implemented a workaround by simply checking if a response is passed to `onSuccess` (now renamed to `handleResponse` in light of this discovery) which seems to fix the multiple conflicting toast popups.","commit_id":"5738aedf540eccadca20f47c924748380c122330"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d2c9f7042baccb02f28d8c163dca84be94cc7e0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"76361f43_9854db5d","updated":"2025-09-03 02:29:05.000000000","message":"LGTM, toast popups now look good.","commit_id":"9744bb2cfe321b341186dfaf18e12f5cd13a8cb0"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"28ca41cf365d08fd2e18f5d17daf5b1a2a3f516e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b979ef01_a0374c6a","updated":"2025-09-03 08:05:31.000000000","message":"Not going to block merging on this - but anyone has an idea why Site preview in https://zuul.opendev.org/t/openstack/build/2257d37cd63b4128bb71a63249d07905/artifacts is not working?","commit_id":"9744bb2cfe321b341186dfaf18e12f5cd13a8cb0"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"6848dc48c45475be666431ab5f3deda76aee796f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6c456960_2ab65279","in_reply_to":"b979ef01_a0374c6a","updated":"2025-09-03 21:21:56.000000000","message":"I see a few recent jobs for `heat-dashboard` and `ironic-ui` also have this artifact empty.","commit_id":"9744bb2cfe321b341186dfaf18e12f5cd13a8cb0"}],"magnum_ui/api/magnum.py":[{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[{"line_number":35,"context_line":"CERTIFICATE_CREATE_ATTRS \u003d certificates.CREATION_ATTRIBUTES"},{"line_number":36,"context_line":"QUOTA_CREATION_ATTRIBUTES \u003d quotas.CREATION_ATTRIBUTES"},{"line_number":37,"context_line":"CLUSTER_UPDATE_ALLOWED_PROPERTIES \u003d set([\u0027/node_count\u0027])"},{"line_number":38,"context_line":"DEFAULT_API_VERSION \u003d \u00271.10\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def _cleanup_params(attrs, create, **params):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d6d9bda6_05e53adb","line":38,"updated":"2025-08-29 02:39:21.000000000","message":"We should change this default api version to `1.12` to match the api version that supports credential rotation.\n\nOtherwise, we get a response of:\n```\nHTTP/1.0 406 Not Acceptable\n\n{\"errors\": [{\"request_id\": \"\", \"code\": \"\", \"status\": 406, \"title\": \"Not Acceptable\", \"detail\": \"Version 1.10 was requested but the requested API patch is not supported for this version.\", \"links\": []}]}\n```","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CERTIFICATE_CREATE_ATTRS \u003d certificates.CREATION_ATTRIBUTES"},{"line_number":36,"context_line":"QUOTA_CREATION_ATTRIBUTES \u003d quotas.CREATION_ATTRIBUTES"},{"line_number":37,"context_line":"CLUSTER_UPDATE_ALLOWED_PROPERTIES \u003d set([\u0027/node_count\u0027])"},{"line_number":38,"context_line":"DEFAULT_API_VERSION \u003d \u00271.10\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def _cleanup_params(attrs, create, **params):"}],"source_content_type":"text/x-python","patch_set":3,"id":"75315bbb_a457262c","line":38,"in_reply_to":"d6d9bda6_05e53adb","updated":"2025-09-02 00:59:44.000000000","message":"Done","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"}],"magnum_ui/static/dashboard/container-infra/clusters/actions.module.js":[{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[{"line_number":126,"context_line":"        id: \u0027rotateCredentialAction\u0027,"},{"line_number":127,"context_line":"        service: rotateCredentialService,"},{"line_number":128,"context_line":"        template: {"},{"line_number":129,"context_line":"          text: gettext(\u0027Rotate Credential\u0027)"},{"line_number":130,"context_line":"        }"},{"line_number":131,"context_line":"      })"},{"line_number":132,"context_line":"      .append({"}],"source_content_type":"text/javascript","patch_set":3,"id":"3997d03f_52e34907","line":129,"updated":"2025-08-29 02:39:21.000000000","message":"Suggestion: `Rotate Cluster Credentials`","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        id: \u0027rotateCredentialAction\u0027,"},{"line_number":127,"context_line":"        service: rotateCredentialService,"},{"line_number":128,"context_line":"        template: {"},{"line_number":129,"context_line":"          text: gettext(\u0027Rotate Credential\u0027)"},{"line_number":130,"context_line":"        }"},{"line_number":131,"context_line":"      })"},{"line_number":132,"context_line":"      .append({"}],"source_content_type":"text/javascript","patch_set":3,"id":"7177e742_c9d1da7a","line":129,"in_reply_to":"3997d03f_52e34907","updated":"2025-09-02 00:59:44.000000000","message":"Done","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"}],"magnum_ui/static/dashboard/container-infra/clusters/rotate-credential/rotate-credential.service.js":[{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[{"line_number":40,"context_line":"  ) {"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    var message \u003d {"},{"line_number":43,"context_line":"      success: gettext(\u0027Credential was successfully rotated.\u0027)"},{"line_number":44,"context_line":"    };"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    var service \u003d {"}],"source_content_type":"text/javascript","patch_set":3,"id":"78ac3531_33147ef6","line":43,"updated":"2025-08-29 02:39:21.000000000","message":"Suggested text: `Credentials successfully rotated for Cluster {id}.`","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  ) {"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    var message \u003d {"},{"line_number":43,"context_line":"      success: gettext(\u0027Credential was successfully rotated.\u0027)"},{"line_number":44,"context_line":"    };"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    var service \u003d {"}],"source_content_type":"text/javascript","patch_set":3,"id":"4ee37687_9b5dcfed","line":43,"in_reply_to":"78ac3531_33147ef6","updated":"2025-09-02 00:59:44.000000000","message":"Done","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    function perform(selected) {"},{"line_number":60,"context_line":"      return magnum.rotateCredential(selected.id).then(success);"},{"line_number":61,"context_line":"    }"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    function success(response) {"}],"source_content_type":"text/javascript","patch_set":3,"id":"7bc62d47_c67e5c89","line":60,"updated":"2025-08-29 02:39:21.000000000","message":"I would like to see a confirmation box with a little more information about the action before actually submitting the PATCH action, as this is not reversible once performed (the cluster has changed ownership, which may not be intended by someone clicking around in the UI).\n\nThe delete action does this, for inspiration.","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    function perform(selected) {"},{"line_number":60,"context_line":"      return magnum.rotateCredential(selected.id).then(success);"},{"line_number":61,"context_line":"    }"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    function success(response) {"}],"source_content_type":"text/javascript","patch_set":3,"id":"fff74a92_fd5660ef","line":60,"in_reply_to":"7bc62d47_c67e5c89","updated":"2025-09-02 00:59:44.000000000","message":"Good suggestion. I\u0027ve added a confirmation modal that warns the user that the cluster will transfer ownership to them. I\u0027m assuming other drivers will also apply this ownership change by some means. The drop-down text is now red to infer the irreversible nature of this action. On confirmation, a loader spinner will be presented as this used to hang for a short time previously.","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"7f0e5e183e9cbfe5332acff34ef3f0ed9e6364f9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    function perform(selected) {"},{"line_number":60,"context_line":"      return magnum.rotateCredential(selected.id).then(success);"},{"line_number":61,"context_line":"    }"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    function success(response) {"}],"source_content_type":"text/javascript","patch_set":3,"id":"180d6baa_fa7ed5d6","line":60,"in_reply_to":"fff74a92_fd5660ef","updated":"2025-09-03 01:09:13.000000000","message":"Thanks! This looks good","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"}],"magnum_ui/static/dashboard/container-infra/magnum.service.js":[{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"d846df29e79fa9ba331be559b44c47d5f5d34704","unresolved":true,"context_lines":[{"line_number":220,"context_line":"    function rotateCredential(id) {"},{"line_number":221,"context_line":"      return apiService.patch(\u0027/api/container_infra/credentials/\u0027 + id)"},{"line_number":222,"context_line":"        .catch(function onError() {"},{"line_number":223,"context_line":"          toastService.add(\u0027error\u0027, gettext(\u0027Unable to rotate the credential.\u0027));"},{"line_number":224,"context_line":"        });"},{"line_number":225,"context_line":"    }"},{"line_number":226,"context_line":""}],"source_content_type":"text/javascript","patch_set":3,"id":"3d6027e2_4d2ba5b2","line":223,"updated":"2025-08-29 02:39:21.000000000","message":"Can we change this to `\u0027Unable to rotate the credentials for cluster {id}.\u0027`, for a little more context?","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"},{"author":{"_account_id":38227,"name":"Matthew Northcott","display_name":"Matthew Northcott","email":"matthewnorthcott@catalystcloud.nz","username":"northcottmt"},"change_message_id":"85f82c5c7ff1f0373605bffc0290699ec2aaa860","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    function rotateCredential(id) {"},{"line_number":221,"context_line":"      return apiService.patch(\u0027/api/container_infra/credentials/\u0027 + id)"},{"line_number":222,"context_line":"        .catch(function onError() {"},{"line_number":223,"context_line":"          toastService.add(\u0027error\u0027, gettext(\u0027Unable to rotate the credential.\u0027));"},{"line_number":224,"context_line":"        });"},{"line_number":225,"context_line":"    }"},{"line_number":226,"context_line":""}],"source_content_type":"text/javascript","patch_set":3,"id":"963d81ad_c7c90ae3","line":223,"in_reply_to":"3d6027e2_4d2ba5b2","updated":"2025-09-02 00:59:44.000000000","message":"Done","commit_id":"6cf13cde75eca735dc2aa2422b97043be350b60b"}]}
