)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10366,"name":"Hemanth N","email":"hemanth.nakkina@canonical.com","username":"Hemanth"},"change_message_id":"7f8cc107fd2f90708fbc24d07247034ee181e3a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5021d957_19a59e22","updated":"2025-07-22 23:29:24.000000000","message":"Thanks for the contribution.\n\nCan you run the following commands and fix any issues\n\ntox -e fmt\ntox -e pep8\ntox -e linters\ntox -e py3 -- cinder-volume-hitachi","commit_id":"27c97067677cb4a40b039c80d9cb6e60fc70d1c1"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"5d09bfd39fdf043ba4264a4aead21a56682d6657","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"678c9e80_01f6c42e","updated":"2025-07-23 14:53:33.000000000","message":"Hey Hemanth, thanks for the guidance. i fixed the requested formats, and unit test.","commit_id":"a575670a0f56768c4db8555f377c525aeb295418"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2a74d3caaeeb327a59a92f7f20a172624601f55b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3c7878dd_d6824b46","updated":"2025-07-23 15:15:07.000000000","message":"recheck","commit_id":"978aedee39e09fc1d1d8e7b47466633814ccb279"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7ac64795_c00c3ace","updated":"2025-07-31 00:21:42.000000000","message":"Review still in progress - current comments saved.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"59a45018a42d1dea53b8cadf7f7778a3ce1153ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"09075efa_b79cce93","updated":"2025-07-23 22:34:30.000000000","message":"also check: https://github.com/canonical/snap-openstack/pull/544. for other related changes","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"417e05e416c95336bfdc5c75223ce07a87073a08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"28242247_fba17b40","updated":"2025-07-23 15:44:58.000000000","message":"recheck","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bbf78301_0ff7d9bc","updated":"2025-07-31 15:15:05.000000000","message":"Hey Billy!, thanks for taking the time and valuable review. i have addressed your observations and modified all the sensitive credentials to be managed via juju secrets.\n\nalso removed the options that where obsolete deprectated as requested.","commit_id":"a9bd0ce8eb1dd85d36148d31f7bd654ef242d56b"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"04baa74e72e547ae615d12ae42c1b656613de219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9b3219ce_48567096","updated":"2025-09-08 14:23:07.000000000","message":"The other thing that strikes me that is missing is certificates. I think those should potentially be secrets as well for rotation, since the Hitachi devices can present their own certificates for TLS connections if I\u0027m not mistaken.","commit_id":"1c55041eae688d495ace901a70dc20eeaf7b7238"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"cd4bd911f036fb3344b66a1bc57cdd3e7f947334","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d5807e10_29a2015a","in_reply_to":"503f3530_b19c687f","updated":"2025-09-11 23:55:06.000000000","message":"I think in this case, what I\u0027m referring to is that certificates are likely needed to be provided inside the cinder-volume snap to allow for the storage drivers to talk tot he storage array, as these certificates are likely owned by the organization managing the cloud.\n\nThe *_cert_path options should actually be chosen by the snap or charm and the certificates should simply be provided. The certificates should be provided via a Juju secret, which allows for rotation as necessary.","commit_id":"1c55041eae688d495ace901a70dc20eeaf7b7238"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"d6fd95b51ee7e2b1fcd62a7a567ffe256f8688cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"503f3530_b19c687f","in_reply_to":"9b3219ce_48567096","updated":"2025-09-09 22:50:38.000000000","message":"From the 2025.1 Hitachi block storage driver: https://docs.openstack.org/cinder/2025.1/configuration/block-storage/drivers/hitachi-vsp-driver.html\n\nthe only cert options, i see available are:\n\nhitachi_mirror_ssl_cert_path: (String) Can be used to specify a non default path to a CA_BUNDLE file or directory with certificates of trusted CAs, which will be used to validate the backend\n\nhitachi_mirror_ssl_cert_verify \u003d False: (Boolean) If set to True the http client will validate the SSL certificate of the backend endpoint.\n\nNo other option in the driver to specify ceriticates. so no need to manage them secrectly.","commit_id":"1c55041eae688d495ace901a70dc20eeaf7b7238"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"cd4bd911f036fb3344b66a1bc57cdd3e7f947334","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"83e461d2_3a7ccc40","updated":"2025-09-11 23:55:06.000000000","message":"Clarifying one of my comments in-line. We\u0027ve discussed out of band of this review, but the salient point is that the file path options should not be chosen by the user as it is too easy for the user to provide a reference to a file which cannot be accessed by the strictly confined cinder-volume snap. File paths should be chosen by the snap/charm - but the user should be able to provide the things that are reference (when it makes sense). In this example, it is certificates for the TLS API endpoints that will be used. As such, the user should provide the certificates, the certificates should be stored in a Juju secret, and then the service should be configured to use that secret.","commit_id":"0c57a7afe5b2ab771be68c1e266d5be31dbbd211"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"d6fd95b51ee7e2b1fcd62a7a567ffe256f8688cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2dfb92df_f8dee4b0","updated":"2025-09-09 22:50:38.000000000","message":"Hi Billy, i have adressed yuor comments","commit_id":"0c57a7afe5b2ab771be68c1e266d5be31dbbd211"}],"charms/cinder-volume-hitachi/charmcraft.yaml":[{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":50,"context_line":"    san-login:"},{"line_number":51,"context_line":"      type: string"},{"line_number":52,"context_line":"      description: Array username with *Storage Administrator* privileges."},{"line_number":53,"context_line":"    san-password:"},{"line_number":54,"context_line":"      type: string"},{"line_number":55,"context_line":"      secret: true"},{"line_number":56,"context_line":"      description: Password for *san-login*."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f07117bb_77ebb31c","line":53,"updated":"2025-07-31 00:21:42.000000000","message":"As this is sensitive data, I think we should ensure that we use [Juju secrets](https://documentation.ubuntu.com/juju/3.6/reference/secret/) here. Potentially for both the username and password as one credential secret. The reference would be a secret url where the user needs to create the secret.\n\nThis also has good implications for secret rotation - so the user can update the username/password in the secret store and it will propagate to the units securely.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    san-login:"},{"line_number":51,"context_line":"      type: string"},{"line_number":52,"context_line":"      description: Array username with *Storage Administrator* privileges."},{"line_number":53,"context_line":"    san-password:"},{"line_number":54,"context_line":"      type: string"},{"line_number":55,"context_line":"      secret: true"},{"line_number":56,"context_line":"      description: Password for *san-login*."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b60a992b_f1d240a1","line":53,"in_reply_to":"f07117bb_77ebb31c","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":81,"context_line":"      description: |"},{"line_number":82,"context_line":"        Comma‑separated front‑end port labels to restrict mappings"},{"line_number":83,"context_line":"        (e.g. \"CL1-A,CL2-A\"). Leave unset to allow any port."},{"line_number":84,"context_line":"    hitachi-group-request:"},{"line_number":85,"context_line":"      type: boolean"},{"line_number":86,"context_line":"      default: false"},{"line_number":87,"context_line":"      description: Automatically create HostGroups / iSCSI Targets when attaching."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b4ad46fa_c01f1b84","line":84,"updated":"2025-07-31 00:21:42.000000000","message":"This doesn\u0027t appear to exist anymore.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      description: |"},{"line_number":82,"context_line":"        Comma‑separated front‑end port labels to restrict mappings"},{"line_number":83,"context_line":"        (e.g. \"CL1-A,CL2-A\"). Leave unset to allow any port."},{"line_number":84,"context_line":"    hitachi-group-request:"},{"line_number":85,"context_line":"      type: boolean"},{"line_number":86,"context_line":"      default: false"},{"line_number":87,"context_line":"      description: Automatically create HostGroups / iSCSI Targets when attaching."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"a11bcb3a_e5546f76","line":84,"in_reply_to":"b4ad46fa_c01f1b84","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":93,"context_line":"    # -----------------------------------------------------------------"},{"line_number":94,"context_line":"    # Copy \u0026 replication tuning (COMMON)"},{"line_number":95,"context_line":"    # -----------------------------------------------------------------"},{"line_number":96,"context_line":"    hitachi-default-copy-method:"},{"line_number":97,"context_line":"      type: string"},{"line_number":98,"context_line":"      default: FULL"},{"line_number":99,"context_line":"      description: Default copy method for internal volume moves."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ae74a60e_0538b054","line":96,"updated":"2025-07-31 00:21:42.000000000","message":"This doesn\u0027t appear to exist any more","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # -----------------------------------------------------------------"},{"line_number":94,"context_line":"    # Copy \u0026 replication tuning (COMMON)"},{"line_number":95,"context_line":"    # -----------------------------------------------------------------"},{"line_number":96,"context_line":"    hitachi-default-copy-method:"},{"line_number":97,"context_line":"      type: string"},{"line_number":98,"context_line":"      default: FULL"},{"line_number":99,"context_line":"      description: Default copy method for internal volume moves."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f52de619_1a3b41c3","line":96,"in_reply_to":"ae74a60e_0538b054","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":113,"context_line":"    # -----------------------------------------------------------------"},{"line_number":114,"context_line":"    # iSCSI authentication (only used with protocol\u003diSCSI)"},{"line_number":115,"context_line":"    # -----------------------------------------------------------------"},{"line_number":116,"context_line":"    hitachi-auth-method:"},{"line_number":117,"context_line":"      type: string"},{"line_number":118,"context_line":"      default: null"},{"line_number":119,"context_line":"      description: Authentication method (`CHAP` or empty for none)."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f4694343_55f7056e","line":116,"updated":"2025-07-31 00:21:42.000000000","message":"This is actually use_chap_auth inherited from the base cinder volume driver.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    # -----------------------------------------------------------------"},{"line_number":114,"context_line":"    # iSCSI authentication (only used with protocol\u003diSCSI)"},{"line_number":115,"context_line":"    # -----------------------------------------------------------------"},{"line_number":116,"context_line":"    hitachi-auth-method:"},{"line_number":117,"context_line":"      type: string"},{"line_number":118,"context_line":"      default: null"},{"line_number":119,"context_line":"      description: Authentication method (`CHAP` or empty for none)."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1894d918_833aef08","line":116,"in_reply_to":"f4694343_55f7056e","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":117,"context_line":"      type: string"},{"line_number":118,"context_line":"      default: null"},{"line_number":119,"context_line":"      description: Authentication method (`CHAP` or empty for none)."},{"line_number":120,"context_line":"    hitachi-auth-user:"},{"line_number":121,"context_line":"      type: string"},{"line_number":122,"context_line":"      default: HBSD-CHAP-user"},{"line_number":123,"context_line":"      description: CHAP user name."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"22a5cdef_af261b4a","line":120,"updated":"2025-07-31 00:21:42.000000000","message":"This is actually chap_username from the base cinder volume driver.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":117,"context_line":"      type: string"},{"line_number":118,"context_line":"      default: null"},{"line_number":119,"context_line":"      description: Authentication method (`CHAP` or empty for none)."},{"line_number":120,"context_line":"    hitachi-auth-user:"},{"line_number":121,"context_line":"      type: string"},{"line_number":122,"context_line":"      default: HBSD-CHAP-user"},{"line_number":123,"context_line":"      description: CHAP user name."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"c110ceeb_e24f43e9","line":120,"in_reply_to":"22a5cdef_af261b4a","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":121,"context_line":"      type: string"},{"line_number":122,"context_line":"      default: HBSD-CHAP-user"},{"line_number":123,"context_line":"      description: CHAP user name."},{"line_number":124,"context_line":"    hitachi-auth-password:"},{"line_number":125,"context_line":"      type: string"},{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7d7d2f76_3738b519","line":124,"updated":"2025-07-31 00:21:42.000000000","message":"This is actually chap_password from the base cinder volume driver.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":121,"context_line":"      type: string"},{"line_number":122,"context_line":"      default: HBSD-CHAP-user"},{"line_number":123,"context_line":"      description: CHAP user name."},{"line_number":124,"context_line":"    hitachi-auth-password:"},{"line_number":125,"context_line":"      type: string"},{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"6aa7d3e2_15ee014a","line":124,"in_reply_to":"7d7d2f76_3738b519","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":125,"context_line":"      type: string"},{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"},{"line_number":128,"context_line":"      description: CHAP secret."},{"line_number":129,"context_line":"    hitachi-add-chap-user:"},{"line_number":130,"context_line":"      type: boolean"},{"line_number":131,"context_line":"      default: false"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"8361c1ae_0bf18026","line":128,"updated":"2025-07-31 00:21:42.000000000","message":"My same comment applies to the hitachi-auth-user/password options as above. These should use juju secrets.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":125,"context_line":"      type: string"},{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"},{"line_number":128,"context_line":"      description: CHAP secret."},{"line_number":129,"context_line":"    hitachi-add-chap-user:"},{"line_number":130,"context_line":"      type: boolean"},{"line_number":131,"context_line":"      default: false"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1fed73d4_c5363738","line":128,"in_reply_to":"8361c1ae_0bf18026","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"},{"line_number":128,"context_line":"      description: CHAP secret."},{"line_number":129,"context_line":"    hitachi-add-chap-user:"},{"line_number":130,"context_line":"      type: boolean"},{"line_number":131,"context_line":"      default: false"},{"line_number":132,"context_line":"      description: Create the CHAP user automatically on the array."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"109ed803_8c41a1be","line":129,"updated":"2025-07-31 00:21:42.000000000","message":"This option no longer exists. It existed in a previous incarnation of the driver, but that driver was removed. The Hitachi driver was later re-added but the \u0027hitachi-add-chap-user\u0027 option was not included in the reintroduction of this driver.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":126,"context_line":"      secret: true"},{"line_number":127,"context_line":"      default: HBSD-CHAP-password"},{"line_number":128,"context_line":"      description: CHAP secret."},{"line_number":129,"context_line":"    hitachi-add-chap-user:"},{"line_number":130,"context_line":"      type: boolean"},{"line_number":131,"context_line":"      default: false"},{"line_number":132,"context_line":"      description: Create the CHAP user automatically on the array."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"4b07b565_7e42d7b0","line":129,"in_reply_to":"109ed803_8c41a1be","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":134,"context_line":"    # -----------------------------------------------------------------"},{"line_number":135,"context_line":"    # HORCM legacy pair‑tool options"},{"line_number":136,"context_line":"    # -----------------------------------------------------------------"},{"line_number":137,"context_line":"    hitachi-horcm-numbers:"},{"line_number":138,"context_line":"      type: string"},{"line_number":139,"context_line":"      default: \"200,201\""},{"line_number":140,"context_line":"      description: Comma‑separated list of HORCM instance numbers."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"2b742b41_7248d4c4","line":137,"updated":"2025-07-31 00:21:42.000000000","message":"The horcm drivers were removed from Cinder and are no longer available. As such, the hitachi-horcm-* options are not applicable and should be removed.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    # -----------------------------------------------------------------"},{"line_number":135,"context_line":"    # HORCM legacy pair‑tool options"},{"line_number":136,"context_line":"    # -----------------------------------------------------------------"},{"line_number":137,"context_line":"    hitachi-horcm-numbers:"},{"line_number":138,"context_line":"      type: string"},{"line_number":139,"context_line":"      default: \"200,201\""},{"line_number":140,"context_line":"      description: Comma‑separated list of HORCM instance numbers."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"69a79156_7720f0f0","line":137,"in_reply_to":"2b742b41_7248d4c4","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":163,"context_line":"      type: string"},{"line_number":164,"context_line":"      default: null"},{"line_number":165,"context_line":"      description: LDEV range usable by the driver (e.g. \"1000-1FFF\")."},{"line_number":166,"context_line":"    hitachi-pool-id:"},{"line_number":167,"context_line":"      type: int"},{"line_number":168,"context_line":"      default: null"},{"line_number":169,"context_line":"      description: Pool ID used for new volumes (overrides *hitachi-pools*)."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b327efaa_172f2a20","line":166,"updated":"2025-07-31 00:21:42.000000000","message":"I don\u0027t see the pool ID options any more. Instead, the Hitachi code queries the pool id from the pool name that is set (via the hitachi_pools parameter).\n\nI suspect this is matching to the hitach_pool option, but that\u0027s deprecated so we should just remove this option.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":163,"context_line":"      type: string"},{"line_number":164,"context_line":"      default: null"},{"line_number":165,"context_line":"      description: LDEV range usable by the driver (e.g. \"1000-1FFF\")."},{"line_number":166,"context_line":"    hitachi-pool-id:"},{"line_number":167,"context_line":"      type: int"},{"line_number":168,"context_line":"      default: null"},{"line_number":169,"context_line":"      description: Pool ID used for new volumes (overrides *hitachi-pools*)."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1277029f_070877ec","line":166,"in_reply_to":"b327efaa_172f2a20","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":167,"context_line":"      type: int"},{"line_number":168,"context_line":"      default: null"},{"line_number":169,"context_line":"      description: Pool ID used for new volumes (overrides *hitachi-pools*)."},{"line_number":170,"context_line":"    hitachi-thin-pool-id:"},{"line_number":171,"context_line":"      type: int"},{"line_number":172,"context_line":"      default: null"},{"line_number":173,"context_line":"      description: Thin pool ID for dedup/compress volumes."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f6326e1d_25bd0310","line":170,"updated":"2025-07-31 00:21:42.000000000","message":"This option doesn\u0027t exist in the upstream driver.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":167,"context_line":"      type: int"},{"line_number":168,"context_line":"      default: null"},{"line_number":169,"context_line":"      description: Pool ID used for new volumes (overrides *hitachi-pools*)."},{"line_number":170,"context_line":"    hitachi-thin-pool-id:"},{"line_number":171,"context_line":"      type: int"},{"line_number":172,"context_line":"      default: null"},{"line_number":173,"context_line":"      description: Thin pool ID for dedup/compress volumes."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"57b2c783_aba91113","line":170,"in_reply_to":"f6326e1d_25bd0310","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":171,"context_line":"      type: int"},{"line_number":172,"context_line":"      default: null"},{"line_number":173,"context_line":"      description: Thin pool ID for dedup/compress volumes."},{"line_number":174,"context_line":"    hitachi-unit-name:"},{"line_number":175,"context_line":"      type: string"},{"line_number":176,"context_line":"      default: null"},{"line_number":177,"context_line":"      description: Unit name prefix for new LDEVs."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"22ea57ce_01725dfe","line":174,"updated":"2025-07-31 00:21:42.000000000","message":"I don\u0027t see this as an available option.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":171,"context_line":"      type: int"},{"line_number":172,"context_line":"      default: null"},{"line_number":173,"context_line":"      description: Thin pool ID for dedup/compress volumes."},{"line_number":174,"context_line":"    hitachi-unit-name:"},{"line_number":175,"context_line":"      type: string"},{"line_number":176,"context_line":"      default: null"},{"line_number":177,"context_line":"      description: Unit name prefix for new LDEVs."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5102c2b4_9cdae0ad","line":174,"in_reply_to":"22ea57ce_01725dfe","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"105b683d112b0106cf6e485f9c7fcaef7e6ead00","unresolved":true,"context_lines":[{"line_number":175,"context_line":"      type: string"},{"line_number":176,"context_line":"      default: null"},{"line_number":177,"context_line":"      description: Unit name prefix for new LDEVs."},{"line_number":178,"context_line":"    hitachi-serial-number:"},{"line_number":179,"context_line":"      type: string"},{"line_number":180,"context_line":"      default: null"},{"line_number":181,"context_line":"      description: Alternate array serial if different from *hitachi-storage-id*."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9cc66cee_79e1ea1b","line":178,"updated":"2025-07-31 00:21:42.000000000","message":"This option doesn\u0027t appear to be present in the cinder drivers - I think we should just use the `hitachi-storage-id` and leave it at that.","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"2b8ebc0d02d568bd68bc3936ab62d7ed3c709d92","unresolved":false,"context_lines":[{"line_number":175,"context_line":"      type: string"},{"line_number":176,"context_line":"      default: null"},{"line_number":177,"context_line":"      description: Unit name prefix for new LDEVs."},{"line_number":178,"context_line":"    hitachi-serial-number:"},{"line_number":179,"context_line":"      type: string"},{"line_number":180,"context_line":"      default: null"},{"line_number":181,"context_line":"      description: Alternate array serial if different from *hitachi-storage-id*."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"fa7dab38_646e0fe9","line":178,"in_reply_to":"9cc66cee_79e1ea1b","updated":"2025-07-31 15:15:05.000000000","message":"Done","commit_id":"6eb8ffb0c7df987e5b4d8125d865b168f0f3cfbf"}],"charms/cinder-volume-hitachi/src/charm.py":[{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"04baa74e72e547ae615d12ae42c1b656613de219","unresolved":true,"context_lines":[{"line_number":56,"context_line":"    return {k: opt.default for k, opt in charm.meta.config.items()}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"def prepare_iscsi_initiator_file():"},{"line_number":60,"context_line":"    \"\"\"Copy host initiatorname.iscsi into snap layout path if needed.\"\"\""},{"line_number":61,"context_line":"    source \u003d Path(\"/etc/iscsi/initiatorname.iscsi\")"},{"line_number":62,"context_line":"    target \u003d Path("}],"source_content_type":"text/x-python","patch_set":5,"id":"8979ee1e_a0eaafc1","line":59,"updated":"2025-09-08 14:23:07.000000000","message":"This feels to me like it could be a common method since there will be multiple storage charms that use iSCSI.","commit_id":"a9bd0ce8eb1dd85d36148d31f7bd654ef242d56b"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"d6fd95b51ee7e2b1fcd62a7a567ffe256f8688cf","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    return {k: opt.default for k, opt in charm.meta.config.items()}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"def prepare_iscsi_initiator_file():"},{"line_number":60,"context_line":"    \"\"\"Copy host initiatorname.iscsi into snap layout path if needed.\"\"\""},{"line_number":61,"context_line":"    source \u003d Path(\"/etc/iscsi/initiatorname.iscsi\")"},{"line_number":62,"context_line":"    target \u003d Path("}],"source_content_type":"text/x-python","patch_set":5,"id":"40a7b137_9269b55e","line":59,"in_reply_to":"8979ee1e_a0eaafc1","updated":"2025-09-09 22:50:38.000000000","message":"actually this method is unecesary. as the cinder-volume snap, allready provide read access to the file:\n\nplugs:\n  etc-iscsi:\n    interface: system-files\n    read:\n      - /etc/iscsi/initiatorname.iscsi\n\nso this code is redundant. will remove it","commit_id":"a9bd0ce8eb1dd85d36148d31f7bd654ef242d56b"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"04baa74e72e547ae615d12ae42c1b656613de219","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        logger.error(f\"Failed to prepare iSCSI initiator file: {e}\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def connect_snap_interfaces() -\u003e None:"},{"line_number":90,"context_line":"    \"\"\"Attempt to connect all interfaces the snap needs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    Missing or already–connected interfaces are logged but do not"}],"source_content_type":"text/x-python","patch_set":5,"id":"a64ddd32_9ca06488","line":89,"updated":"2025-09-08 14:23:07.000000000","message":"This should be only necessary in the short term or for debug purposes. I expect that this is used for being able to deploy and connect new and missing interfaces ?","commit_id":"a9bd0ce8eb1dd85d36148d31f7bd654ef242d56b"},{"author":{"_account_id":38113,"name":"Vinicius Garcia","display_name":"Vinicius Garcia","email":"vinicius.garcia@gws-bo.com","username":"hviniciusg","status":"Head of Infraestructure\nGWS"},"change_message_id":"d6fd95b51ee7e2b1fcd62a7a567ffe256f8688cf","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        logger.error(f\"Failed to prepare iSCSI initiator file: {e}\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def connect_snap_interfaces() -\u003e None:"},{"line_number":90,"context_line":"    \"\"\"Attempt to connect all interfaces the snap needs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    Missing or already–connected interfaces are logged but do not"}],"source_content_type":"text/x-python","patch_set":5,"id":"b0afee93_3437ef2e","line":89,"in_reply_to":"a64ddd32_9ca06488","updated":"2025-09-09 22:50:38.000000000","message":"Hi Billy, yes. once the charm auto connects the interfaces. this are no longer needed. will remove this methods","commit_id":"a9bd0ce8eb1dd85d36148d31f7bd654ef242d56b"}]}
