[Oval-commits] r171 - in trunk/oval-agent: . ovalHttpClient

Pavel Vinogradov blaze-guest at alioth.debian.org
Mon Aug 20 15:09:24 UTC 2007


Author: blaze-guest
Date: 2007-08-20 15:09:24 +0000 (Mon, 20 Aug 2007)
New Revision: 171

Added:
   trunk/oval-agent/.project
   trunk/oval-agent/.pydevproject
   trunk/oval-agent/oval-agent.cfg
   trunk/oval-agent/oval-agent.py
   trunk/oval-agent/ovalHttpClient/
   trunk/oval-agent/ovalHttpClient/__init__.py
   trunk/oval-agent/ovalHttpClient/ovalHttpClient.py
Log:
Import oval-agent source

Added: trunk/oval-agent/.project
===================================================================
--- trunk/oval-agent/.project	                        (rev 0)
+++ trunk/oval-agent/.project	2007-08-20 15:09:24 UTC (rev 171)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>oval-agent</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.python.pydev.PyDevBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.python.pydev.pythonNature</nature>
+	</natures>
+</projectDescription>

Added: trunk/oval-agent/.pydevproject
===================================================================
--- trunk/oval-agent/.pydevproject	                        (rev 0)
+++ trunk/oval-agent/.pydevproject	2007-08-20 15:09:24 UTC (rev 171)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?>
+
+<pydev_project>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/oval-agent/src</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.4</pydev_property>
+</pydev_project>

Added: trunk/oval-agent/oval-agent.cfg
===================================================================
--- trunk/oval-agent/oval-agent.cfg	                        (rev 0)
+++ trunk/oval-agent/oval-agent.cfg	2007-08-20 15:09:24 UTC (rev 171)
@@ -0,0 +1,13 @@
+[server]
+baseurl = /
+check_interval = 1
+server = 127.0.0.1
+port = 8989
+descr = laptop.home.nixdev.net
+
+[general]
+log_dir = /home/blaze/tmp/oval/agent/log
+log_file = oval-agent.log
+log_level = info
+workdir = /home/blaze/tmp/oval/agent/definitions
+

Added: trunk/oval-agent/oval-agent.py
===================================================================
--- trunk/oval-agent/oval-agent.py	                        (rev 0)
+++ trunk/oval-agent/oval-agent.py	2007-08-20 15:09:24 UTC (rev 171)
@@ -0,0 +1,53 @@
+from ConfigParser import SafeConfigParser
+from ovalHttpClient import ovalHttpClient
+import os, logging
+
+class agentThread:
+	config = SafeConfigParser()
+	logger = logging.getLogger()
+	
+	def __init__(self, cfgfile):
+		try:
+			self.config.read(cfgfile)
+			self.workdir = self.config.get('general', 'workdir')
+			logdirname = self.config.get('general', 'log_dir')
+			logfilename = self.config.get('general', 'log_file')
+			outfilename = os.path.join(logdirname, logfilename)
+			
+			# Create the root handler (removing any others)
+			hdlr = logging.FileHandler(outfilename, 'a')
+			hdlr.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(name)s %(levelname)s %(message)s'))
+			for h in logging.root.handlers:
+				logging.root.removeHandler(h)
+			logging.root.addHandler(hdlr)
+			logging.root.setLevel(logging.DEBUG)
+			self.logger.info('Logging begins')
+
+		except IOError, e:
+			logger.exception('error: ' + str(e))
+			logging.shutdown()
+			exit(2)
+	
+	def readConfigSection (self, section):
+		conf = {}
+		
+		if self.config.has_section(section):
+			data = self.config.items(section)
+			for opts in data:
+				conf[opts[0]] = opts[1]
+		return conf
+		
+	def run(self):
+		self.logger.info('clientThread.RUN')
+		config = self.readConfigSection('server')
+		config['workdir'] = self.workdir
+		
+		client = ovalHttpClient.OvalHttpClient(config, self.logger)
+		
+		client.run()
+			
+if __name__ == "__main__":
+	client = agentThread('oval-agent.cfg')
+	client.run ()
+	
+

Added: trunk/oval-agent/ovalHttpClient/__init__.py
===================================================================

Added: trunk/oval-agent/ovalHttpClient/ovalHttpClient.py
===================================================================
--- trunk/oval-agent/ovalHttpClient/ovalHttpClient.py	                        (rev 0)
+++ trunk/oval-agent/ovalHttpClient/ovalHttpClient.py	2007-08-20 15:09:24 UTC (rev 171)
@@ -0,0 +1,35 @@
+import urllib, time
+
+global logger
+
+class OvalHttpClient:
+	version = 0.1
+	UserAgent = "OvalHttpClient/%d" % version
+	
+	def __init__(self, config, logger):
+		self.server = config['server']
+		self.port = int(config['port'])
+		self.baseurl = config['baseurl']
+		self.check_interval = int(config['check_interval'])
+		self.workdir = config['workdir']
+		self.logger = logger
+		
+	def fetchIndex(self):
+		url = "http://%s:%d%s" % (self.server, self.port, self.baseurl)
+		self.logger.debug ("Fetch: %s" % url)
+		index = urllib.urlopen (url)
+		data = index.read()
+		
+		file = open('%s/definitions.xml' % self.workdir, 'w')
+		file.write(data)
+		file.close()
+		
+	def run(self):
+		while 1:
+			self.logger.debug ('Check updates on server')
+			try:
+				self.fetchIndex()
+			except IOError, e:
+				self.logger.info('Server not available %s' % str(e))
+			self.logger.debug ('Go to sleep')
+			time.sleep(60 * self.check_interval)			
\ No newline at end of file




More information about the Oval-commits mailing list