]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Add one argument for several scsi utils
authorOsier Yang <jyang@redhat.com>
Thu, 30 Jan 2014 07:05:59 +0000 (15:05 +0800)
committerOsier Yang <jyang@redhat.com>
Thu, 30 Jan 2014 07:48:28 +0000 (15:48 +0800)
To support passing the path of the test data to the utils, one
more argument is added to virSCSIDeviceGetSgName,
virSCSIDeviceGetDevName, and virSCSIDeviceNew, and the related
code is changed accordingly.

Later tests for the scsi utils will be based on this patch.

Signed-off-by: Osier Yang <jyang@redhat.com>
src/qemu/qemu_cgroup.c
src/qemu/qemu_command.c
src/qemu/qemu_command.h
src/qemu/qemu_conf.c
src/qemu/qemu_hostdev.c
src/security/security_apparmor.c
src/security/security_dac.c
src/security/security_selinux.c
src/util/virscsi.c
src/util/virscsi.h
tests/testutilsqemu.c

index de20f2d2a3c2330b0b81aff129b844e72f5f0fde..a97f184c7af2b9a5012d087375b489e2ae374b9e 100644 (file)
@@ -291,7 +291,8 @@ qemuSetupHostdevCGroup(virDomainObjPtr vm,
             break;
 
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
-            if ((scsi = virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            if ((scsi = virSCSIDeviceNew(NULL,
+                                         dev->source.subsys.u.scsi.adapter,
                                          dev->source.subsys.u.scsi.bus,
                                          dev->source.subsys.u.scsi.target,
                                          dev->source.subsys.u.scsi.unit,
index 96b882504ee8fc1346b863ccb2c6f83c742761c3..e1ff2872209de43a5d9591d7096ca887ed429df3 100644 (file)
@@ -5785,7 +5785,8 @@ qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr dev,
     virBuffer buf = VIR_BUFFER_INITIALIZER;
     char *sg = NULL;
 
-    sg = (callbacks->qemuGetSCSIDeviceSgName)(dev->source.subsys.u.scsi.adapter,
+    sg = (callbacks->qemuGetSCSIDeviceSgName)(NULL,
+                                              dev->source.subsys.u.scsi.adapter,
                                               dev->source.subsys.u.scsi.bus,
                                               dev->source.subsys.u.scsi.target,
                                               dev->source.subsys.u.scsi.unit);
index de7683d80977518797b7668d049e859dd1554e28..82ca4b30bf85a1333b80df27c41ed93ab70c6138 100644 (file)
@@ -57,7 +57,8 @@
 typedef struct _qemuBuildCommandLineCallbacks qemuBuildCommandLineCallbacks;
 typedef qemuBuildCommandLineCallbacks *qemuBuildCommandLineCallbacksPtr;
 struct _qemuBuildCommandLineCallbacks {
-    char * (*qemuGetSCSIDeviceSgName) (const char *adapter,
+    char * (*qemuGetSCSIDeviceSgName) (const char *sysfs_prefix,
+                                       const char *adapter,
                                        unsigned int bus,
                                        unsigned int target,
                                        unsigned int unit);
index bf69ee54a5cc8152325c12e1bb85eb43a88bc637..ecaaf815adf0880a3afcc30d6a692cd7b0a8dc17 100644 (file)
@@ -761,7 +761,8 @@ qemuCheckSharedDevice(virHashTablePtr sharedDevices,
     } else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
         hostdev = dev->data.hostdev;
 
-        if (!(hostdev_name = virSCSIDeviceGetDevName(hostdev->source.subsys.u.scsi.adapter,
+        if (!(hostdev_name = virSCSIDeviceGetDevName(NULL,
+                                                     hostdev->source.subsys.u.scsi.adapter,
                                                      hostdev->source.subsys.u.scsi.bus,
                                                      hostdev->source.subsys.u.scsi.target,
                                                      hostdev->source.subsys.u.scsi.unit)))
@@ -949,7 +950,8 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
         if (!(key = qemuGetSharedDeviceKey(disk->src)))
             goto cleanup;
     } else {
-        if (!(dev_name = virSCSIDeviceGetDevName(hostdev->source.subsys.u.scsi.adapter,
+        if (!(dev_name = virSCSIDeviceGetDevName(NULL,
+                                                 hostdev->source.subsys.u.scsi.adapter,
                                                  hostdev->source.subsys.u.scsi.bus,
                                                  hostdev->source.subsys.u.scsi.target,
                                                  hostdev->source.subsys.u.scsi.unit)))
@@ -1053,7 +1055,8 @@ qemuRemoveSharedDevice(virQEMUDriverPtr driver,
         if (!(key = qemuGetSharedDeviceKey(disk->src)))
             goto cleanup;
     } else {
-        if (!(dev_name = virSCSIDeviceGetDevName(hostdev->source.subsys.u.scsi.adapter,
+        if (!(dev_name = virSCSIDeviceGetDevName(NULL,
+                                                 hostdev->source.subsys.u.scsi.adapter,
                                                  hostdev->source.subsys.u.scsi.bus,
                                                  hostdev->source.subsys.u.scsi.target,
                                                  hostdev->source.subsys.u.scsi.unit)))
@@ -1137,7 +1140,8 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
               hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI))
             return 0;
 
-        if (!(hostdev_name = virSCSIDeviceGetDevName(hostdev->source.subsys.u.scsi.adapter,
+        if (!(hostdev_name = virSCSIDeviceGetDevName(NULL,
+                                                     hostdev->source.subsys.u.scsi.adapter,
                                                      hostdev->source.subsys.u.scsi.bus,
                                                      hostdev->source.subsys.u.scsi.target,
                                                      hostdev->source.subsys.u.scsi.unit)))
index 2b9d274279e3722f0202e106654c34044d9674a3..2b11d6c71a0ffca270a093ca578787415d72743d 100644 (file)
@@ -264,7 +264,8 @@ qemuUpdateActiveScsiHostdevs(virQEMUDriverPtr driver,
             hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
             continue;
 
-        if (!(scsi = virSCSIDeviceNew(hostdev->source.subsys.u.scsi.adapter,
+        if (!(scsi = virSCSIDeviceNew(NULL,
+                                      hostdev->source.subsys.u.scsi.adapter,
                                       hostdev->source.subsys.u.scsi.bus,
                                       hostdev->source.subsys.u.scsi.target,
                                       hostdev->source.subsys.u.scsi.unit,
@@ -1102,7 +1103,8 @@ qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
             goto cleanup;
         }
 
-        if (!(scsi = virSCSIDeviceNew(hostdev->source.subsys.u.scsi.adapter,
+        if (!(scsi = virSCSIDeviceNew(NULL,
+                                      hostdev->source.subsys.u.scsi.adapter,
                                       hostdev->source.subsys.u.scsi.bus,
                                       hostdev->source.subsys.u.scsi.target,
                                       hostdev->source.subsys.u.scsi.unit,
@@ -1406,7 +1408,8 @@ qemuDomainReAttachHostScsiDevices(virQEMUDriverPtr driver,
             hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
             continue;
 
-        if (!(scsi = virSCSIDeviceNew(hostdev->source.subsys.u.scsi.adapter,
+        if (!(scsi = virSCSIDeviceNew(NULL,
+                                      hostdev->source.subsys.u.scsi.adapter,
                                       hostdev->source.subsys.u.scsi.bus,
                                       hostdev->source.subsys.u.scsi.target,
                                       hostdev->source.subsys.u.scsi.unit,
index 86a033f7418f429937d085c9abc6b5ec275d1496..257e3dda82c0f18468d7c3417dd8c05d9c26a9f2 100644 (file)
@@ -829,7 +829,8 @@ AppArmorSetSecurityHostdevLabel(virSecurityManagerPtr mgr,
 
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
         virSCSIDevicePtr scsi =
-            virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            virSCSIDeviceNew(NULL,
+                             dev->source.subsys.u.scsi.adapter,
                              dev->source.subsys.u.scsi.bus,
                              dev->source.subsys.u.scsi.target,
                              dev->source.subsys.u.scsi.unit,
index 0952df97ffa6ceda430bd6439d56dad96f25228a..09b5e570b5535258c48fd4d7260dc9d5d79a49c6 100644 (file)
@@ -532,7 +532,8 @@ virSecurityDACSetSecurityHostdevLabel(virSecurityManagerPtr mgr,
 
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
         virSCSIDevicePtr scsi =
-            virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            virSCSIDeviceNew(NULL,
+                             dev->source.subsys.u.scsi.adapter,
                              dev->source.subsys.u.scsi.bus,
                              dev->source.subsys.u.scsi.target,
                              dev->source.subsys.u.scsi.unit,
@@ -650,7 +651,8 @@ virSecurityDACRestoreSecurityHostdevLabel(virSecurityManagerPtr mgr,
 
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
         virSCSIDevicePtr scsi =
-            virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            virSCSIDeviceNew(NULL,
+                             dev->source.subsys.u.scsi.adapter,
                              dev->source.subsys.u.scsi.bus,
                              dev->source.subsys.u.scsi.target,
                              dev->source.subsys.u.scsi.unit,
index 7b6d8e330b2d4044740d924f4ef8f11edd086d38..aa47667b149564b132765870abede7f968896ab6 100644 (file)
@@ -1350,7 +1350,8 @@ virSecuritySELinuxSetSecurityHostdevSubsysLabel(virDomainDefPtr def,
 
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
         virSCSIDevicePtr scsi =
-            virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            virSCSIDeviceNew(NULL,
+                             dev->source.subsys.u.scsi.adapter,
                              dev->source.subsys.u.scsi.bus,
                              dev->source.subsys.u.scsi.target,
                              dev->source.subsys.u.scsi.unit,
@@ -1542,7 +1543,8 @@ virSecuritySELinuxRestoreSecurityHostdevSubsysLabel(virSecurityManagerPtr mgr,
 
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
         virSCSIDevicePtr scsi =
-            virSCSIDeviceNew(dev->source.subsys.u.scsi.adapter,
+            virSCSIDeviceNew(NULL,
+                             dev->source.subsys.u.scsi.adapter,
                              dev->source.subsys.u.scsi.bus,
                              dev->source.subsys.u.scsi.target,
                              dev->source.subsys.u.scsi.unit,
index 9aa7f350492f0d5da182ebc9aa0967977e20c09c..731a01cf4faa65505966d287ce2a24c0d72a3bc7 100644 (file)
@@ -102,7 +102,8 @@ virSCSIDeviceGetAdapterId(const char *adapter,
 }
 
 char *
-virSCSIDeviceGetSgName(const char *adapter,
+virSCSIDeviceGetSgName(const char *sysfs_prefix,
+                       const char *adapter,
                        unsigned int bus,
                        unsigned int target,
                        unsigned int unit)
@@ -112,13 +113,14 @@ virSCSIDeviceGetSgName(const char *adapter,
     char *path = NULL;
     char *sg = NULL;
     unsigned int adapter_id;
+    const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SCSI_DEVICES;
 
     if (virSCSIDeviceGetAdapterId(adapter, &adapter_id) < 0)
         return NULL;
 
     if (virAsprintf(&path,
-                    SYSFS_SCSI_DEVICES "/%d:%d:%d:%d/scsi_generic",
-                    adapter_id, bus, target, unit) < 0)
+                    "%s/%d:%d:%d:%d/scsi_generic",
+                    prefix, adapter_id, bus, target, unit) < 0)
         return NULL;
 
     if (!(dir = opendir(path))) {
@@ -145,7 +147,8 @@ cleanup:
  * on failure.
  */
 char *
-virSCSIDeviceGetDevName(const char *adapter,
+virSCSIDeviceGetDevName(const char *sysfs_prefix,
+                        const char *adapter,
                         unsigned int bus,
                         unsigned int target,
                         unsigned int unit)
@@ -155,13 +158,14 @@ virSCSIDeviceGetDevName(const char *adapter,
     char *path = NULL;
     char *name = NULL;
     unsigned int adapter_id;
+    const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SCSI_DEVICES;
 
     if (virSCSIDeviceGetAdapterId(adapter, &adapter_id) < 0)
         return NULL;
 
     if (virAsprintf(&path,
-                    SYSFS_SCSI_DEVICES "/%d:%d:%d:%d/block",
-                    adapter_id, bus, target, unit) < 0)
+                    "%s/%d:%d:%d:%d/block",
+                    prefix, adapter_id, bus, target, unit) < 0)
         return NULL;
 
     if (!(dir = opendir(path))) {
@@ -185,7 +189,8 @@ cleanup:
 }
 
 virSCSIDevicePtr
-virSCSIDeviceNew(const char *adapter,
+virSCSIDeviceNew(const char *sysfs_prefix,
+                 const char *adapter,
                  unsigned int bus,
                  unsigned int target,
                  unsigned int unit,
@@ -198,6 +203,7 @@ virSCSIDeviceNew(const char *adapter,
     char *model_path = NULL;
     char *vendor = NULL;
     char *model = NULL;
+    const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SCSI_DEVICES;
 
     if (VIR_ALLOC(dev) < 0)
         return NULL;
@@ -208,7 +214,7 @@ virSCSIDeviceNew(const char *adapter,
     dev->readonly = readonly;
     dev->shareable = shareable;
 
-    if (!(sg = virSCSIDeviceGetSgName(adapter, bus, target, unit)))
+    if (!(sg = virSCSIDeviceGetSgName(prefix, adapter, bus, target, unit)))
         goto cleanup;
 
     if (virSCSIDeviceGetAdapterId(adapter, &dev->adapter) < 0)
@@ -227,9 +233,9 @@ virSCSIDeviceNew(const char *adapter,
     }
 
     if (virAsprintf(&vendor_path,
-                    SYSFS_SCSI_DEVICES "/%s/vendor", dev->name) < 0 ||
+                    "%s/%s/vendor", prefix, dev->name) < 0 ||
         virAsprintf(&model_path,
-                    SYSFS_SCSI_DEVICES "/%s/model", dev->name) < 0)
+                    "%s/%s/model", prefix, dev->name) < 0)
         goto cleanup;
 
     if (virFileReadAll(vendor_path, 1024, &vendor) < 0)
index aff7e5a3925c110fc75eac6df4a1918a8b060fd1..1b685eb1dc6b1ac452d21296cd857cd3df6511df 100644 (file)
@@ -33,16 +33,19 @@ typedef virSCSIDevice *virSCSIDevicePtr;
 typedef struct _virSCSIDeviceList virSCSIDeviceList;
 typedef virSCSIDeviceList *virSCSIDeviceListPtr;
 
-char *virSCSIDeviceGetSgName(const char *adapter,
+char *virSCSIDeviceGetSgName(const char *sysfs_prefix,
+                             const char *adapter,
                              unsigned int bus,
                              unsigned int target,
                              unsigned int unit);
-char *virSCSIDeviceGetDevName(const char *adapter,
+char *virSCSIDeviceGetDevName(const char *sysfs_prefix,
+                              const char *adapter,
                               unsigned int bus,
                               unsigned int target,
                               unsigned int unit);
 
-virSCSIDevicePtr virSCSIDeviceNew(const char *adapter,
+virSCSIDevicePtr virSCSIDeviceNew(const char *sysfs_prefix,
+                                  const char *adapter,
                                   unsigned int bus,
                                   unsigned int target,
                                   unsigned int unit,
index 44e7e9d9221326d107a765d40566e581a0d404f1..726501cea1802313fcbea8e1237e4814440f65bd 100644 (file)
@@ -355,7 +355,8 @@ cleanup:
 
 
 static char *
-testSCSIDeviceGetSgName(const char *adapter ATTRIBUTE_UNUSED,
+testSCSIDeviceGetSgName(const char *sysfs_prefix ATTRIBUTE_UNUSED,
+                        const char *adapter ATTRIBUTE_UNUSED,
                         unsigned int bus ATTRIBUTE_UNUSED,
                         unsigned int target ATTRIBUTE_UNUSED,
                         unsigned int unit ATTRIBUTE_UNUSED)