validate_config
This commit is contained in:
parent
1af9bb484c
commit
592beb0a3c
|
|
@ -184,7 +184,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||
}
|
||||
}
|
||||
|
||||
file_put_contents('/var/www/50-cloud-init.yaml', netplan_yaml(generate_netplan($data, $iface)));
|
||||
if (validate_config($data)) {
|
||||
file_put_contents('/var/www/50-cloud-init.yaml', netplan_yaml(generate_netplan($data, $iface)));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -148,7 +148,6 @@ function build_interface(array $cfg, string $type): array
|
|||
|
||||
function generate_netplan(array $data, string $iface): array
|
||||
{
|
||||
validate_config($data);
|
||||
|
||||
$netplan = [
|
||||
'network' => [
|
||||
|
|
@ -201,7 +200,7 @@ function generate_netplan(array $data, string $iface): array
|
|||
return $netplan;
|
||||
}
|
||||
|
||||
function validate_config(array $data): void
|
||||
function validate_config(array $data): bool
|
||||
{
|
||||
$p_enabled = (
|
||||
$data['primary']['mode'] !== 'disabled' ||
|
||||
|
|
@ -216,14 +215,22 @@ function validate_config(array $data): void
|
|||
$p_vlan = trim($data['primary']['network_primary_vlan'] ?? '');
|
||||
$s_vlan = trim($data['secondary']['network_secondary_vlan'] ?? '');
|
||||
|
||||
/* If both enabled, at least one VLAN is mandatory */
|
||||
/* If both enabled → at least one VLAN required */
|
||||
if ($p_enabled && $s_enabled && $p_vlan === '' && $s_vlan === '') {
|
||||
throw new RuntimeException(
|
||||
'Invalid configuration: Primary and Secondary are enabled but no VLAN is defined.'
|
||||
);
|
||||
echo "<script>alert('Primary and Secondary are enabled, but no VLAN is defined.');</script>";
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Block duplicate VLAN IDs */
|
||||
if ($p_vlan !== '' && $s_vlan !== '' && $p_vlan === $s_vlan) {
|
||||
echo "<script>alert('Primary and Secondary cannot use the same VLAN ID.');</script>";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function netplan_yaml(array $data, int $indent = 0): string
|
||||
{
|
||||
$out = '';
|
||||
|
|
|
|||
Loading…
Reference in New Issue