[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Libvir] [patch 9/9] Actually autostart guests and networks



Add qemudAutostartConfigs() to autostart guests and
networks.

Signed-off-by: Mark McLoughlin <markmc redhat com>

Index: libvirt/qemud/conf.c
===================================================================
--- libvirt.orig/qemud/conf.c
+++ libvirt/qemud/conf.c
@@ -1972,11 +1972,49 @@ int qemudScanConfigDir(struct qemud_serv
     return 0;
 }
 
+static
+void qemudAutostartConfigs(struct qemud_server *server) {
+    struct qemud_network *network;
+    struct qemud_vm *vm;
+
+    network = server->networks;
+    while (network != NULL) {
+        struct qemud_network *next = network->next;
+
+        if (network->autostart &&
+            !qemudIsActiveNetwork(network) &&
+            qemudStartNetworkDaemon(server, network) < 0)
+            qemudLog(QEMUD_ERR, "Failed to autostart network '%s'",
+                     network->def->name);
+
+        network = next;
+    }
+
+    vm = server->vms;
+    while (vm != NULL) {
+        struct qemud_vm *next = vm->next;
+
+        if (vm->autostart &&
+            !qemudIsActiveVM(vm) &&
+            qemudStartVMDaemon(server, vm) < 0)
+            qemudLog(QEMUD_ERR, "Failed to autostart VM '%s'",
+                     vm->def->name);
+
+        vm = next;
+    }
+}
+
 /* Scan for all guest and network config files */
 int qemudScanConfigs(struct qemud_server *server) {
     if (qemudScanConfigDir(server, server->configDir, server->autostartDir, 1) < 0)
         return -1;
-    return qemudScanConfigDir(server, server->networkConfigDir, server->networkAutostartDir, 0);
+
+    if (qemudScanConfigDir(server, server->networkConfigDir, server->networkAutostartDir, 0) < 0)
+        return -1;
+
+    qemudAutostartConfigs(server);
+
+    return 0;
 }
 
 /* Simple grow-on-demand string buffer */

-- 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]