summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2008-04-09 17:24:42 +0200
committerMartin Sivak <msivak@redhat.com>2008-04-09 17:24:42 +0200
commit1ad96f2420b30cc6444dba10324b65d9542a9bd2 (patch)
treeb8698096fd59424cf5619b67d5fa4afa8068f872
parent73e45b94b601d526b9a3680e8a51d6321ea741be (diff)
downloadfirstaidkit-1ad96f2420b30cc6444dba10324b65d9542a9bd2.tar.gz
firstaidkit-1ad96f2420b30cc6444dba10324b65d9542a9bd2.tar.xz
firstaidkit-1ad96f2420b30cc6444dba10324b65d9542a9bd2.zip
Use config bits mechanism to look for anaconda and booty and then translate system device names to grub notation in Grub plugin
-rw-r--r--etc/firstaidkit/firstaidkit-plugin-grub6
-rw-r--r--plugins/plugin_grub.py13
2 files changed, 16 insertions, 3 deletions
diff --git a/etc/firstaidkit/firstaidkit-plugin-grub b/etc/firstaidkit/firstaidkit-plugin-grub
new file mode 100644
index 0000000..dac6587
--- /dev/null
+++ b/etc/firstaidkit/firstaidkit-plugin-grub
@@ -0,0 +1,6 @@
+[booty]
+path = /usr/lib/booty
+
+[anaconda]
+path = /usr/lib/anaconda
+
diff --git a/plugins/plugin_grub.py b/plugins/plugin_grub.py
index 532604a..7270932 100644
--- a/plugins/plugin_grub.py
+++ b/plugins/plugin_grub.py
@@ -18,12 +18,18 @@
from pyfirstaidkit.plugins import Plugin,Flow
from pyfirstaidkit.reporting import PLUGIN
from pyfirstaidkit.returns import *
-from pyfirstaidkit.configuration import Config
+from pyfirstaidkit.configuration import Config,getConfigBits
from pyfirstaidkit.utils import spawnvch
import os.path
import difflib
import re
+cfgBits = getConfigBits("firstaidkit-plugin-grub")
+import sys
+sys.path.append(cfgBits.anaconda.path)
+sys.path.append(cfgBits.booty.path)
+from bootloaderInfo import x86BootloaderInfo
+
class Sample1Plugin(Plugin):
"""This plugin checks the GRUB bootloader."""
name = "GRUB plugin"
@@ -32,7 +38,7 @@ class Sample1Plugin(Plugin):
@classmethod
def getDeps(cls):
- return set(["experimental", "root", "filesystem"])
+ return set(["experimental", "root", "filesystem", "arch-x86"])
def __init__(self, *args, **kwargs):
Plugin.__init__(self, *args, **kwargs)
@@ -44,6 +50,7 @@ class Sample1Plugin(Plugin):
self._grub = [] #devices with possible grub instalation
self._grub_map = {} #mapping from linux device names to grub device names
self._grub_mask = re.compile("""\(hd[0-9]*,[0-9]*\)""")
+ self._bootloaderInfo = x86BootloaderInfo()
def prepare(self):
self._result=ReturnSuccess
@@ -108,7 +115,7 @@ class Sample1Plugin(Plugin):
for p in self._partitions:
self._reporting.debug(origin = self, level = PLUGIN, message = "Reading boot sector from %s" % (p,))
bootsector = file(os.path.join("/dev", p), "r").read(512)
- bootsectors[bootsector] = p
+ bootsectors[bootsector] = self._bootloaderInfo.grubbyPartitionName(p)
for k in difflib.get_close_matches(stage1mask, bootsectors.keys()):
self._reporting.info(origin = self, level = PLUGIN, message = "Installed Grub probably found at %s" % (bootsectors[k],))