[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