| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Congratulations on your first Pull Request and welcome to the Apache CloudStack community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md)
|
Sorry, something went wrong.
There was a problem hiding this comment.
You have failing tests for pre-commit and license checks.
Have a quick read up on pre-commit it really is a series of basic checks we run:
https://github.com/apache/cloudstack/blob/main/PRE-COMMIT.md
Also we normally add the ASF license header to all files or add an exclude
Sorry, something went wrong.
Codecov Report❌ Patch coverage is 0% with 810 lines in your changes missing coverage. Please review. @@ Coverage Diff @@
## main #12124 +/- ##
============================================
+ Coverage 18.01% 18.08% +0.06%
- Complexity 16607 16753 +146
============================================
Files 6029 6044 +15
Lines 542154 543636 +1482
Branches 66451 66646 +195
============================================
+ Hits 97681 98290 +609
- Misses 433457 434305 +848
- Partials 11016 11041 +25
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness.
|
Sorry, something went wrong.
|
@mhkadhum can you check the build errors? |
Sorry, something went wrong.
|
Thanks for the feedback! ive added the missing license headers and ran pre-commit locally, and pushed an updated commit |
Sorry, something went wrong.
|
looks generally good @mhkadhum , thanks for the contribution. Will you be maintaining this? As it is a 3rd party component and it may require hardware or licenses not available to the project. |
Sorry, something went wrong.
Yes, I will be the maintainer for the plugin. I have made a new commit to fix the previous build. Could you kindly review it |
Sorry, something went wrong.
There was a problem hiding this comment.
I have not found any oddities in the code, but one remark (in two parts ;) ) Feel free to ignore but I think it will help in the future.
Sorry, something went wrong.
|
@mhkadhum I was not able to review the new changes yet. The test failure here in GitHub does not seem related to them. We can try running the integration tests with a real hypervisor to check. |
Sorry, something went wrong.
|
@DaanHoogland @weizhouapache @nvazquez can we run the CI here? |
Sorry, something went wrong.
Hi @DaanHoogland |
Sorry, something went wrong.
Also pinging @Pearl1594 |
Sorry, something went wrong.
|
@Pearl1594 a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
Sorry, something went wrong.
There was a problem hiding this comment.
java code lgtm
Sorry, something went wrong.
|
[SF] Trillian test result (tid-16299)
|
Sorry, something went wrong.
|
Hello @winterhazel @DaanHoogland @Pearl1594 The test result looks good.
|
Sorry, something went wrong.
|
Sorry, something went wrong.
@mhkadhum the first failure is caused by the lack of unit tests (coverage under 18%) for these changes. Passing this check is not a requirement for merging, but of course it would be good to have tests to prevent future regressions, if you would like to add some. The second one does not seem related to your changes, but I triggered a rerun. |
Sorry, something went wrong.
|
@mhkadhum the failure is an issue with Codecov, not with your changes: ==> Verifying GPG signature integrity
-> Downloading https://cli.codecov.io/latest/linux/codecov.SHA256SUM
-> Downloading https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig
gpg: Signature made Tue Apr 21 19:28:03 2026 UTC
gpg: using RSA key 27034E7FDB850E0BBC2C62FF806BB28AED779869
gpg: Can't check signature: No public key
==> Could not verify signature. Please contact Codecov if problem continues
Exiting...
Error: Process completed with exit code 1.
|
Sorry, something went wrong.
Great, I think we are ready to merge ? |
Sorry, something went wrong.
@mhkadhum I think there were some issues while adding your changes on the latest commits. Some unrelated labels were modified or removed from en.json. Also, it seems that some of @abh1sar's suggestions were reverted as well. Could you have a look? |
Sorry, something went wrong.
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
Sorry, something went wrong.
Hello I'm quite busy with other commitments this week and won't be able to make progress on this until next week. thank u |
Sorry, something went wrong.
There was a problem hiding this comment.
I am pretty sure that the removals in this file are invalid. The additions seem ecs related, but the removals are not.
Sorry, something went wrong.
|
moving to 4.24.0 |
Sorry, something went wrong.
|
Hi @mhkadhum can you please address the conflicts? |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Description
This PR adds support for a Dell EMC ECS S3 object storage plugin for Apache CloudStack. ECS is a software-defined object storage platform that supports both object and file-system protocols, with a focus on scalable and reliable object storage. We have been using ECS in production for three years, and this work extends CloudStack’s existing MinIO plugin to provide similar functionality for ECS.
The implementation supports the full lifecycle of S3-compatible buckets on ECS, including user provisioning, bucket creation, policy management, versioning, creation-time encryption, and integration with CloudStack’s S3 Browser. All functionality has been tested in a lab environment on Ubuntu using a CloudStack development setup based on the official installation guidelines.
Key architectural differences from MinIO:
Management API Integration
ECS requires use of the ECS Management API (port 4443, or 443 when fronted by HAProxy). CloudStack authenticates with management-user credentials to perform bucket and user operations.
Namespace Requirements
A dedicated ECS namespace is required for CloudStack-managed buckets. Multiple namespaces allow different CloudStack environments to share the same ECS cluster.
S3 Endpoints (Public and Private)
ECS exposes S3 services on ports 9020/9021 (non-TLS/TLS). In our deployment, these are routed through HAProxy and exposed externally on port 443. The Public URL is displayed to CloudStack users, while the Private URL is used internally.
TLS Handling
The “Allow Insecure HTTPS” option controls whether CloudStack accepts untrusted certificates when communicating with the ECS Management API.
User Provisioning Workflow
When a CloudStack user creates their first bucket, CloudStack provisions a corresponding ECS object user using the CloudStack UUID with a cs- prefix. ECS generates access and secret keys once, which CloudStack securely stores and reuses for subsequent bucket operations.
Bucket features:
Bucket modification supports quota changes, versioning updates, and policy changes. Encryption is excluded because ECS does not allow changing it after creation.
CloudStack’s S3 Browser supports upload, download, delete, listing, and prefix filtering through the ECS S3 endpoint. ECS prevents deletion of non-empty buckets, and CloudStack surfaces these errors accordingly.
We welcome review and feedback. The development fork is available here:
https://github.com/mhkadhum/cloudstack
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
The plugin was tested in an Ubuntu-based CloudStack development environment created by cloning the CloudStack source and following the official installation instructions. Testing included: