]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
ch: add virCHMonitorRemoveDevice function
authorStefan Kober <stefan.kober@cyberus-technology.de>
Thu, 4 Sep 2025 12:10:33 +0000 (14:10 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 8 Sep 2025 14:40:08 +0000 (16:40 +0200)
The function calls the respective CH API to remove a device of any type
from a VM.

On-behalf-of: SAP stefan.kober@sap.com
Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/ch/ch_monitor.c
src/ch/ch_monitor.h

index 3389e2ad0b7b86ca07f53c7aef00e01d107c9dd4..65dc89cfd1e46ed38f20b55069e8874552067a30 100644 (file)
@@ -612,6 +612,16 @@ virCHMonitorBuildKeyValueStringJson(char **jsonstr,
     return 0;
 }
 
+int virCHMonitorRemoveDevice(virCHMonitor *mon,
+                             const char* device_id)
+{
+    g_autoptr(virJSONValue) payload = virCHMonitorBuildKeyValueJson("id", device_id);
+
+    VIR_DEBUG("Remove device %s", device_id);
+
+    return virCHMonitorPut(mon, URL_VM_REMOVE_DEVICE, payload, NULL, NULL);
+}
+
 static int
 chMonitorCreateSocket(const char *socket_path)
 {
index dd6a21ce60c6b51b65899ae023ab4a557ceea8df..e3fde06f8876893e6dce8ffb1a1291c61ccaaaa7 100644 (file)
@@ -41,6 +41,7 @@
 #define URL_VM_SAVE "vm.snapshot"
 #define URL_VM_RESTORE "vm.restore"
 #define URL_VM_ADD_DISK "vm.add-disk"
+#define URL_VM_REMOVE_DEVICE "vm.remove-device"
 
 #define VIRCH_THREAD_NAME_LEN   16
 
@@ -143,6 +144,9 @@ int
 virCHMonitorAddDisk(virCHMonitor* mon,
                     virDomainDiskDef *diskdef);
 
+int virCHMonitorRemoveDevice(virCHMonitor *mon,
+                             const char* device_id);
+
 int virCHMonitorBuildRestoreJson(virDomainDef *vmdef,
                                  const char *from,
                                  char **jsonstr);