feat: add LXC container support to Proxmox extension
- Add is_lxc boolean column to ext_proxmox_nodes (default false, existing nodes unaffected) - Add LXC checkbox to admin node creation form (disabled on edit) - Dynamic API path selection via Node::vmType() (returns 'lxc' or 'qemu') - LXC deployment: syncLxcSettings() for cores, memory, swap, hostname, rootfs, net config - LXC network uses name=eth0 format with applyLxcPoolSettings() for VLAN/firewall/MTU - All lifecycle operations LXC-aware: install, suspend, unsuspend, terminate, upgrade, reinstall - VNC/xterm console uses correct type (lxc vs kvm) - All 20+ Livewire components use vmType() for Proxmox API paths - LXC user interface shows basic-only view (no advanced toggle, no KVM-specific tabs) - Basic tabs for LXC: Overview, Network Configuration, Backups, Console
This commit is contained in:
@@ -102,7 +102,7 @@ class BootOrder extends Component
|
||||
if (empty($this->order)) {
|
||||
// Delete the boot order parameter to reset to default
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
'delete' => 'boot',
|
||||
@@ -111,7 +111,7 @@ class BootOrder extends Component
|
||||
$this->notify('Boot order reset to default. The new sequence will be used on the next power event.', 'success');
|
||||
} else {
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
'boot' => 'order=' . implode(';', $this->order),
|
||||
@@ -140,7 +140,7 @@ class BootOrder extends Component
|
||||
|
||||
// Fetch current VM config to check slot occupancy (rawConfig is protected and not persisted between requests)
|
||||
try {
|
||||
$currentConfig = $proxmox->request('/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config')->json()['data'] ?? [];
|
||||
$currentConfig = $proxmox->request('/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config')->json()['data'] ?? [];
|
||||
} catch (\Exception $e) {
|
||||
$this->notify('Failed to fetch VM configuration: ' . $e->getMessage(), 'error');
|
||||
return;
|
||||
@@ -169,7 +169,7 @@ class BootOrder extends Component
|
||||
// Try to create the drive on this slot
|
||||
try {
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
$ideSlot => 'none,media=cdrom',
|
||||
@@ -206,7 +206,7 @@ class BootOrder extends Component
|
||||
// Try to create the drive on this slot
|
||||
try {
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
$sataSlot => 'none,media=cdrom',
|
||||
@@ -251,7 +251,7 @@ class BootOrder extends Component
|
||||
try {
|
||||
$proxmox = new Proxmox;
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
'delete' => $drive,
|
||||
@@ -308,7 +308,7 @@ class BootOrder extends Component
|
||||
try {
|
||||
$proxmox = new Proxmox;
|
||||
$proxmox->request(
|
||||
'/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config',
|
||||
'/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config',
|
||||
'put',
|
||||
[
|
||||
$targetDrive => $value,
|
||||
@@ -361,7 +361,7 @@ class BootOrder extends Component
|
||||
{
|
||||
try {
|
||||
$proxmox = new Proxmox;
|
||||
$config = $proxmox->request('/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config')->json()['data'] ?? [];
|
||||
$config = $proxmox->request('/nodes/' . $this->server->node->name . '/' . $this->server->node->vmType() . '/' . $this->server->vm_id . '/config')->json()['data'] ?? [];
|
||||
|
||||
$this->rawConfig = $config;
|
||||
$this->availableDevices = $this->extractBootableDevices($config);
|
||||
|
||||
Reference in New Issue
Block a user