[Libvirt-cim] [PATCH 2 of 3] Add new attribute to hold the name of the net target device

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Thu Jan 28 23:58:59 UTC 2010


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1264722331 28800
# Node ID 0273f86ebd7b6e54ec606d0a2a9aa54ce40246f1
# Parent  9532502f5d5e76efa998c4b6c9339cf47f91b914
Add new attribute to hold the name of the net target device

VirtualDevice is used, as this is the same attribute used to hold the target
device of a disk device.  This patch also adds support for representing the
target device in the device's RASD.

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 9532502f5d5e -r 0273f86ebd7b schema/ResourceAllocationSettingData.mof
--- a/schema/ResourceAllocationSettingData.mof	Thu Jan 28 15:45:31 2010 -0800
+++ b/schema/ResourceAllocationSettingData.mof	Thu Jan 28 15:45:31 2010 -0800
@@ -60,6 +60,8 @@
       [Description ("Bridge name")]
       string NetworkName;
 
+      [Description ("Target device as seen by the guest")]
+      string VirtualDevice;
 };
 
 [Description ("KVM virtual network configuration"),
@@ -74,6 +76,8 @@
       [Description ("Bridge name")]
       string NetworkName;
 
+      [Description ("Target device as seen by the guest")]
+      string VirtualDevice;
 };
 
 [Description ("LXC virtual network configuration"),
@@ -81,6 +85,8 @@
 ]
 class LXC_NetResourceAllocationSettingData : LXC_ResourceAllocationSettingData
 {
+      [Description ("Target device as seen by the guest")]
+      string VirtualDevice;
 };
 
 [Description ("Xen virtual processor"),
diff -r 9532502f5d5e -r 0273f86ebd7b src/Virt_RASD.c
--- a/src/Virt_RASD.c	Thu Jan 28 15:45:31 2010 -0800
+++ b/src/Virt_RASD.c	Thu Jan 28 15:45:31 2010 -0800
@@ -278,6 +278,45 @@
         return s;
 }
 
+static CMPIStatus set_net_rasd_params(const CMPIBroker *broker,
+                                       const CMPIObjectPath *ref,
+                                       const struct virt_device *dev,
+                                       CMPIInstance *inst)
+{
+        CMPIStatus s = {CMPI_RC_OK, NULL};
+
+        CMSetProperty(inst,
+                      "NetworkType",
+                      (CMPIValue *)dev->dev.net.type,
+                      CMPI_chars);
+
+        CMSetProperty(inst,
+                      "Address",
+                      (CMPIValue *)dev->dev.net.mac,
+                      CMPI_chars);
+
+        if ((dev->dev.net.source != NULL) &&
+            (STREQ(dev->dev.net.type, "bridge")))
+                CMSetProperty(inst,
+                              "NetworkName",
+                              (CMPIValue *)dev->dev.net.source,
+                              CMPI_chars);
+
+        if (dev->dev.net.device != NULL)
+                CMSetProperty(inst,
+                              "VirtualDevice",
+                              (CMPIValue *)dev->dev.net.device,
+                              CMPI_chars);
+
+        if (dev->dev.net.model != NULL)
+                CMSetProperty(inst,
+                              "ResourceSubType",
+                              (CMPIValue *)dev->dev.net.model,
+                              CMPI_chars);
+
+        return s;
+}
+
 static CMPIStatus set_graphics_rasd_params(const struct virt_device *dev,
                                            CMPIInstance *inst,
                                            const char *name,
@@ -429,27 +468,7 @@
         if (dev->type == CIM_RES_TYPE_DISK) {
                 s = set_disk_rasd_params(broker, ref, dev, inst);
         } else if (dev->type == CIM_RES_TYPE_NET) {
-                CMSetProperty(inst,
-                              "NetworkType",
-                              (CMPIValue *)dev->dev.net.type,
-                              CMPI_chars);
-                CMSetProperty(inst,
-                              "Address",
-                              (CMPIValue *)dev->dev.net.mac,
-                              CMPI_chars);
-
-                if ((dev->dev.net.source != NULL) 
-                   && (STREQ(dev->dev.net.type, "bridge")))
-                        CMSetProperty(inst,
-                                      "NetworkName",
-                                      (CMPIValue *)dev->dev.net.source,
-                                      CMPI_chars);
-
-                if (dev->dev.net.model != NULL)
-                        CMSetProperty(inst,
-                                      "ResourceSubType",
-                                      (CMPIValue *)dev->dev.net.model,
-                                      CMPI_chars);
+                s = set_net_rasd_params(broker, ref, dev, inst);
         } else if (dev->type == CIM_RES_TYPE_MEM) {
                 const char *units = "KiloBytes";
 




More information about the Libvirt-cim mailing list