tpodowd opened a new pull request, #9748: URL: https://github.com/apache/cloudstack/pull/9748
### Description This PR Adds A New Object Storage Provider Plugin for Cloudian HyperStore - Allow the CloudStack administrator to connect to Cloudian HyperStore object storage. - Once connected, CloudStack Accounts can create buckets that are managed by and belong to their own Account. - IAM Credentials are available for each bucket such that Accounts can use the buckets either from 3rd party S3 applications or from the CloudStack Bucket Browser UI Feature. - The plugin supports all the current CloudStack bucket operations such as Object Lock, Versioning, Encryption and policy settings. - The plugin currently does not support setting a bucket quota as HyperStore does not currently support that functionality. - Bucket usage is supported. More Details: - See plugins/storage/object/cloudian/README.md for details UI Changes - Add Object Storage for Cloudian HyperStore: - Cloudian HyperStore Object Storage requires more fields than Minio, Ceph and Simulator so when the Cloudian HyperStore provider is selected, the GUI adjusts and offers the extra fields that the provider requires. Other Bug fixes and improvements as part of this fix I kept in separate commits. - Use a password input field type for object store secret key entry - Fix to avoid pre-pending a second '/' to the object name in the Bucket Browser Feature. - Fix issue where usage may not be collected if another object store is down. - Various fixes and enhancements to CloudianClient <!--- ******************************************************************************* --> <!--- NOTE: AUTOMATION USES THE DESCRIPTIONS TO SET LABELS AND PRODUCE DOCUMENTATION. --> <!--- PLEASE PUT AN 'X' in only **ONE** box --> <!--- ******************************************************************************* --> ### Types of changes - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] New feature (non-breaking change which adds functionality) - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] 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): <img width="589" alt="Screenshot 2024-09-30 at 13 02 20" src="https://github.com/user-attachments/assets/755d38e2-5c7c-4c06-a6ed-07d95aa08986"> ### How Has This Been Tested? 1. Unit Testing 2. Testing against the Cloudian HyperStore system. Tested bad configurations and credentials, system down. 3. Monitored log entries and sniffed network connections. 4. Tested the various UI compontents such as Add Object Storage, Edit and Delete Object Storage. Adding buckets with various Accounts and Projects, editing bucket configurations, verifying configurations were set using different S3 exploration tools. 5. Tested the bucket browser UI component against HyperStore. #### How did you try to break this feature and the system with this change? - As this change altered CloudianClient which is shared code with the other cloudian infrastructure plugin, I also re-tested that plugin after these changes. - I also lightly tested with Minio. - This plugin feature shouldn't break other areas of the system. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@cloudstack.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org