Re: [libvirt PATCH 02/16] qemu: report whether a machine type is deprecated in capabilities

2021-01-25 Thread Ján Tomko

On a Friday in 2021, Daniel P. Berrangé wrote:

QEMU has the ability to mark machine types as deprecated. This should be
exposed to management applications in the capabilities.

Signed-off-by: Daniel P. Berrangé 
---
docs/schemas/capability.rng |  8 
src/conf/capabilities.c |  2 ++
src/conf/capabilities.h |  1 +
src/qemu/qemu_capabilities.c| 17 ++---
src/qemu/qemu_capspriv.h|  3 ++-
src/qemu/qemu_monitor.h |  1 +
src/qemu/qemu_monitor_json.c|  4 
.../qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 16 
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml |  4 ++--
.../qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 16 
.../qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 16 
.../qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 16 
.../qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 16 
tests/testutilsqemu.c   |  8 +---
14 files changed, 79 insertions(+), 49 deletions(-)



Reviewed-by: Ján Tomko 

Jano


signature.asc
Description: PGP signature


[libvirt PATCH 02/16] qemu: report whether a machine type is deprecated in capabilities

2021-01-22 Thread Daniel P . Berrangé
QEMU has the ability to mark machine types as deprecated. This should be
exposed to management applications in the capabilities.

Signed-off-by: Daniel P. Berrangé 
---
 docs/schemas/capability.rng |  8 
 src/conf/capabilities.c |  2 ++
 src/conf/capabilities.h |  1 +
 src/qemu/qemu_capabilities.c| 17 ++---
 src/qemu/qemu_capspriv.h|  3 ++-
 src/qemu/qemu_monitor.h |  1 +
 src/qemu/qemu_monitor_json.c|  4 
 .../qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 16 
 tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml |  4 ++--
 .../qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 16 
 .../qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 16 
 .../qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 16 
 .../qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 16 
 tests/testutilsqemu.c   |  8 +---
 14 files changed, 79 insertions(+), 49 deletions(-)

diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng
index 91a046eb48..c4cafc47ee 100644
--- a/docs/schemas/capability.rng
+++ b/docs/schemas/capability.rng
@@ -407,6 +407,14 @@
   
 
   
+  
+
+  
+yes
+no
+  
+
+  
   
 
   
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 425f34113a..1ea059ea6f 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -1244,6 +1244,8 @@ virCapabilitiesFormatGuestXML(virCapsGuestPtr *guests,
 virBufferAsprintf(buf, " canonical='%s'", machine->canonical);
 if (machine->maxCpus > 0)
 virBufferAsprintf(buf, " maxCpus='%d'", machine->maxCpus);
+if (machine->deprecated)
+virBufferAddLit(buf, " deprecated='yes'");
 virBufferAsprintf(buf, ">%s\n", machine->name);
 }
 
diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
index e2581fac8b..5fd59efc05 100644
--- a/src/conf/capabilities.h
+++ b/src/conf/capabilities.h
@@ -56,6 +56,7 @@ struct _virCapsGuestMachine {
 char *name;
 char *canonical;
 unsigned int maxCpus;
+bool deprecated;
 };
 
 struct _virCapsGuestDomainInfo {
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 61467eb6c2..e3d1de0779 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -624,6 +624,7 @@ struct _virQEMUCapsMachineType {
 char *defaultCPU;
 bool numaMemSupported;
 char *defaultRAMid;
+bool deprecated;
 };
 
 typedef struct _virQEMUCapsHostCPUData virQEMUCapsHostCPUData;
@@ -943,6 +944,7 @@ virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps,
 mach->name = g_strdup(accel->machineTypes[i].name);
 }
 mach->maxCpus = accel->machineTypes[i].maxCpus;
+mach->deprecated = accel->machineTypes[i].deprecated;
 }
 
 /* Make sure all canonical machine types also have their own entry so that
@@ -976,6 +978,7 @@ virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps,
 }
 mach->name = g_strdup(machine->canonical);
 mach->maxCpus = machine->maxCpus;
+mach->deprecated = machine->deprecated;
 i++;
 }
 i++;
@@ -1874,6 +1877,7 @@ virQEMUCapsAccelCopyMachineTypes(virQEMUCapsAccelPtr dst,
 dst->machineTypes[i].qemuDefault = src->machineTypes[i].qemuDefault;
 dst->machineTypes[i].numaMemSupported = 
src->machineTypes[i].numaMemSupported;
 dst->machineTypes[i].defaultRAMid = 
g_strdup(src->machineTypes[i].defaultRAMid);
+dst->machineTypes[i].deprecated = src->machineTypes[i].deprecated;
 }
 }
 
@@ -2708,7 +2712,8 @@ virQEMUCapsAddMachine(virQEMUCapsPtr qemuCaps,
   bool hotplugCpus,
   bool isDefault,
   bool numaMemSupported,
-  const char *defaultRAMid)
+  const char *defaultRAMid,
+  bool deprecated)
 {
 virQEMUCapsAccelPtr accel = virQEMUCapsGetAccel(qemuCaps, virtType);
 virQEMUCapsMachineTypePtr mach;
@@ -2731,6 +2736,7 @@ virQEMUCapsAddMachine(virQEMUCapsPtr qemuCaps,
 mach->numaMemSupported = numaMemSupported;
 
 mach->defaultRAMid = g_strdup(defaultRAMid);
+mach->deprecated = deprecated;
 }
 
 /**
@@ -2778,7 +2784,8 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps,
   machines[i]->hotplugCpus,
   machines[i]->isDefault,
   machines[i]->numaMemSupported,
-  machines[i]->defaultRAMid);
+  machines[i]->defaultRAMid,
+  machines[i]->deprecated);
 
 if (preferredMachine &&