feat(instances): offer SDN vnets as bridges in add-NIC dialog
All checks were successful
Backend Tests / pytest (Python 3.12) (push) Successful in 52s
Deploy to Production / Trigger production update (push) Successful in 8s

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 02:57:22 +05:00
parent 2dff39ada0
commit 87eb573cbd
2 changed files with 6 additions and 4 deletions

View File

@@ -54,9 +54,10 @@ export default function AddNetworkInterfaceDialog({ open, onClose, serverId, vmi
const { data: networks } = useNodeNetworks(serverId, node, open); const { data: networks } = useNodeNetworks(serverId, node, open);
const bridges = useMemo( const bridges = useMemo(
() => () =>
(networks?.interfaces ?? []) [
.filter((i) => i.type === 'bridge') ...(networks?.interfaces ?? []).filter((i) => i.type === 'bridge'),
.sort((a, b) => (a.iface || a.name || '').localeCompare(b.iface || b.name || '')), ...(networks?.sdn_vnets ?? []),
].sort((a, b) => (a.iface || a.name || '').localeCompare(b.iface || b.name || '')),
[networks], [networks],
); );

View File

@@ -656,10 +656,11 @@ export interface NodeNetworkIface {
ipam_network_id?: number; ipam_network_id?: number;
ipam_cidr?: string; ipam_cidr?: string;
ipam_name?: string; ipam_name?: string;
zone?: string;
} }
export function useNodeNetworks(serverId: number, node: string, enabled = true) { export function useNodeNetworks(serverId: number, node: string, enabled = true) {
return useQuery<{ node: string; interfaces: NodeNetworkIface[] }>({ return useQuery<{ node: string; interfaces: NodeNetworkIface[]; sdn_vnets?: NodeNetworkIface[] }>({
queryKey: ['node-networks', serverId, node], queryKey: ['node-networks', serverId, node],
queryFn: () => apiClient.get(`/proxmox/api/servers/${serverId}/nodes/${node}/networks`), queryFn: () => apiClient.get(`/proxmox/api/servers/${serverId}/nodes/${node}/networks`),
enabled: enabled && !!node, enabled: enabled && !!node,