[Oval-commits] r173 - trunk/oval-agent/ovalHttpClient
Pavel Vinogradov
blaze-guest at alioth.debian.org
Mon Aug 20 16:07:20 UTC 2007
Author: blaze-guest
Date: 2007-08-20 16:07:20 +0000 (Mon, 20 Aug 2007)
New Revision: 173
Modified:
trunk/oval-agent/ovalHttpClient/ovalHttpClient.py
Log:
Implement definitions evaluation
Modified: trunk/oval-agent/ovalHttpClient/ovalHttpClient.py
===================================================================
--- trunk/oval-agent/ovalHttpClient/ovalHttpClient.py 2007-08-20 15:28:28 UTC (rev 172)
+++ trunk/oval-agent/ovalHttpClient/ovalHttpClient.py 2007-08-20 16:07:20 UTC (rev 173)
@@ -1,7 +1,7 @@
import urllib, time
+import os
+import re
-global logger
-
class OvalHttpClient:
version = 0.1
UserAgent = "OvalHttpClient/%d" % version
@@ -14,21 +14,46 @@
self.workdir = config['workdir']
self.logger = logger
- def fetchIndex(self):
+ self.definitionsPath = '%s/definitions.xml' % self.workdir
+ self.evaluationResult = {'1341' : 't', '1353' : 't', '1245' : 'f'}
+
+ def getDefinitions(self):
url = "http://%s:%d%s" % (self.server, self.port, self.baseurl)
self.logger.debug ("Fetch: %s" % url)
index = urllib.urlopen (url)
+ print index.info()
data = index.read()
- file = open('%s/definitions.xml' % self.workdir, 'w')
+ file = open(self.definitionsPath, 'w')
file.write(data)
file.close()
+ #self.evaluate()
+
+ def postResult(self):
+ pass
+
+ def parse (self, result):
+ status = {}
+ pattern = re.compile(r'oval:org\.debian:def:(\d{1,5}) *([true|false])')
+
+ for line in result.split('\n'):
+ result = pattern.search (line)
+ if result:
+ status[result.groups()[0]] =result.groups()[1]
+ return status
+
+ def evaluate(self):
+ self.logger.debug ('Start definitions evaluation')
+ result = os.popen('ovaldi -m -o %s/definitions.xml' % self.workdir)
+ res = result.read()
+ print self.parse (res)
+
def run(self):
while 1:
self.logger.debug ('Check updates on server')
try:
- self.fetchIndex()
+ self.getDefinitions()
except IOError, e:
self.logger.info('Server not available %s' % str(e))
self.logger.debug ('Go to sleep')
More information about the Oval-commits
mailing list