From 18ebba9e4dd01ce6aefa26c1ed3b48361181d8fe Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 14 Jul 2025 13:47:36 +0200 Subject: [PATCH 1/2] make vlan check conditional on management network for xen --- .../wrapper/xenbase/CitrixSetupCommandWrapper.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java index 57daba4da41d..2d961f700104 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java @@ -104,14 +104,14 @@ public Answer execute(final SetupCommand command, final CitrixResourceBase citri for (final PIF pif : hostPifs) { final PIF.Record rec = pif.getRecord(conn); if (rec.management) { - if (rec.VLAN != null && rec.VLAN != -1) { + if (host.getAPIVersionMajor(conn) < 8 && rec.VLAN != null && rec.VLAN != -1) { final String msg = new StringBuilder("Unsupported configuration. Management network is on a VLAN. host=").append(citrixResourceBase.getHost().getUuid()) - .append("; pif=") - .append(rec.uuid) - .append("; vlan=") - .append(rec.VLAN) - .toString(); + .append("; pif=") + .append(rec.uuid) + .append("; vlan=") + .append(rec.VLAN) + .toString(); logger.warn(msg); return new SetupAnswer(command, msg); } From 79b9c950ca66e0754d6456869441fc45869d0bf3 Mon Sep 17 00:00:00 2001 From: dahn Date: Fri, 30 Oct 2026 16:12:54 +0100 Subject: [PATCH 2/2] null check on api version Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../wrapper/xenbase/CitrixSetupCommandWrapper.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java index 2d961f700104..4f24ae35b412 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixSetupCommandWrapper.java @@ -104,7 +104,13 @@ public Answer execute(final SetupCommand command, final CitrixResourceBase citri for (final PIF pif : hostPifs) { final PIF.Record rec = pif.getRecord(conn); if (rec.management) { - if (host.getAPIVersionMajor(conn) < 8 && rec.VLAN != null && rec.VLAN != -1) { + Integer apiVersionMajor = host.getAPIVersionMajor(conn); + if (apiVersionMajor == null) { + final String msg = "Unable to determine API version for host: " + citrixResourceBase.getHost().getUuid(); + logger.warn(msg); + return new SetupAnswer(command, msg); + } + if (apiVersionMajor < 8 && rec.VLAN != null && rec.VLAN != -1) { final String msg = new StringBuilder("Unsupported configuration. Management network is on a VLAN. host=").append(citrixResourceBase.getHost().getUuid()) .append("; pif=")