Revision 549071a0
b/Makefile.am | ||
---|---|---|
358 | 358 |
test/data/proc_drbd8.txt \ |
359 | 359 |
test/data/proc_drbd80-emptyline.txt \ |
360 | 360 |
test/data/proc_drbd83.txt \ |
361 |
test/data/sys_drbd_usermode_helper.txt \ |
|
361 | 362 |
test/import-export_unittest-helper |
362 | 363 |
|
363 | 364 |
python_tests = \ |
b/lib/bdev.py | ||
---|---|---|
825 | 825 |
_ST_CONNECTED = "Connected" |
826 | 826 |
|
827 | 827 |
_STATUS_FILE = "/proc/drbd" |
828 |
_USERMODE_HELPER_FILE = "/sys/module/drbd/parameters/usermode_helper" |
|
828 | 829 |
|
829 | 830 |
@staticmethod |
830 | 831 |
def _GetProcData(filename=_STATUS_FILE): |
... | ... | |
903 | 904 |
return retval |
904 | 905 |
|
905 | 906 |
@staticmethod |
907 |
def GetUsermodeHelper(filename=_USERMODE_HELPER_FILE): |
|
908 |
"""Returns DRBD usermode_helper currently set. |
|
909 |
|
|
910 |
""" |
|
911 |
try: |
|
912 |
helper = utils.ReadFile(filename).splitlines()[0] |
|
913 |
except EnvironmentError, err: |
|
914 |
if err.errno == errno.ENOENT: |
|
915 |
_ThrowError("The file %s cannot be opened, check if the module" |
|
916 |
" is loaded (%s)", filename, str(err)) |
|
917 |
else: |
|
918 |
_ThrowError("Can't read DRBD helper file %s: %s", filename, str(err)) |
|
919 |
if not helper: |
|
920 |
_ThrowError("Can't read any data from %s", filename) |
|
921 |
return helper |
|
922 |
|
|
923 |
@staticmethod |
|
906 | 924 |
def _DevPath(minor): |
907 | 925 |
"""Return the path to a drbd device for a given minor. |
908 | 926 |
|
b/test/data/sys_drbd_usermode_helper.txt | ||
---|---|---|
1 |
/bin/true |
b/test/ganeti.bdev_unittest.py | ||
---|---|---|
143 | 143 |
self.failUnlessRaises(errors.BlockDeviceError, |
144 | 144 |
bdev.DRBD8._GetProcData, filename=temp_file) |
145 | 145 |
|
146 |
def testHelper(self): |
|
147 |
"""Test reading usermode_helper in /sys.""" |
|
148 |
sys_drbd_helper = self._TestDataFilename("sys_drbd_usermode_helper.txt") |
|
149 |
drbd_helper = bdev.DRBD8.GetUsermodeHelper(filename=sys_drbd_helper) |
|
150 |
self.failUnlessEqual(drbd_helper, "/bin/true") |
|
151 |
|
|
152 |
def testHelperIOErrors(self): |
|
153 |
"""Test handling of errors while reading usermode_helper in /sys.""" |
|
154 |
temp_file = self._CreateTempFile() |
|
155 |
os.unlink(temp_file) |
|
156 |
self.failUnlessRaises(errors.BlockDeviceError, |
|
157 |
bdev.DRBD8.GetUsermodeHelper, filename=temp_file) |
|
158 |
|
|
146 | 159 |
def testMinorNotFound(self): |
147 | 160 |
"""Test not-found-minor in /proc""" |
148 | 161 |
self.failUnless(9 not in self.mass_data) |
Also available in: Unified diff