summaryrefslogtreecommitdiffstats
path: root/src/logicalfile
diff options
context:
space:
mode:
authorJan Synacek <jsynacek@redhat.com>2013-10-03 14:32:01 +0200
committerJan Synacek <jsynacek@redhat.com>2013-10-03 14:43:55 +0200
commitbd4e3c77cb88014fe0f0fd3aac5e8affb6152fae (patch)
tree2bb3d4f60f7ad0b1fb29b1355fb99cd2dfff83ac /src/logicalfile
parent7abb8f2d324dc6dfecaa1acf571616342650c675 (diff)
downloadopenlmi-providers-bd4e3c77cb88014fe0f0fd3aac5e8affb6152fae.tar.gz
openlmi-providers-bd4e3c77cb88014fe0f0fd3aac5e8affb6152fae.tar.xz
openlmi-providers-bd4e3c77cb88014fe0f0fd3aac5e8affb6152fae.zip
logicalfile: fill LMI_UnixDeviceFile.DeviceFileType
Diffstat (limited to 'src/logicalfile')
-rw-r--r--src/logicalfile/file.c5
-rw-r--r--src/logicalfile/file.h2
-rw-r--r--src/logicalfile/test/test_basic.py7
3 files changed, 12 insertions, 2 deletions
diff --git a/src/logicalfile/file.c b/src/logicalfile/file.c
index d628ded..d2505c2 100644
--- a/src/logicalfile/file.c
+++ b/src/logicalfile/file.c
@@ -194,6 +194,11 @@ CMPIStatus stat_logicalfile_and_fill(
LMI_UnixDeviceFile_Set_DeviceMajor(&lf->lf.unixdevicefile, tmp);
sprintf(tmp, "%u", minor(sb.st_rdev));
LMI_UnixDeviceFile_Set_DeviceMinor(&lf->lf.unixdevicefile, tmp);
+ if (S_ISCHR(sb.st_mode)) {
+ LMI_UnixDeviceFile_Set_DeviceFileType(&lf->lf.unixdevicefile, DEVTYPE_CHR);
+ } else if (S_ISBLK(sb.st_mode)) {
+ LMI_UnixDeviceFile_Set_DeviceFileType(&lf->lf.unixdevicefile, DEVTYPE_BLK);
+ }
break;
case S_IFDIR:
fill_basic(b, UnixDirectory, &lf->lf.unixdirectory, buf, fsname, sb);
diff --git a/src/logicalfile/file.h b/src/logicalfile/file.h
index 953ff18..58646f1 100644
--- a/src/logicalfile/file.h
+++ b/src/logicalfile/file.h
@@ -53,6 +53,8 @@ const char *provider_name;
#define PART_COMPONENT "PartComponent"
#define SAME_ELEMENT "SameElement"
#define SYSTEM_ELEMENT "SystemElement"
+#define DEVTYPE_BLK 2
+#define DEVTYPE_CHR 3
/* CMPI_RC_ERR_<error> values end at 200. 0xFF should be safe. */
#define RC_ERR_CLASS_CHECK_FAILED 0xFF
diff --git a/src/logicalfile/test/test_basic.py b/src/logicalfile/test/test_basic.py
index 8426ea3..72e1f33 100644
--- a/src/logicalfile/test/test_basic.py
+++ b/src/logicalfile/test/test_basic.py
@@ -57,10 +57,12 @@ class TestLogicalFile(LogicalFileTestBase):
'props': {}},
'chdev':{'path' : self.testdir + "/chdev",
'class': 'LMI_UnixDeviceFile',
- 'props': {'DeviceMajor':2, 'DeviceMinor':4}},
+ 'props': {'DeviceMajor':2, 'DeviceMinor':4,
+ 'DeviceFileType':3}},
'bldev':{'path' : self.testdir + "/bldev",
'class': 'LMI_UnixDeviceFile',
- 'props': {'DeviceMajor':3, 'DeviceMinor':5}},
+ 'props': {'DeviceMajor':3, 'DeviceMinor':5,
+ 'DeviceFileType':2}},
'..':{'path' : os.path.realpath(self.testdir + "/.."),
'class': 'LMI_UnixDirectory',
'props': {}}}
@@ -143,6 +145,7 @@ class TestLogicalFile(LogicalFileTestBase):
if k == 'chdev' or k == 'bldev':
self.assertEqual(match[0]['DeviceMajor'], str(f['props']['DeviceMajor']))
self.assertEqual(match[0]['DeviceMinor'], str(f['props']['DeviceMinor']))
+ self.assertEqual(match[0]['DeviceFileType'], f['props']['DeviceFileType'])
if k == 'symlink':
self.assertEqual(match[0]['TargetFile'], self.files['data']['path'])