-
Notifications
You must be signed in to change notification settings - Fork 1.3k
various fixes for fiberchannel and autoscale prefix option #11071
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@ ## 4.20 #11071 +/- ## ============================================ - Coverage 16.23% 16.22% -0.01% + Complexity 13378 13377 -1 ============================================ Files 5657 5657 Lines 498865 499036 +171 Branches 60545 60571 +26 ============================================ - Hits 81014 80992 -22 - Misses 408820 409010 +190 - Partials 9031 9034 +3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes several issues and enhances functionality in both autoscale VM hostname generation and storage connectivity, including improvements for handling disk connections asynchronously and build configuration refinements.
- Introduces an optional configuration for including a hostname prefix for autoscale VMs.
- Implements asynchronous disk connection handling and improves error messaging and logging across storage adapter scripts.
- Adds several m2e IDE build annotations and fixes path issues in Maven POMs.
Reviewed Changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java | Adds hostname generation methods with and without prefix for autoscale VMs. |
| server/src/main/java/com/cloud/network/as/AutoScaleManager.java | Introduces a new config key to enable/disable the autoscale hostname prefix. |
| scripts/storage/multipath/startConnectVolume.sh | Implements a shell script to connect volumes, with minor spelling issues in comments. |
| scripts/storage/multipath/finishConnectVolume.sh | Provides a finishing connect script with similar spelling issues as startConnectVolume.sh. |
| scripts/storage/multipath/disconnectVolume.sh | Updates background execution behavior for disk disconnect operations. |
| scripts/storage/multipath/connectVolume.sh | Refactors volume connect logic to use dedicated start/finish connect scripts and a waiting loop. |
| pom.xml, plugins/*/pom.xml, engine/schema/pom.xml | Updates Maven POM configurations and ensures m2e IDE compatibility. |
| plugins/storage/volume/adaptive/src/main/java/org/apache/cloudstack/storage/datastore/driver/AdaptiveDataStoreDriverImpl.java | Modifies persistence method signatures and logging for volume operations. |
| plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java | Adjusts script timeout values and error messages, and adds new script properties. |
| plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java, KVMStoragePoolManager.java, AsyncPhysicalDiskConnectorDecorator.java | Improves exception handling and implements support for asynchronous physical disk connections. |
...rc/main/java/org/apache/cloudstack/storage/datastore/driver/AdaptiveDataStoreDriverImpl.java
Outdated
Show resolved
Hide resolved
...hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
...stack/storage/datastore/driver/AdaptiveDataStoreDriverImpl.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
.../storage/MultipathSCSIAdapterBase.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
rp-
commented
Jul 3, 2025
I ran the Linstor integration tests against it and had not problems, so green light from me, from that perspective.
@rp-
rp-
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.
shwstppr
commented
Sep 3, 2025
@rg9975 can you please resolve the conflicts?
DaanHoogland
commented
Dec 22, 2025
@blueorangutan package
blueorangutan
commented
Dec 22, 2025
@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.
blueorangutan
commented
Dec 22, 2025
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16132
DaanHoogland
commented
Dec 23, 2025
@blueorangutan test
blueorangutan
commented
Dec 23, 2025
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests
blueorangutan
commented
Dec 23, 2025
[SF] Trillian Build Failed (tid-15046)
blueorangutan
commented
Dec 23, 2025
[SF] Trillian Build Failed (tid-15047)
DaanHoogland
commented
Dec 23, 2025
@rg9975 , the deploy fails:
10:03:25 fatal: [pr11071-t15047-kvm-ol8-mgmt2]: FAILED! => {"changed": true, "cmd": "/usr/bin/cloudstack-setup-databases 'cloud’:’******'@'10.0.33.124' ", "delta": "0:00:00.114740", "end": "2025-12-23 09:03:25.297505", "failed": true, "rc": 1, "start": "2025-12-23 09:03:25.182765", "stderr": "\n\nWe apologize for below error:\n***************************************************************\nCannot find @MSCONF@/db.properties\n***************************************************************\nPlease run:\n\n cloudstack-setup-databases -h\n\nfor full help", "stderr_lines": ["", "", "We apologize for below error:", "***************************************************************", "Cannot find @MSCONF@/db.properties", "***************************************************************", "Please run:", "", " cloudstack-setup-databases -h", "", "for full help"], "stdout": "Mysql user name:cloud [ \u001b[92mOK\u001b[0m ]\nMysql user password:****** [ \u001b[92mOK\u001b[0m ]\nMysql server ip:10.0.33.124 [ \u001b[92mOK\u001b[0m ]\nMysql server port:3306 [ \u001b[92mOK\u001b[0m ]\nChecking Cloud database files ... ", "stdout_lines": ["Mysql user name:cloud [ \u001b[92mOK\u001b[0m ]", "Mysql user password:****** [ \u001b[92mOK\u001b[0m ]", "Mysql server ip:10.0.33.124 [ \u001b[92mOK\u001b[0m ]", "Mysql server port:3306 [ \u001b[92mOK\u001b[0m ]", "Checking Cloud database files ... "]}
rg9975
commented
Dec 24, 2025
@DaanHoogland nothing in this PR changed the files/scripts related to the output you posted. I don't find that output in any of the workflow job output, can you point to where that is?
DaanHoogland
commented
Dec 24, 2025
I have no idea @rg9975 , but my first thought went to the engine/schema/pom.xml (line 111)
Cannot find @MSCONF@/db.properties , does it get copied properly? It is not an intermitted issue. At least two of the prior runs showed the same.
blueorangutan
commented
Dec 24, 2025
Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 16159
Co-authored-by: dahn <daan.hoogland@gmail.com>
blueorangutan
commented
Dec 26, 2025
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16169
DaanHoogland
commented
Jan 27, 2026
@blueorangutan test
blueorangutan
commented
Jan 27, 2026
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests
blueorangutan
commented
Jan 27, 2026
[SF] Trillian Build Failed (tid-15290)
DaanHoogland
commented
Jan 27, 2026
@rg9975 sorry, systemvms don’t come up in a lab env with this PR
DaanHoogland
commented
Jan 27, 2026
@rg9975 , from an lab env attempt:
2026年01月27日 10:35:12,197 ERROR [c.c.s.StorageManagerImpl] (qtp1390913202-16:[ctx-e7c7f6e4, ctx-d42028a4, ctx-087c6d5f]) (logid:d3f57cd1) Failed to register system VM template for hypervisor: KVM amd64 com.cloud.utils
.exception.CloudRuntimeException: Checksum failed for local template file
at com.cloud.upgrade.SystemVmTemplateRegistration.validateTemplateFileForHypervisorAndArch(SystemVmTemplateRegistration.java:782)
at com.cloud.upgrade.SystemVmTemplateRegistration.validateAndRegisterTemplate(SystemVmTemplateRegistration.java:788)
at com.cloud.storage.StorageManagerImpl.registerSystemVmTemplateForHypervisorArch(StorageManagerImpl.java:3632)
at com.cloud.storage.StorageManagerImpl4ドル.doInTransactionWithoutResult(StorageManagerImpl.java:3662)
at com.cloud.utils.db.TransactionCallbackNoReturn.doInTransaction(TransactionCallbackNoReturn.java:25)
at com.cloud.utils.db.Transaction2ドル.doInTransaction(Transaction.java:48)
at com.cloud.utils.db.Transaction.execute(Transaction.java:38)
at com.cloud.utils.db.Transaction.execute(Transaction.java:45)
at com.cloud.storage.StorageManagerImpl.registerSystemVmTemplateOnFirstNfsStore(StorageManagerImpl.java:3642)
at com.cloud.storage.StorageManagerImpl.discoverImageStore(StorageManagerImpl.java:3593)
Description
This PR fixes various issues in the fiberchannel/adaptive storage provider, including adding an optional interface for handling connecting disks in a 3 step process to improve performance on VMs with a large number of disks to connect. One additional change is included to provide an option to disable the fixed string prefix added to autoscale VMs to allow for longer generated names. A couple of small annotations were added to help builds when running in an m2e-compatible IDE.
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
Code has been tested and used in live environment with appropriate storage appliances.
How did you try to break this feature and the system with this change?
Code has been tested and used in live environment with appropriate storage appliances.