[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