cloudstack icon indicating copy to clipboard operation
cloudstack copied to clipboard

Allow updating Object Storage Details

Open tpodowd opened this issue 7 months ago • 17 comments

Description

Currently, when an administrator edits an Object Storage Pool, only the name or url can be updated.

This change allows the other details of the object store to be updated. The object store details contains the credentials used to connect to the object store as well as other information provided when it was added to the system.

Only updated information is updated. The connection is tested using a new method verifyServiceConnectivity(). If no information has changed, the existing connection is also tested.

In the general case (MinIO/Ceph and Simulator), this change allows you to edit the name and URL of the object storage as before in addition to the credentials used to connect to the object storage. Previously it was not possible to edit them after creation using the GUI. In the case of Cloudian HyperStore Object Storage, this allows you to additionally edit the service URL/ports.

Types of changes

  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [X] Enhancement (improves an existing feature and functionality)
  • [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
  • [ ] build/CI
  • [ ] test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • [ ] Major
  • [X] Minor

Bug Severity

  • [ ] BLOCKER
  • [ ] Critical
  • [ ] Major
  • [ ] Minor
  • [ ] Trivial

Screenshots (if appropriate):

Before this change: Screenshot 2025-03-12 at 15 33 14

After the change: General case (editing MinIO is shown): Screenshot 2025-03-12 at 17 13 09

After the change: Cloudian HyperStore case: Screenshot 2025-03-12 at 17 13 33

How Has This Been Tested?

  1. Unit tests have been added for the new code where possible.
  2. I tested both HyperStore and MinIO environments. I tested updating and making changes to the names, passwords, urls, ports etc and confirmed that you get feedback when the configuration is bad and it updates correctly when the configuration is good.
  3. I ran all the CloudStack Unit tests with a clean build.
  4. I tested adding/removing buckets after changing the object storage details. For MinIO, I created new credentials and deleted the old ones and then updated using the GUI.

How did you try to break this feature and the system with this change?

Tested as above.

tpodowd avatar Mar 12 '25 10:03 tpodowd