From: Kiarie Kahurani <davidkiarie4(a)gmail.com>
Introduce function
xenParseXMEventActions(virConfPtr conf,......);
which parses events config instead
signed-off-by: David Kiarie<davidkiarie4(a)gmail.com>
---
src/xenxs/xen_xm.c | 65 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 38 insertions(+), 27 deletions(-)
diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
index 5e26e5e..d0a166d 100644
--- a/src/xenxs/xen_xm.c
+++ b/src/xenxs/xen_xm.c
@@ -266,6 +266,42 @@ int xenParseXMMem(virConfPtr conf, virDomainDefPtr def)
* Turn a config record into a lump of XML describing the
* domain, suitable for later feeding for virDomainCreateXML
*/
+static
+int xenParseXMEventsActions(virConfPtr conf, virDomainDefPtr def)
+{
+ const char *str;
+
+ if (xenXMConfigGetString(conf, "on_poweroff", &str,
"destroy") < 0)
+ return -1;
+
+ if ((def->onPoweroff = virDomainLifecycleTypeFromString(str)) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unexpected value %s for on_poweroff"), str);
+ return -1;
+ }
+
+ if (xenXMConfigGetString(conf, "on_reboot", &str, "restart")
< 0)
+ return -1;
+
+ if ((def->onReboot = virDomainLifecycleTypeFromString(str)) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unexpected value %s for on_reboot"), str);
+ return -1;
+ }
+
+ if (xenXMConfigGetString(conf, "on_crash", &str, "restart")
< 0)
+ return -1;
+
+ if ((def->onCrash = virDomainLifecycleCrashTypeFromString(str)) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unexpected value %s for on_crash"), str);
+ return -1;
+ }
+
+ return 0;
+}
+
+
virDomainDefPtr
xenParseXM(virConfPtr conf, int xendConfigVersion,
virCapsPtr caps)
@@ -379,6 +415,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
if (xenParseXMMem(conf, def) < 0)
goto cleanup;
+ if (xenParseXMEventsActions(conf, def) < 0)
+ goto cleanup;
if (xenXMConfigGetULong(conf, "vcpus", &count, 1) < 0 ||
MAX_VIRT_CPUS < count)
goto cleanup;
@@ -391,33 +429,6 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
goto cleanup;
if (str && (virBitmapParse(str, 0, &def->cpumask, 4096) < 0))
goto cleanup;
-
- if (xenXMConfigGetString(conf, "on_poweroff", &str,
"destroy") < 0)
- goto cleanup;
- if ((def->onPoweroff = virDomainLifecycleTypeFromString(str)) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unexpected value %s for on_poweroff"), str);
- goto cleanup;
- }
-
- if (xenXMConfigGetString(conf, "on_reboot", &str, "restart")
< 0)
- goto cleanup;
- if ((def->onReboot = virDomainLifecycleTypeFromString(str)) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unexpected value %s for on_reboot"), str);
- goto cleanup;
- }
-
- if (xenXMConfigGetString(conf, "on_crash", &str, "restart")
< 0)
- goto cleanup;
- if ((def->onCrash = virDomainLifecycleCrashTypeFromString(str)) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unexpected value %s for on_crash"), str);
- goto cleanup;
- }
-
-
-
if (hvm) {
if (xenXMConfigGetBool(conf, "pae", &val, 0) < 0)
goto cleanup;
--
1.8.4.5