Fix the incompatible system datastore by updating the VM creation workflow like follows:
1. Create all VMs on Hold
2. If we get a disk attachment request, update the SCHED_DS_REQUIREMENT from the VM to
match the TM_MAD from the uploaded image and deploy the VM (still without disk).
Afterwards, attach the disk and leave the VM deployed (in poweroff state)
3. If we get a nic attachment request and the VM is still undeployed, deploy it, attach the NIC and then undeploy.
Additionally, removed the OG_ID logic from disks, as it was a legacy part from the early days of the integration. No longer needed.
Pause the source VM and flush its disks before destination activation.
Keep the destination suspended until source volumes and thin pools are
deactivated, and resume the source after destination cleanup on failure.
Coordinate cleanup across disk drivers before resuming mixed-driver VMs.
Preserve existing behavior for linear volumes and datastore migrations.
(cherry picked from commit 2a8b03ccbcfafecd6cdf0c33561479cd0e2a1aa8)
The oVirt API server no longer runs under Apache/Passenger but as a
dedicated opennebula-ovirtapi.service on top of Puma (from
opennebula-rubygems), listening on ports 80/443 as oneadmin with
CAP_NET_BIND_SERVICE:
- share/pkgs/services/systemd/opennebula-ovirtapi.service
- etc/ovirtapi-puma.rb: Puma configuration (threads, binds, TLS cert),
installed to /etc/one
- config.ru: the HTTP to HTTPS redirect (except for the PKI resource)
that the Apache vhost used to do is now a Rack middleware
- logs go to /var/log/one/ovirtapi.log, logrotate entry added
The PStore databases are opened thread safe, Puma serves requests from
multiple threads (Passenger used one process per request).
Apache/Passenger only files (apache/, bin/, scripts/configure_apache.sh)
are dropped and config/ is renamed to etc/. Certificate generation is
unchanged.
Pause the VM and flush its LVM disks before destination activation.
Deactivate source storage before resuming the destination, and restore
source operation when migration or destination network setup fails.
co-auuthored-by: MarioRobres <mrobres@opennebula.io>
- Fixes host allocated-capacity editing so values above the current physical capacity can be entered manually.
- Keeps the visual slider constrained to its displayed range while allowing the numeric input to represent overcommit values.
(cherry picked from commit 6111f4e5403779335f70308fa5e94390f9076113)
- Adds `Dummy Bridged` and `Custom` network driver support to the Virtual Network and Virtual Network Template forms.
- Builds the available driver list from `VN_MAD_CONF`, while always exposing the generic custom-driver option.
- Preserves unknown or custom `VN_MAD` values when loading, editing, creating, or instantiating resources.
- Fixes the **Cluster** column in the OneKE Node Groups VM table.
- Resolves each VM cluster ID to its corresponding cluster name before rendering the table.
- Adds federation-aware CLI execution for Marketplace application exports and imports by forwarding the selected zone endpoint and authenticated credentials.
- Hardens Guacamole SSH tunnels by removing `bash -c`, validating forwarding destinations, and correctly formatting IPv6 addresses.
- Improves SSH tunnel startup handling by tracking the real SSH process, detecting early failures, and reporting stderr output.
- Improves failed LDAP login feedback by distinguishing invalid credentials from unreachable LDAP servers.
- Checks the LDAP endpoints selected for the user and returns HTTP 503 with the affected endpoints when none are reachable.
- Preserves the existing unauthorized response when LDAP is reachable, the user does not use the LDAP driver, or the connectivity check cannot be completed.
Allow PCI requests to select an available VF using PF_IFNAME or
PF_ADDRESS. Reserve fixed PCI addresses before PF and generic selectors
to keep availability checks and allocation consistent.
Monitor PF/VF relationships and eswitch mode, refresh PCI network
metadata, and prevent passthrough of PFs with enabled VFs. Preserve
compatibility with older probes.
Expose PF interface selection and VF availability in Sunstone, preserve
selectors when editing templates, and update the host XML schema.
co-authored-by: Victor Hansson <vhansson@opennebula.io>
co-authored-by: Daniel Clavijo Coca <dclavijo@opennebula.io>
Added BRIDGE=switchdev to automatically create and reuse an OVS bridge named <PF-interface>br, connecting the selected VF’s representor and parent PF. The implementation checks for:
* consistent keyword casingrequires
* requires VN_MAD=ovswitch and PCI/TYPE=NIC
* validates switchdev support, PF membership and representor availability
The driver handles activation, updates, and hot-attach.
Add STORAGE_WEIGHT to cluster DRS configuration and expose it in
Sunstone's configuration form and DRS tab. Normalize the weight and
map it to the optimizer's storage_space balancing criterion.
Account for storage occupied outside the considered VMs when computing
utilization of shared and local system datastores.