Commit Graph

4866 Commits

Author SHA1 Message Date
Abhishek Kumar a89f872b4f wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-04-09 10:22:35 +05:30
Abhisar Sinha 586134d392 Support file backend for cow format: api and server 2026-04-09 10:21:47 +05:30
Abhishek Kumar a3669298af worker vm deployment wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-04-09 10:19:16 +05:30
Wei Zhou ca4112e7d0 api/server: create dummy KVM VM without volume and network is optional 2026-04-09 10:17:56 +05:30
Abhisar Sinha 2350661ee3 Added progress to upload Image Transfers 2026-04-09 10:14:19 +05:30
Abhishek Kumar 7b45d2e118 wip: changes for imagetransfer handling
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-04-09 10:13:26 +05:30
Abhisar Sinha 10f65b67d7 image upload working 2026-04-09 10:13:26 +05:30
Abhisar Sinha 5389fe60aa Image server with disk upload 2026-04-09 10:13:24 +05:30
abh1sar 73df3cbef7 Create volume on the given storage pool 2026-04-09 10:12:15 +05:30
Abhisar Sinha f396c5cc74 Basic working version-1 2026-04-09 10:12:11 +05:30
julien-vaz 4f93ba888c
Refactor Quota Summary API (#10505)
* Refactor Quota Summary API

* Fixes imports

* Fix QuotaServiceImplTest

* Update plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java

Co-authored-by: Fabricio Duarte <fabricio.duarte.jr@gmail.com>

* Fix QuotaSummaryCmd

* Remove unnecessary imports

* Remove unused createQuotaSummaryResponse declarations

* Remove unnecessary imports

* Update plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java

Co-authored-by: dahn <daan.hoogland@gmail.com>

* Fix QuotaSummaryCmd

* Fix QuotaResponseBuilderImplTest

* Refactor test

* Fix QuotaSummaryCmd

* Fix projectid behavior

* Simplify QuotaSummary and deprecate listall

* Fix createQuotaSummaryResponse

* Remove unused import

* Apply suggestions + some adjustments

* Remove duplicated check

* Fix checkstyle

* Adjust entity owner

* Remove unused method + fix tests

* Add missing @ACL to some parameters

* Adjust how the parameters behave

* Allow domain admins and users to use keyword

* Address reviews

---------

Co-authored-by: Julien Hervot de Mattos Vaz <julien.vaz@scclouds.com.br>
Co-authored-by: Fabricio Duarte <fabricio.duarte.jr@gmail.com>
Co-authored-by: dahn <daan.hoogland@gmail.com>
2026-03-31 20:29:30 -03:00
Henrique Sato 7eea9ed448
Add API to enable/disable NICs for KVM (#12819) 2026-03-31 10:14:20 +02:00
Suresh Kumar Anaparti 1bff543e58
Merge branch '4.22' 2026-03-27 01:25:42 +05:30
Suresh Kumar Anaparti 7c3637a2f5
Fix duplicate dummy templates, and update guest os for dummy template (#12780)
* Fix duplicate dummy template 'kvm-default-vm-import-dummy-template' entries

* Update guest os id of dummy template to 99 (Other Linux (64-bit)) from existing id: 1 (CentOS 4.5 (32-bit))

* update migration path to remove duplicate dummy templates
2026-03-24 18:01:26 +05:30
Nicolas Vazquez 7107d28db8
[VMware to KVM] Add guest OS for importing VM based on the source VM OS (#12802) 2026-03-24 15:06:38 +05:30
Suresh Kumar Anaparti bce55945ec
Mark VMs in error state when expunge fails during destroy operation (#12749)
* Mark VMs in error state when expunge fails during destroy operation

* fetch volume by external id (used by external plugins)

* review comments

* Update reorder hosts log to DEBUG, log line is too verbose to have on as INFO
2026-03-24 00:29:14 -03:00
Fabricio Duarte f333134456 Address merge issues 2026-03-17 19:28:16 -03:00
João Jandre 24fd440ee7 Fix create VM from backup 2026-03-17 17:14:26 +01:00
João Jandre 8ce1c9876e fix restore volume from backup and attach 2026-03-17 17:14:05 +01:00
Manoj Kumar e93ae1a4f4
New config key "allow.import.volume.with.backing.file" to skip volume backing (#12809)
* Added support for skipping volume backing when importing unmanaged volumes and VMs. This allows users to import volumes and VMs without creating a backing volume, which can be useful in certain scenarios where the backing volume is not needed or desired.

* cleanup conflicting key

* move configkey into VolumeImportUnmanageService

---------

Co-authored-by: rajujith <rajujith@gmail.com>
2026-03-17 11:34:34 -03:00
Fabricio Duarte 9c0c8da706 [22.0] Address limit checks for VM, CPU, memory, volume, and primary storage 2026-03-17 15:10:33 +01:00
Pearl Dsilva 3bd5410f9a
Add support to clone existing offerings and update them (#12357)
* Add support to clone existing offerings and update them

* add support for vpc & backup offerings to be cloned

* fix capability list and mapping of params

* Add support to clone network and vpc offering with the right parameters

* make fields non mandatory for clone offerings APIs

* Add UI support for cloning Compute and System Service offerings

* remove unnecessary changes

* fix license and pre-ccommit issues

* Add UI support to clone disk and network offering

* vpc & backup offering clone api

* add unit tests

* fix pre-commit checks

* increase test coverage

* combine add/clone disk/compute offering forms

* update license

* fix unit tests

* fix test failures

* fix test failure - unnecessary stubbings

* pre-commit check failure

* add recently added domain id for bkp offering to be inherited in clone operation

* extract common code wrt service capability in network & vpc offering in add/clone operations

* add some checks to prevent networkmode change when provider is nsx/netris from the source networkmode

* address copilot comments

* address comments

* combine check

* use appropriate zoneId during clone bkp offering

* add check

* fix issue with test

* remove unused imports

* prevent creating a bkp offering of a bkp repo that already exists

* extend clone disk and service offerings to domain admins
2026-03-17 12:01:43 +05:30
Nicolas Vazquez 93239e09f1
Add conserve mode for VPC offerings (#12487) 2026-03-16 09:39:42 +01:00
Daman Arora 8c579538f9
CKS: Allow affinity group selection during cluster creation (#12386)
Co-authored-by: Daman Arora <daman.arora@shapeblue.com>
2026-03-13 10:58:55 +01:00
abh1sar 4855d40e6e [22.0] secondary storage resource limit for download 2026-03-13 10:01:41 +01:00
Wei Zhou 2359061f66
api: remove required flag of gatewayid in CreateStaticRouteCmd (#12786) 2026-03-12 13:42:09 +05:30
Davi Torres faaf7669c5
Update isolation methods description for physical network (#12759) 2026-03-10 14:45:42 +01:00
Klaus de Freitas Dornsbach 74af9b9875
API key pair restructure (#9504)
Co-authored-by: Bernardo De Marco Gonçalves <bernardomg2004@gmail.com>
2026-03-09 14:20:17 +01:00
Suresh Kumar Anaparti 75620309c2
Merge branch '4.22' 2026-03-04 21:13:01 +05:30
Suresh Kumar Anaparti 65e54091ff
Merge branch '4.20' into 4.22 2026-03-04 21:12:15 +05:30
Suresh Kumar Anaparti 56dc11980f
test_accounts.py failure fix - keep the camelCase parameter "domainId" (#12689) 2026-02-27 11:36:18 +01:00
Abhishek Kumar 95816b44e9 extensions: allow reserved resource details
Adds a new request parameter for create/updateExtension API to allow
operator to provide detail names for the extension resources which will be reserved to be used by the extension. The end user won't be able to view or add details with these details names for the resource.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-02-22 18:08:03 +01:00
Abhisar Sinha 7703fdacab [minio] Handle user's canned policy when a bucket is deleted 2026-02-22 16:20:58 +01:00
Daniel Augusto Veronezi Salvador 1f849caa0b [22.0] resource reservation on volume creation 2026-02-22 16:17:26 +01:00
Daniel Augusto Veronezi Salvador 37e3657770 [22.0] resource allocation 2026-02-22 15:41:13 +01:00
Suresh Kumar Anaparti 30e6c224bd
Merge branch '4.22' 2026-02-19 13:20:04 +05:30
Suresh Kumar Anaparti 5caf6cd043
Merge branch '4.20' into 4.22 2026-02-19 13:19:14 +05:30
Suresh Kumar Anaparti 9dd93cef76
Support for custom SSH port for KVM hosts from the host url on add host and the configuration (#12571) 2026-02-18 20:05:51 +01:00
Manoj Kumar c79b33c1fb
Allow enforcing password change for a user after reset by admin (root/domain) (#12294)
* API modifications for passwordchangerequired

* ui login flow for passwordchangerequired

* add passwordchangerequired in listUsers API response, it will be used in UI to render reset password form

* cleanup redundant LOGIN_SOURCE and limiting apis for first time login

* address copilot comments

* allow enforcing password change for all role types and update reset pwd flow for passwordchangerequired

* address review comments

* add unit tests

* cleanup ispasswordchangerequired from user_view

* address review comments

* 1. Allow enforcing password change while creating user
2. Admin can enforce password change on next login with out resetting password

* address review comment, add unit test

* improve code coverage

* fix pre-commit license issue

* 1. allow enter key to submit change password form
2. hide force password reset for disabled/locked user in ui

* 1. throw exception when force reset password is done for locked/disabled user/account
2. ui validation on current and new password being same
3. allow enforce change password for add user until saml is not enabled

* allow oauth login to skip force password change
2026-02-16 16:01:42 +05:30
Daan Hoogland d3e1976912 Merge release branch 4.22 to main
* 4.22:
  Fixes issue with loading Capacity dashboard when mulitple backup providers configured (#12550)
2026-02-09 13:06:28 +01:00
Daan Hoogland 7324ef45d4 Merge branch '4.20' into 4.22 2026-02-09 13:05:08 +01:00
Pearl Dsilva a0f35a186d
Fixes issue with loading Capacity dashboard when mulitple backup providers configured (#12550) 2026-02-09 12:12:28 +01:00
Daan Hoogland e929f2024a Merge branch '4.22' 2026-02-05 16:07:46 +01:00
Daan Hoogland cd6a8f61ca Merge branch '4.20' into 4.22 2026-02-05 15:32:36 +01:00
Erik Böck e32d08e50e
Create new generic method for resource UUID obtention in event's descriptions (#12502) 2026-02-05 11:23:40 +01:00
Suresh Kumar Anaparti ce42ce54c2
Fix template details deletion while updating template from UI (#12559)
* Fix template details deletion while updating template from UI

* update the latest template details before submit
2026-02-03 14:21:43 +05:30
Wei Zhou b869913529
noVNC: support Spanish Latin American keyboard on VMware (#12484)
* noVNC: support Spanish Latin American keyboard

* Update server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
2026-02-02 15:16:54 +05:30
Suresh Kumar Anaparti a5b6bc3be6
Merge branch '4.22' 2026-01-30 21:15:58 +05:30
Suresh Kumar Anaparti 30d306622a
Merge branch '4.20' into 4.22 2026-01-30 21:15:21 +05:30
Abhishek Kumar 18972caf5f
api,server: allow cleaning up vm extraconfig (#11974) 2026-01-30 13:54:01 +05:30
dahn 25eacaa1ff
set `displayName` to `name` by default (#9719)
* set `desplayName` to `name` by default

* list by displayname instead of name

* back to using name

* Update api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java

---------

Co-authored-by: Daan Hoogland <dahn@apache.org>
2026-01-30 13:03:21 +05:30
Abhishek Kumar bb8e7d39e6
api,server: allow configuring repetitive alerts (#11325)
* api,server: allow configuring repetitive alerts

Fixes #6613

Introduces support for configuring additional alert types that can be published repeatedly, beyond the default set.

Operators can now use the dynamic configuration `alert.allowed.repetitive.types` to specify a comma-separated list of alert type names that should be allowed for repetitive publication.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add tests

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* test fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* allow repetition for custom alerts

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* remove refactoring

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

---------

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-01-30 08:41:25 +02:00
Suresh Kumar Anaparti a55f85af50
Merge branch '4.22' 2026-01-29 15:55:03 +05:30
Suresh Kumar Anaparti d700e2db64
Merge branch '4.20' into 4.22 2026-01-29 15:51:58 +05:30
Abhishek Kumar 9b4f16b73f
api,server: apis return their http request type (#11382)
* api,server: apis return their http request type

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix and unit test

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* more test

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* address copilot

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* Update plugins/api/discovery/src/main/java/org/apache/cloudstack/api/response/ApiDiscoveryResponse.java

---------

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: dahn <daan@onecht.net>
Co-authored-by: Harikrishna <harikrishna.patnala@gmail.com>
2026-01-29 13:52:07 +05:30
Manoj Kumar a8f1e4a5ba
import network acl rules using csv (#12013) 2026-01-29 09:10:28 +01:00
Suresh Kumar Anaparti 65e9bebc69
Show parent snapshot (along with the chain size) for incremental snapshots (#12468)
* Show parent snapshot (along with the chain size) for incremental snapshots

* review

* review changes
2026-01-29 08:16:10 +02:00
Abhishek Kumar 69c69dc537
server,engine-schema: make config - use.https.to.upload zone scoped (#11539) 2026-01-28 13:23:39 +01:00
Suresh Kumar Anaparti 83ce0067b8
Update the snapshot physical size for the primary storage resource after snapshot creation and during resource count recalculation (#12481)
* Update snapshot size for the primary storage resource after snapshot creation and during resource count recalculation

* Update snapshot physical size

* review

* review
2026-01-28 13:07:57 +02:00
Suresh Kumar Anaparti ff7ec0cd22
Update alert id for VR public and private interface (#12527) 2026-01-28 11:45:48 +01:00
Harikrishna 6932cacabc
Allow copy of templates from secondary storages of other zone when adding a new secondary storage (#12296)
* Allow copy of templates from secondary storages of other zone when adding a new secondary storage

* Add API param and UI changes on add secondary storage page

* Make copy template across zones non blocking

* Code fixes

* unused imports

* Add copy template flag in zone wizard and remove NFS checks

* Fix UI

* Label fixes

* code optimizations

* code refactoring

* missing changes

* Combine template copy and download into a single asynchronous operation

* unused import and fixed conflicts

* unused code

* update config message

* Fix configuration setting value on add secondary storage page

* Removed unused code

* Update unit tests
2026-01-28 16:00:30 +05:30
Daan Hoogland cb822feb72 Merge branch '4.22' 2026-01-27 16:21:59 +01:00
Daan Hoogland 75db42bca6 Merge branch '4.20' into 4.22 2026-01-27 15:23:23 +01:00
Erik Böck cd2d71104e
Implement SSVM storage network IP to API response and GUI details tab (#11979)
* Implement SSVM storage network IP to API response and GUI details tab

* remove network mention from attribute name

* remove network from serialized name

* fix parameter name in the UI
2026-01-27 17:29:06 +05:30
Pearl Dsilva ca5232778d
CKS: Use Zone MTUs when network is created at the time of CKS cluster creation (#12228) 2026-01-27 12:04:18 +01:00
Erik Böck 416568a373
Fix typo in finalyzeAccountId (#11990)
* Fix typo in finalyzeAccountId

* fix tests
2026-01-27 16:17:14 +05:30
Abhishek Kumar ac2242ece2
api,server,ui: support tags for domains (#11964)
* api,server,ui: support tags for domains

Fixes #11608

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* address copilot comment

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix import

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* Added tags support to listDomains API

---------

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Harikrishna Patnala <harikrishna.patnala@gmail.com>
2026-01-27 14:37:51 +05:30
Nicolas Vazquez ff0cfc9148
Add ability to filter by version for listHosts and listMgmtServers APIs (#12472)
* Add ability to filter by version for listHosts and listMgmtServers APIs

* Address review comment

* Fix listMgmtServers API
2026-01-27 12:45:46 +05:30
Bernardo De Marco Gonçalves 9b0c28c16d
fix regression in the listBackupSchedules API (#12402) 2026-01-26 15:00:53 -05:00
Wei Zhou 63c8b5fc56
api/server: support deploy-as-is template as VNF template (#12499) 2026-01-26 15:23:27 +01:00
Daan Hoogland e3999923a7 Merge release branch 4.22 to main
* 4.22:
  fix install path for systemvm templates when introducing new sec storage (#11605)
  fix Sensitive Data Exposure Through Exception Logging in OVM Hypervis… (#12032)
  Fix snapshot physical size after migration (#12166)
  ConfigDrive: use file absolute path instead of canonical path to create ISO (#11623)
  Add log for null templateVO (#12406)
  snapshot: fix listSnapshots for volume which got delete and whose storage pool got deleted (#12433)
  Notify user if template upgrade is not required (#12483)
  Fix: proper permissions for systemvm template registrations on hardened systems (#12098)
  Allow modification of user vm details if user.vm.readonly.details is empty (#10456)
  NPE fix while deleting storage pool when pool has detached volumes (#12451)
2026-01-26 13:32:56 +01:00
Daan Hoogland edb62b490c Merge branch '4.20' into 4.22 2026-01-26 13:30:26 +01:00
Pearl Dsilva 4adb719570
Allow modification of user vm details if user.vm.readonly.details is empty (#10456) 2026-01-26 11:18:12 +02:00
Suresh Kumar Anaparti 4bcf3ea57d
Merge branch '4.22' 2026-01-26 12:46:54 +05:30
Suresh Kumar Anaparti 000919d6e5
Merge branch '4.20' into 4.22 2026-01-26 12:46:09 +05:30
Manoj Kumar 8db065a14e
limit iso filename to have 251 chars at max (#12430) 2026-01-23 16:34:52 +01:00
Nicolas Vazquez 6a9835904c
Fix for zoneids parameters length on updateAPIs (#12440) 2026-01-22 14:57:46 +01:00
Nicolas Vazquez 6846619a6f
Fix update network offering domainids size limitation (#12431) 2026-01-22 14:32:46 +01:00
Suresh Kumar Anaparti 420bf6dff8
Merge branch '4.22' 2026-01-22 13:24:08 +05:30
Suresh Kumar Anaparti b1f870ae83
Merge branch '4.20' into 4.22 2026-01-22 13:23:21 +05:30
Vitor Hugo Homem Marzarotto 2a6ce0c8a8
Adds url kubernetes iso (#10862)
Co-authored-by: Vitor Hugo Homem Marzarotto <vitor.marzarotto@scclouds.com.br>
Co-authored-by: Henrique Sato <henriquesato2003@gmail.com>
2026-01-20 08:10:42 +01:00
Pearl Dsilva 8b2f1f19c2
Support dedicating backup offerings to domains (#12194)
* Add support for dedicating backup offerings to domains

* Add tests and UI support and update response params

* add license header

* exclude backupofferingdetailsvo from sonar

* fix pre-commit checks - missing / extra EOF line

* add test

* EOF

* filter backup offerings by domain id

* add unit tests

* add more unit tests and remove response file from code coverage check

* update checks

* address review comments: extract common code, fix tests

* added bean definition

* address comments

* add unit tests to increase coverage

* pre-commit check failure fix

* address merge issue

* allow updating backup offering when only domain id is modified
2026-01-19 14:21:47 +05:30
Abhisar Sinha 002d9768b2
Add settings to mark cryptographic algorithms in vpn customer gateways as excluded or obsolete (#12193)
This PR introduces several configuration settings using which an operator can mark certain cryptographic algorithms and parameters as excluded or obsolete for VPN Customer Gateway creation for Site-to-Site VPN.

Cloud providers following modern security frameworks (e.g., ISO 27001/27017) are required to enforce and communicate approved cryptographic standards. CloudStack currently accepts several weak or deprecated algorithms without guidance to users. This PR closes that gap by giving operators explicit control over what is disallowed vs discouraged, improving security posture without breaking existing deployments.

These settings are:

1. vpn.customer.gateway.excluded.encryption.algorithms
2. vpn.customer.gateway.excluded.hashing.algorithms
3. vpn.customer.gateway.excluded.ike.versions
4. vpn.customer.gateway.excluded.dh.group
5. vpn.customer.gateway.obsolete.encryption.algorithms
6. vpn.customer.gateway.obsolete.hashing.algorithms
7. vpn.customer.gateway.obsolete.ike.versions
8. vpn.customer.gateway.obsolete.dh.group
2026-01-19 13:18:37 +05:30
Suresh Kumar Anaparti 507c4cd128
Merge branch '4.22' 2026-01-15 10:09:09 +05:30
Suresh Kumar Anaparti b5fd39fca0
Merge branch '4.20' into 4.22 2026-01-15 10:08:27 +05:30
Suresh Kumar Anaparti 6a324da27a
MAC address assignment improvements (#12349) 2026-01-13 13:56:39 +01:00
Suresh Kumar Anaparti b8813c7b24
UI: Add info for 'Use primary storage replication' in snapshot view(s) (#11943) 2026-01-12 16:50:15 +05:30
Daan Hoogland 2811217578 Merge branch '4.22' 2026-01-09 15:00:05 +01:00
Daan Hoogland e25cf437c0 Merge branch '4.20' into 4.22 2026-01-09 14:28:12 +01:00
Abhishek Kumar ef1aaa0551
kvm: allow skip forcing disk controller (#11750) 2026-01-09 13:56:39 +01:00
Erik Böck 1ef6365771
Change internal ID to UUID in user disable event (#11824) 2026-01-09 09:23:46 +01:00
Abhishek Kumar eedd32971f
Merge remote-tracking branch 'apache/4.22' 2026-01-07 13:11:55 +05:30
Suresh Kumar Anaparti 2d4b7ba357
Add mountopts to backup repository response (#12360) 2026-01-06 12:08:18 +05:30
Abhishek Kumar cd55796972
webhook: fixes, filter enhancement (#12023)
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-01-05 09:12:06 +01:00
Tonitzpp 46cb805c90
Removal of internal ID in backup event descriptions (#12197) 2025-12-30 09:37:09 +01:00
Suresh Kumar Anaparti 40d21f093f
Merge branch '4.22' 2025-12-29 13:37:12 +05:30
Suresh Kumar Anaparti 6a2d91ed8a
Merge branch '4.20' into 4.22 2025-12-29 13:21:17 +05:30
Abhishek Kumar 432a3065bc
api: fix response annotation for createBackupSchedule (#11950)
Currently, `createBackupSchedule` API documentation wrongly specifies
BackupResponse as the API response.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2025-12-24 16:20:40 +01:00
Manoj Kumar e0c13cc3ec
Cleanup userconcentratedpod_random and userconcentratedpod_firstfit allocation algorithms (#12233)
* Cleanup userconcentratedpod_random and userconcentratedpod_firstfit allocation algorithm

* use firstfit instead of random for userconcentratedpod_firstfit
2025-12-22 14:25:33 +01:00
Daan Hoogland 22da57f922 Merge branch '4.22' 2025-12-22 14:13:50 +01:00