From 91e461ffdd903e5a0dcd067e29e2f08112e023ff Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Fri, 23 Feb 2007 09:11:52 +0000 Subject: [PATCH] Fri Feb 23 09:11:53 IST 2007 Mark McLoughlin * qemud/conf.c: actually autostart guests/networks at startup as appropriate. --- ChangeLog | 7 ++++++- qemud/conf.c | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c7b81f8f5..9507e17654 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -Fri Feb 23 09:03:19 IST 2007 Mark McLoughlin +Fri Feb 23 09:11:53 IST 2007 Mark McLoughlin + + * qemud/conf.c: actually autostart guests/networks at startup + as appropriate. + +Fri Feb 23 09:08:02 IST 2007 Mark McLoughlin * qemud/internal.h: put the config directory paths in an array in order to make them easier to initialize, diff --git a/qemud/conf.c b/qemud/conf.c index d662c58f81..e22a0e2279 100644 --- a/qemud/conf.c +++ b/qemud/conf.c @@ -1971,11 +1971,49 @@ int qemudScanConfigDir(struct qemud_server *server, 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 */