generate_netplan
This commit is contained in:
parent
e47a390769
commit
d1833c12f4
|
|
@ -58,11 +58,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$secondary_mode = in_array($get('secondary_mode'), ['dhcp', 'static', 'disabled']) ? $get('secondary_mode') : 'dhcp';
|
$secondary_mode = in_array($get('secondary_mode'), ['dhcp', 'static', 'disabled']) ? $get('secondary_mode') : 'dhcp';
|
||||||
$secondary_modev6 = in_array($get('secondary_ipv6'), ['auto', 'dhcpv6', 'static', 'disabled']) ? $get('secondary_ipv6') : 'auto';
|
$secondary_modev6 = in_array($get('secondary_ipv6'), ['auto', 'dhcpv6', 'static', 'disabled']) ? $get('secondary_ipv6') : 'auto';
|
||||||
|
|
||||||
error_log("primary_mode :- " . $primary_mode);
|
|
||||||
error_log("primary_modev6:- " . $primary_modev6);
|
|
||||||
error_log("secondary_mode:- " . $secondary_mode);
|
|
||||||
error_log("secondary_modev6:- " . $secondary_modev6);
|
|
||||||
|
|
||||||
$network_primary_ip = $get('network_primary_ip');
|
$network_primary_ip = $get('network_primary_ip');
|
||||||
$network_primary_gateway = $get('network_primary_gateway');
|
$network_primary_gateway = $get('network_primary_gateway');
|
||||||
$network_primary_vlan = $get('network_primary_vlan');
|
$network_primary_vlan = $get('network_primary_vlan');
|
||||||
|
|
|
||||||
|
|
@ -157,15 +157,10 @@ function generate_netplan(array $data, string $iface): array
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
/* ---------- PRIMARY ---------- */
|
if ($data['primary']['mode'] !== 'disabled') {
|
||||||
if (
|
|
||||||
$data['primary']['mode'] !== 'disabled' ||
|
|
||||||
$data['primary']['modev6'] !== 'disabled'
|
|
||||||
) {
|
|
||||||
$vlan = trim($data['primary']['network_primary_vlan'] ?? '');
|
$vlan = trim($data['primary']['network_primary_vlan'] ?? '');
|
||||||
|
|
||||||
if ($vlan !== '') {
|
if ($vlan !== '') {
|
||||||
/* VLAN configuration */
|
|
||||||
$netplan['network']['ethernets'][$iface] = new stdClass();
|
$netplan['network']['ethernets'][$iface] = new stdClass();
|
||||||
|
|
||||||
$netplan['network']['vlans']["{$iface}.{$vlan}"] =
|
$netplan['network']['vlans']["{$iface}.{$vlan}"] =
|
||||||
|
|
@ -174,20 +169,27 @@ function generate_netplan(array $data, string $iface): array
|
||||||
build_interface($data['primary'], 'primary')
|
build_interface($data['primary'], 'primary')
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
/* NO VLAN → configure base NIC */
|
|
||||||
$netplan['network']['ethernets'][$iface] =
|
$netplan['network']['ethernets'][$iface] =
|
||||||
build_interface($data['primary'], 'primary');
|
build_interface($data['primary'], 'primary');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($data['primary']['modev6'] !== 'disabled') {
|
||||||
|
$vlan = trim($data['primary']['network_primary_ipv6_vlan'] ?? '');
|
||||||
|
|
||||||
/* ---------- SECONDARY (only if primary not configured on base) ---------- */
|
if ($vlan !== '') {
|
||||||
if (
|
$netplan['network']['ethernets'][$iface] = new stdClass();
|
||||||
!isset($netplan['network']['ethernets'][$iface]) &&
|
|
||||||
(
|
$netplan['network']['vlans']["{$iface}.{$vlan}"] =
|
||||||
$data['secondary']['mode'] !== 'disabled' ||
|
array_merge(
|
||||||
$data['secondary']['modev6'] !== 'disabled'
|
['id' => (int)$vlan, 'link' => $iface],
|
||||||
)
|
build_interface($data['primary'], 'primary')
|
||||||
) {
|
);
|
||||||
|
} else {
|
||||||
|
$netplan['network']['ethernets'][$iface] =
|
||||||
|
build_interface($data['primary'], 'primary');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($data['secondary']['mode'] !== 'disabled') {
|
||||||
$vlan = trim($data['secondary']['network_secondary_vlan'] ?? '');
|
$vlan = trim($data['secondary']['network_secondary_vlan'] ?? '');
|
||||||
|
|
||||||
if ($vlan !== '') {
|
if ($vlan !== '') {
|
||||||
|
|
@ -199,17 +201,29 @@ function generate_netplan(array $data, string $iface): array
|
||||||
build_interface($data['secondary'], 'secondary')
|
build_interface($data['secondary'], 'secondary')
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
/* NO VLAN → configure base NIC */
|
|
||||||
$netplan['network']['ethernets'][$iface] =
|
$netplan['network']['ethernets'][$iface] =
|
||||||
build_interface($data['secondary'], 'secondary');
|
build_interface($data['secondary'], 'secondary');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($data['secondary']['modev6'] !== 'disabled') {
|
||||||
|
$vlan = trim($data['secondary']['network_secondary_ipv6_vlan'] ?? '');
|
||||||
|
|
||||||
/* Normalize vlans */
|
if ($vlan !== '') {
|
||||||
|
$netplan['network']['ethernets'][$iface] = new stdClass();
|
||||||
|
|
||||||
|
$netplan['network']['vlans']["{$iface}.{$vlan}"] =
|
||||||
|
array_merge(
|
||||||
|
['id' => (int)$vlan, 'link' => $iface],
|
||||||
|
build_interface($data['secondary'], 'secondary')
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$netplan['network']['ethernets'][$iface] =
|
||||||
|
build_interface($data['secondary'], 'secondary');
|
||||||
|
}
|
||||||
|
}
|
||||||
if (empty($netplan['network']['vlans'])) {
|
if (empty($netplan['network']['vlans'])) {
|
||||||
$netplan['network']['vlans'] = new stdClass();
|
$netplan['network']['vlans'] = new stdClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $netplan;
|
return $netplan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue