Commit Graph

38815 Commits

Author SHA1 Message Date
Pearl Dsilva ce9793c0be
CLVM enhancements and fixes (#12617)
This PR enhances the existing CLVM implementation which was based on the deprecated CLVM technology which was based on corosync/pacemaker. With RHEL 7 having reached EOL, CLVM seems to be broken. CLVM supports RAW volumes on LVM , where as CLVM_NG support QCOW2 on LVM.

Further details: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Modernized+CLVM%3A+Enhancements+and+CLVM_NG+support

NOTE: On testing - it was identified that incremental snapshots for clvm-ng do not work as expected. As of now it's been removed from scope. So, CLVM and CLVM_NG would only support full snapshots.


* add support for proper cleanup of snapshots and prevent vol snapshot of running vm

* remove snap vol restriction for sunning vms

* refactor clvm code

* add support for live migration

* add support for migrating lvm lock

* clvm deletion called explicitly

* made necessary changes to allow migration of lock and deletion of detached volumes

* fix create vol from snap and attach

* add support to revert snapshot for clvm

* add support to revert snapshot for clvm

* make zero fill configurable

* make setting non-dynamic & fix test

* fix locking at vol/vm creation

* fix revert snapshot format type and handle revert snapshot functionality for clvm

* 1. Create clvmlockmanager and move common code \n
2. handle attaching volumes to stopped VMs \n
3. Handle lock transfer when VM is started on another host

* add license

* remove command/answer classes from sonar coverage check

* add support for new gen clvm with template (qcow2) backing

* Add support for clvm_ng - which allows qcow2 on block storage , linked clones, etc

* fix test and use physical size + 50% of virtual size for backing file, while virtual size + pe for disk

* migrate clvm volumes as full clone and allow migration from clvm to nfs

* fix clvm_ng to nfs migration, and handle overhead calc

* support live migration from clvm_ng to nfs and vice-versa

* add support to migrate to and from clvm to nfs

* fix creation of volume on destination host during migration to clvm/clvm-ng

* support live vm migration between clvm -> clvm-ng (vice-versa), nfs -> clvm (vice-versa) and nfs->clvm-ng (vice-versa)

* add unit tests for clvm/clvm_ng operations

* Add support for incremental volume snapshots for clvm_ng

* prevent snapshot backup for incremental clvm_ng snaps, fix build failure, add unit tests

* fix lockhost on creation of volumes from snap and fix bitmap issue when migrating a vol with incremental snap

* restrict pre and post migration commands to only kvm hosts where vm has CLVM/CLVM-NG volumes

* evist lock tracking - use lvs command to get lock host than DB

* add test for pre/post migration

* Create a CLVM storage adaptor

* update existing clvm get stats method

* fix precommit check failure

* Apply suggestions from code review

Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>

* Apply suggestions from code review

Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>

* improve lock host retrieval logic and quicker retrival using db host as first check point and then fanning out

* add proper support for resizing of clvm_ng which calculated PE correctly for qcow2 metadata

* fallback to full snapshots for clvm-ng - incremental not supported in 4.23

* expunge volume detail of lock host on vm expunge

* if vmmigration with volume is done to the same clvm volume group, then dont do data transfer, just lock transfer and vm

* add clvm pools with deterministic uuid , so as to prevent adding the same pool twic

* added a small improvement to factor in a senario when lv is inactive on all hosts, could happen in storage outage issue

* address comment - extract common code for endpoint identification if clvm pool type

* Address comments - add early return guard to reduce indentation

* minor improvement - when migrating vm with volumes, if there's a failures, change the clvm vols to exclusive on source from shared, and on success, change dest vol to exclusive only for cross-pool migration

* cleanup unused code and tests for incremental snaps for clvmng and other cleanups

* allow storage browser to list lv in clvm, fix clvm shrink, overprovisioning factor isnt used for clvm pools - so set it to 1 and prevented display of provisioning type for clvm

* no need to have locktransfercommand to execute in sequence

* increase lv cmd timeouts to consider cluster load

---------

Co-authored-by: Pearl Dsilva <pearl1954@gmail.com>
Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2026-06-16 16:16:51 +05:30
dahn ac6c1c800d
Add bhouse-nexthop to contributors list (#13420) 2026-06-16 09:48:51 +02:00
Bryan Lima 2081ac4666
Guest OS rules (#10098)
Co-authored-by: Fabricio Duarte <fabricio.duarte.jr@gmail.com>
2026-06-15 08:25:55 -03:00
Fabricio Duarte 2fd83e13b1
Introduce Quota resource statement API (#13236) 2026-06-12 08:16:10 -03:00
Vishesh b0601e5478
Fix issue triage github action (#13312) 2026-06-11 08:29:31 +02:00
Vishesh a7f9756d62
Remove realhostip references from the code (#12856)
* Remove realhostip references from the code

* remove unused code
2026-06-10 11:39:39 +05:30
Wei Zhou 6bc83a3c46
.github: Upgrade codecov/codecov-action to version 7.0.0 (#13370) 2026-06-08 11:20:20 +02:00
Abhishek Kumar a1959f2dc2
backup: veeam kvm integration (#12991)
This PR introduces the initial implementation of Veeam integration support for KVM in CloudStack by adding a UHAPI-compatible server and image server components.

Veeam Backup & Replication interacts with virtualization platforms using its Universal Hypervisor API (UHAPI). To enable backup and restore workflows for CloudStack-managed KVM environments, this change introduces a UHAPI server that exposes CloudStack resources through a UHAPI-compatible interface.

In addition to the control plane APIs, an image server component is introduced to handle the data transfer operations required during backup and restore workflows.


The integration consists of two main components:

1. UHAPI Server (Control Plane) named CloudStack Veeam Control Service

A lightweight UHAPI server runs inside the CloudStack management server and exposes endpoints under:

/ovirt-engine
    - /api - For APIs
    - /sso - For authentication
    - /services/pki-resource - For certificates

This server provides inventory discovery APIs required by Veeam and translates CloudStack resources into the structures expected by UHAPI.

The server:

- exposes infrastructure inventory
- handles authentication and session tokens
- maps CloudStack resources to UHAPI-compatible representations


2. Image Server (Data Plane) named CloudStack Image Service

A separate image server component is introduced to handle backup and restore data transfer operations.

This component:

- serves disk image data during backup
- receives image data during restore operations
- exposes endpoints used by Veeam worker components
- integrates with CloudStack storage to read and write VM disk data

The separation between both these components server ensures that:

- metadata APIs and control operations remain lightweight
- bulk image transfer operations are handled independently

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Abhisar Sinha <63767682+abh1sar@users.noreply.github.com>
Co-authored-by: abh1sar <abhisar.sinha@gmail.com>
Co-authored-by: Wei Zhou <weizhou@apache.org>
2026-06-08 08:47:00 +02:00
Gabriel Pordeus Santos be51948146
Stop role from auto-changing if user manually selected a role during account creation (#13320) 2026-06-03 15:06:06 -03:00
Vishesh 7308dad19a
Update github aw actions (#13278) 2026-05-29 11:15:49 +02:00
dependabot[bot] c0ce5b461f
Bump the github-actions-dependencies group across 1 directory with 2 updates (#13215)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-27 21:35:13 -03:00
Robert Silén e3245515e8
docs: note MariaDB support in README (#13238) 2026-05-27 17:13:11 -03:00
James Peru Mmbono 6786d45951
fix(linstor): surface ambiguous template fallbacks and legacy orphan cleanup (#13078)
Co-authored-by: jmsperu <jmsperu@users.noreply.github.com>
2026-05-27 14:09:32 +02:00
Fabricio Duarte 3f6866d70a
Refactor Quota balance (#12961) 2026-05-26 10:36:04 -03:00
GaOrtiga 7f849e9362
add GaOrtiga to colaborators (#13246) 2026-05-26 10:08:24 -03:00
dahn b16340399b fix: show re-enable 2FA button when is2faenabled is null/undefined
After disabling 2FA via setupUserTwoFactorAuthentication, the API may
return is2faenabled as null or undefined rather than boolean false.
The strict equality check (=== false) prevented the "Setup 2FA" button
from appearing in those cases, making it impossible to re-enable 2FA.

Change the check to a falsy check (!record.is2faenabled) so the button
is shown whenever 2FA is not enabled, regardless of whether the value
is false, null, or undefined.

Fixes: https://github.com/apache/cloudstack/issues/13233
2026-05-26 14:59:07 +02:00
Vishesh 583a1e0dfb
Refactor github actions (#12774) 2026-05-26 12:53:19 +02:00
dahn 2ae1015073
Add jmsperu to the list of contributors 2026-05-26 10:19:19 +02:00
Abhisar Sinha ea771a7013
Fix Instance Backup related events (#13180) 2026-05-26 10:12:03 +02:00
Vishesh a0aafe2fa7
Update bouncy castle (#12794)
Co-authored-by: Harikrishna Patnala <harikrishna.patnala@gmail.com>
2026-05-22 11:07:44 -03:00
Fabricio Duarte 67b849f3ef Merge release branch 4.22 to main
* 4.22:
      VM Deployment using snapshot in new zone (#13178)
      Change exception treatment on incremental snapshot wait (#12665)
      Move checkRoleEscalation outside DB transaction in createAccount (#13044)
      Fix/flasharray delete rename destroy patch conflict (#13049)
      Fix VPC network offerings listing in isolated network creation form (#12645)
      systemvm: accept ipv6 established/related return traffic (#13173)
      update debian change log
      Updating pom.xml version numbers for release 4.22.2.0-SNAPSHOT
      Updating pom.xml version numbers for release 4.22.1.0
      Update suse15 packaging spec, use qemu-ovmf-x86_64 package instead of edk2-ovmf for agent (#13133)
      Change disk-only VM snapshot removal message (#11182)
      Update mysql java connector version to 8.4.0 (matching version for MySQL 8.4) (#12640)
      adaptive: honor user-provided capacityBytes when provider stats are unavailable (#13059)
      Flexibilize public IP selection (#11076)
2026-05-22 10:37:13 -03:00
Fabricio Duarte 21b2025c50 Merge release branch 4.20 to 4.22
* 4.20:
  Fix/flasharray delete rename destroy patch conflict (#13049)
  Fix VPC network offerings listing in isolated network creation form (#12645)
  Update mysql java connector version to 8.4.0 (matching version for MySQL 8.4) (#12640)
  adaptive: honor user-provided capacityBytes when provider stats are unavailable (#13059)
  Flexibilize public IP selection (#11076)
2026-05-22 08:31:35 -03:00
Bernardo De Marco Gonçalves 6b831f5196
Live scaling for VMs with fixed service offerings on KVM (#12975) 2026-05-22 08:19:21 -03:00
James Peru Mmbono 850b44317a
fix(linstor): verify resource deletion completes; warn if stuck in DELETING (#13076)
Co-authored-by: jmsperu <jmsperu@users.noreply.github.com>
2026-05-21 16:57:33 +02:00
dahn d1e1aa5d20
VM Deployment using snapshot in new zone (#13178) 2026-05-21 14:36:22 +02:00
Vishesh 1fe486f493
Add ROOT CAs to the trust store and allow force provisioning of certs hosts & systemVMs via ssh (#12911) 2026-05-21 13:19:13 +05:30
Daman Arora a47091431a
Fix select search icon orientation in dropdown menu (#13170) 2026-05-20 16:10:01 +02:00
Davi Torres 3c1f03144f
Add null check for ApiKeyPair in getUserByApiKey (#12938)
Co-authored-by: dahn <daan.hoogland@gmail.com>
Co-authored-by: Bernardo De Marco Gonçalves <bernardomg2004@gmail.com>
2026-05-19 17:29:50 -03:00
João Jandre 35ac91e58b
Change exception treatment on incremental snapshot wait (#12665) 2026-05-19 17:24:32 -03:00
Nicolas Vazquez ca4645320e
Move checkRoleEscalation outside DB transaction in createAccount (#13044)
Co-authored-by: Aaron Chung <aaron_chung@apple.com>
2026-05-19 17:23:27 -03:00
Eugenio Grosso c267ad39bc
Fix/flasharray delete rename destroy patch conflict (#13049)
Signed-off-by: Eugenio Grosso <eugenio.grosso@gmail.com>
Co-authored-by: Eugenio Grosso <egrosso@purestorage.com>
2026-05-19 17:21:26 -03:00
Gabriel Pordeus Santos 38c001296a
Rename gpordeus collaborator to gp-santos (#13195) 2026-05-19 17:15:26 -03:00
Erik Böck c165806d3b
Fix VPC network offerings listing in isolated network creation form (#12645)
* Fix VPC network offerings listing in isolated network creation form

* Apply suggestions from code review

Co-authored-by: GaOrtiga <49285692+GaOrtiga@users.noreply.github.com>

* Address Bernardo's review

---------

Co-authored-by: GaOrtiga <49285692+GaOrtiga@users.noreply.github.com>
2026-05-19 12:42:29 -03:00
James Peru Mmbono 68221cf101
fix(linstor): pre-flight check destination is a LINSTOR satellite before live migration (#13077) 2026-05-19 16:31:58 +02:00
agronaught 3285e2fad8
systemvm: accept ipv6 established/related return traffic (#13173) 2026-05-19 12:10:02 +02:00
dahn 522283bdec
Refactor merge conflict checker workflow (#13183) 2026-05-19 13:31:07 +05:30
Tonitzpp 94d911be9a
Translation of missing labels to Portuguese (#12947)
Co-authored-by: toni.zamparetti <toni.zamparetti@scclouds.com.br>
2026-05-19 09:52:36 +02:00
Suresh Kumar Anaparti 4a49ffa9aa
update debian change log 2026-05-18 17:24:14 +05:30
Suresh Kumar Anaparti 79bb8ef1cc
Updating pom.xml version numbers for release 4.22.2.0-SNAPSHOT
Signed-off-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2026-05-18 17:17:25 +05:30
Fabricio Duarte 5893ba5a8c
server: Fix NPE when on findHostsForMigration when no suitable hosts are found (#13138) 2026-05-12 09:07:20 +02:00
Suresh Kumar Anaparti 348ce953a9
Updating pom.xml version numbers for release 4.22.1.0
Signed-off-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2026-05-11 20:26:07 +05:30
Suresh Kumar Anaparti a289bb0e6c
Update suse15 packaging spec, use qemu-ovmf-x86_64 package instead of edk2-ovmf for agent (#13133)
* Update qemu-ovmf-x86_64 package in agent for suse instead of edk2-ovmf for agent

* Maintain separate properties file for suse15 (UEFI properties are different for suse15)

* Maintain separate packaging spec for suse15
2026-05-11 20:15:16 +05:30
Abhishek Kumar e1521f139b
systemvmtemplate-register: correctly update existing template name in config (#12703) 2026-05-11 13:22:54 +02:00
João Jandre 470e95964b
Change disk-only VM snapshot removal message (#11182)
* fix message

* check for hypervisor

* fix function being executed once
2026-05-11 15:17:23 +05:30
Suresh Kumar Anaparti a4a52c9665
Merge branch '4.22' 2026-05-08 20:57:36 +05:30
Suresh Kumar Anaparti 4359198904
KVM Host HA improvements - Fix to not cancel VM HA items when Host HA inspection in progress, and some code improvements (#13088)
* Host HA code improvements

* Fix to not cancel VM HA items when Host HA is enabled & inspection in progress, and some code improvements

- When Host HA inspection in progress, the investigor returns the Host Status as Up which cancels the VM HA items
- Don't cancel the VM HA items, instead reschedule them to try again later

* Changes to consider Recovered/Available Host HA state along with the agent connection status to determine the Host HA inspection in progress or not, and some code improvements
2026-05-08 19:50:50 +05:30
Suresh Kumar Anaparti ddcc0c889d
Don't delete volume on store if it is not created or doesn't exist on it (#13111) 2026-05-08 12:20:06 +05:30
Manoj Kumar 72b99a3f8c
Make resource deletion safer with name confirmation (#13104)
* enable double confirmation in delete flow for resource

* address copilot comments
2026-05-08 10:56:50 +05:30
Manoj Kumar 4425ee4234
Remove unnecessary if-else branch in template permission validation (#12683)
* consolidate if-else branch
2026-05-07 21:37:31 -03:00
dahn f6efda50d2
Update .asf.yaml: Add ingox as collaborator(#12058) 2026-05-07 17:11:54 +02:00