From 0ebe46c9fdbebdb26214fa3f76e37ff17cccaff5 Mon Sep 17 00:00:00 2001 From: Rick Bradshow Date: Thu, 16 Dec 2004 21:36:46 +0000 Subject: this is the hot new X stuff 2004/12/16 15:34:47-06:00 anl.gov!bradshaw Change mode to -rw-r--r-- 2004/10/20 13:20:21-05:00 anl.gov!bradshaw added the probe for the VGA card into the generator. THis is untested. (Logical change 1.164) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@732 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Generators/Debconf.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'src/lib') 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('''lspci|grep VGA''')] - - 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 + -- cgit v1.2.3-1-g7c22