From 80975c3c843c7f7346108f8f302ae01985c916f2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Mon, 20 Jul 2020 16:46:09 +0100 Subject: [PATCH] vmx: support outputing the type attribute for MAC addresses MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When support for MAC addresses having a type='static|generated' attribute was added in: commit 454e5961abf40c14f8b6d7ee216229e68fd170bf Author: Bastien Orivel Date: Mon Jul 13 16:28:53 2020 +0200 Add a type attribute on the mac address element the VMX -> XML parser was not updated. As a result while we accept the 'type' attribute on input, we never show it again on 'output', so we loose information during the roundtrip. Reviewed-by: Michal Privoznik Signed-off-by: Daniel P. Berrangé --- src/vmx/vmx.c | 11 +++++++++- .../vmx2xml-case-insensitive-1.xml | 2 +- .../vmx2xml-case-insensitive-2.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-1.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-2.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-3.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-4.xml | 4 ++-- .../vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-6.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-7.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 20 +++++++++---------- .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +- .../vmx2xmldata/vmx2xml-ethernet-bridged.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-custom.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-e1000.xml | 2 +- .../vmx2xml-ethernet-generated.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-nat.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-other.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-static.xml | 2 +- .../vmx2xmldata/vmx2xml-ethernet-vmxnet2.xml | 2 +- tests/vmx2xmldata/vmx2xml-ethernet-vpx.xml | 2 +- .../vmx2xml-fusion-in-the-wild-1.xml | 4 ++-- .../vmx2xmldata/vmx2xml-gsx-in-the-wild-1.xml | 2 +- .../vmx2xmldata/vmx2xml-gsx-in-the-wild-2.xml | 2 +- .../vmx2xmldata/vmx2xml-gsx-in-the-wild-3.xml | 4 ++-- .../vmx2xmldata/vmx2xml-gsx-in-the-wild-4.xml | 2 +- .../vmx2xmldata/vmx2xml-ws-in-the-wild-1.xml | 2 +- .../vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml | 2 +- 28 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index f0a45089cc..72f6a7d8dd 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2535,6 +2535,9 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) char generatedAddress_name[48] = ""; char *generatedAddress = NULL; + char checkMACAddress_name[48] = ""; + char *checkMACAddress = NULL; + char address_name[48] = ""; char *address = NULL; @@ -2564,6 +2567,7 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) VMX_BUILD_NAME(connectionType); VMX_BUILD_NAME(addressType); VMX_BUILD_NAME(generatedAddress); + VMX_BUILD_NAME(checkMACAddress); VMX_BUILD_NAME(address); VMX_BUILD_NAME(virtualDev); VMX_BUILD_NAME(features); @@ -2598,7 +2602,9 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) true) < 0 || virVMXGetConfigString(conf, generatedAddress_name, &generatedAddress, true) < 0 || - virVMXGetConfigString(conf, address_name, &address, true) < 0) { + virVMXGetConfigString(conf, address_name, &address, true) < 0 || + virVMXGetConfigString(conf, checkMACAddress_name, &checkMACAddress, + true) < 0) { goto cleanup; } @@ -2613,6 +2619,8 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) goto cleanup; } } + if (addressType != NULL) + (*def)->mac_type = VIR_DOMAIN_NET_MAC_TYPE_GENERATED; } else if (STRCASEEQ(addressType, "static")) { if (address != NULL) { if (virMacAddrParse(address, &(*def)->mac) < 0) { @@ -2622,6 +2630,7 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) goto cleanup; } } + (*def)->mac_type = VIR_DOMAIN_NET_MAC_TYPE_STATIC; } else { virReportError(VIR_ERR_INTERNAL_ERROR, _("Expecting VMX entry '%s' to be 'generated' or 'static' or " diff --git a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml index fd38cfd67f..7cb6413941 100644 --- a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml +++ b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml @@ -22,7 +22,7 @@ - +