summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Server/Generators/Debconf.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/lib/Server/Generators/Debconf.py b/src/lib/Server/Generators/Debconf.py
index 9ab920379..0bb933bb2 100644
--- a/src/lib/Server/Generators/Debconf.py
+++ b/src/lib/Server/Generators/Debconf.py
@@ -13,10 +13,25 @@ class Debconf(Generator):
__author__ = 'bcfg-dev@mcs.anl.gov'
__provides__ = {'ConfigFile':{}}
- probes = [XML('''<probe interpreter='/bin/sh'>lspci|grep VGA</probe>''')]
-
- def __init__(self, core, datastore):
- Generator.__init__(self, core, datastore)
+ probes = [Element("probe", name='VGA', interpreter='/bin/sh', source='debconf')]
+ probes[0].text = '''
+ XSERVER='/usr/bin/X11/X|/usr/X11R6/bin/X'
+ if [ XFree86 -configure 2>/dev/null ] ; then
+ VGACARD=`tail -50 /root/XF86Config.new | grep Driver | awk -F\" '{print $2}'`
+ elif ps auxww | egrep ${XSERVER} | grep -v grep > /dev/null ;then
+ if [ -e /etc/X11/XF86Config ]; then
+ VGACARD=`tail -50 /etc/X11/XF86Config | grep Driver | awk -F\" '{print $2}'`
+ else
+ VGACARD=`tail -50 /etc/X11/XF86Config-4 | grep Driver | awk -F\" '{print $2}'`
+ fi
+ else
+ VGACARD=nv
+ fi
+ echo ${VGACARD}
+ '''
+
+ def __setup__(self):
+ self.__provides__['ConfigFile']['/var/spool/debconf/config.dat'] = self.build_config_dat
self.repo = DirectoryBacked(self.data, self.core.fam)
self.xsensed = {}
@@ -26,13 +41,17 @@ class Debconf(Generator):
entry.attrib['group'] = 'root'
entry.attrib['perms'] = '0600'
filedata = self.repo.entries['config.dat']
- xdriver = self.xsensed.get(metadata.hostname, "vesa")
+ xdriver = self.xsensed.get(metadata.hostname, "nv")
entry.text = filedata % (metadata.hostname, xdriver)
def get_probes(self, metadata):
'''Send out X probe'''
return self.probes
+ def accept_probe_data(self, metadata, probedata):
+ if probedata.attrib['name'] == "VGA":
+ self.xsensed[metadata.hostname] = probedata.text
+