Make kmod.modprobe() raise an error if no modules found
authorAndy Grover <agrover@redhat.com>
Tue, 12 Feb 2013 00:55:11 +0000 (16:55 -0800)
committerAndy Grover <agrover@redhat.com>
Tue, 12 Feb 2013 00:55:11 +0000 (16:55 -0800)
Add 'quiet' option to override.

Add docstring.

Signed-off-by: Andy Grover <agrover@redhat.com>
kmod/kmod.pyx

index 556b0f2bbaae06967b559af160d7438dfa6afdb9..3e73a1ca8fb976351435864126c2103a48a6ca1d 100644 (file)
@@ -102,8 +102,18 @@ cdef class Kmod (object):
         for mod in self.loaded():
             yield (mod.name, mod.size)
 
-    def modprobe(self, alias_name, *args, **kwargs):
-        for mod in self.lookup(alias_name=alias_name):
+    def modprobe(self, name, quiet=False, *args, **kwargs):
+        """
+        Load a module (or alias) and all modules on which it depends.
+        The 'quiet' option defaults to False; set to True to mimic the behavior
+        of the '--quiet' commandline option.
+        """
+        mods = list(self.lookup(alias_name=name))
+
+        if not mods and not quiet:
+            raise _KmodError('Could not modprobe %s' % name)
+
+        for mod in mods:
             mod.insert(*args, **kwargs)
 
     def rmmod(self, module_name, *args, **kwargs):