]> xenbits.xensource.com Git - libvirt.git/commitdiff
Make startmode optional in toplevel interface definition
authorLaine Stump <laine@laine.org>
Wed, 28 Oct 2009 08:55:33 +0000 (09:55 +0100)
committerDaniel Veillard <veillard@redhat.com>
Tue, 3 Nov 2009 20:04:56 +0000 (21:04 +0100)
The minimal XML returned from ncf_if_xml_state() doesn't contain this
attribute (which makes no sense in the case of reporting current
status of the interface), and it was preventing it from passing
through the parse/format step.

* src/conf/interface_conf.[ch]: add a new virInterfaceStartMode value
  and modify loading/saving accordingly

src/conf/interface_conf.c
src/conf/interface_conf.h

index e646351f0403fb933d126576df5247305cd7e4bf..540c9319f8563c767d9853b7877fb80e714a95c4 100644 (file)
@@ -128,12 +128,9 @@ virInterfaceDefParseStartMode(virConnectPtr conn, virInterfaceDefPtr def,
     char *tmp;
 
     tmp = virXPathString(conn, "string(./start/@mode)", ctxt);
-    if (tmp == NULL) {
-        virInterfaceReportError(conn, VIR_ERR_XML_ERROR,
-                        "%s", _("interface misses the start mode attribute"));
-        return(-1);
-    }
-    if (STREQ(tmp, "onboot"))
+    if (tmp == NULL)
+        def->startmode = VIR_INTERFACE_START_UNSPECIFIED;
+    else if (STREQ(tmp, "onboot"))
         def->startmode = VIR_INTERFACE_START_ONBOOT;
     else if (STREQ(tmp, "hotplug"))
         def->startmode = VIR_INTERFACE_START_HOTPLUG;
@@ -1039,6 +1036,8 @@ virInterfaceStartmodeDefFormat(virConnectPtr conn, virBufferPtr buf,
                                enum virInterfaceStartMode startmode) {
     const char *mode;
     switch (startmode) {
+        case VIR_INTERFACE_START_UNSPECIFIED:
+            return 0;
         case VIR_INTERFACE_START_NONE:
             mode = "none";
             break;
index 92543fcafdd0844d696ccbb500dd269d5f038423..a73136f9e920f5157e61fa97bdd74b4da08fad43 100644 (file)
@@ -48,7 +48,8 @@ VIR_ENUM_DECL(virInterface)
 /* types of start mode */
 
 enum virInterfaceStartMode {
-    VIR_INTERFACE_START_NONE = 0, /* not defined */
+    VIR_INTERFACE_START_UNSPECIFIED = 0, /* not given in config */
+    VIR_INTERFACE_START_NONE,     /* specified as not defined */
     VIR_INTERFACE_START_ONBOOT,   /* startup at boot */
     VIR_INTERFACE_START_HOTPLUG,  /* on hotplug */
 };