diff options
author | Ben Brown <ben.brown@codethink.co.uk> | 2014-01-21 12:23:08 +0000 |
---|---|---|
committer | Ben Brown <ben.brown@codethink.co.uk> | 2014-01-21 12:38:22 +0000 |
commit | 394a6c619cd9458fbd659a70963485b9519cbc04 (patch) | |
tree | f33ea2dec2b5cccac9095fc6b2c6295b5e12906d | |
parent | 451ee498abbf5a4b7986954a561e4bda94955e72 (diff) | |
download | trove-overseer-394a6c619cd9458fbd659a70963485b9519cbc04.tar.gz |
Fixup code
-rw-r--r-- | overseerlib/__init__.py | 1 | ||||
-rw-r--r-- | overseerlib/app.py | 38 | ||||
-rw-r--r-- | overseerlib/parseyaml.py | 25 |
3 files changed, 36 insertions, 28 deletions
diff --git a/overseerlib/__init__.py b/overseerlib/__init__.py index 1abf511..49d9ad0 100644 --- a/overseerlib/__init__.py +++ b/overseerlib/__init__.py @@ -18,6 +18,7 @@ import cliapp +import parseyaml import mailnotify import app diff --git a/overseerlib/app.py b/overseerlib/app.py index 13fb461..dc3e811 100644 --- a/overseerlib/app.py +++ b/overseerlib/app.py @@ -25,16 +25,32 @@ import cliapp import overseerlib +defaults = { + 'work-area': '/home/trove-overseer', + 'config-name': 'monitoring.conf', +} + + class TroveOverseer(cliapp.Application): def add_settings(self): - self.settings.string(['config-path'], 'path to configuration file', - metavar='FILE', default='/etc/monitoring.conf') + self.settings.string(['work-area'], + 'path to the area for the controller to work in', + metavar='PATH', + default=defaults['work-area']) + self.settings.string(['config-name'], 'configuration file name. ' + 'Defaults to monitoring.conf', + metavar='FILENAME', + default=defaults['config-name']) def process_args(self, args): -# self.rungit(['remote', 'update', 'origin']) -# self.rungit(['reset', '--hard', 'origin/master']) -# self.rungit(['clean', '-fdx']) + self.rungit(['remote', 'update', 'origin']) + self.rungit(['reset', '--hard', 'origin/master']) + self.rungit(['clean', '-fdx']) + config = os.path.join(self.settings['work-area'], 'git', + self.settings['config-name'])) + overseerlib.parseyaml.ParseYAML.load_config(config) + cliapp.Application.process_args(self, args) def human_to_bytes(self, threshold): @@ -51,19 +67,20 @@ class TroveOverseer(cliapp.Application): return int(num * prefix[letter]) def rungit(self, args): - self.runcmd(['git']+args, cwd='/src/morph') + self.runcmd(['git']+args, cwd=os.path.join(self.settings['work-area'], + 'git')) def write_to_html(self, html_file): if html_file: try: - with open(self.html_file + '.new', 'w') as ofh: + with open(html_file + '.new', 'w') as ofh: ofh.write('<!DOCTYPE html>\n') ofh.write(self.gen_html()) ofh.write('\n') - target = self.filename - os.rename(self.filename + '.new', target) + target = filename + os.rename(filename + '.new', target) except: - os.unlink(self.filename + '.new') + os.unlink(filename + '.new') raise def gen_footer(self): @@ -71,7 +88,6 @@ class TroveOverseer(cliapp.Application): return self.tag('div', Class='footer', content= 'Generated by Trove Monitoring at ' + curtime) - def tag(self, tagname, content=None, gap=False, **kwargs): tagval = ' '.join([tagname] + ['%s=%r' % (k.lower(), v) diff --git a/overseerlib/parseyaml.py b/overseerlib/parseyaml.py index 664f265..8aacfa7 100644 --- a/overseerlib/parseyaml.py +++ b/overseerlib/parseyaml.py @@ -23,21 +23,12 @@ import cliapp class ParseYAML(object): - def parse_yaml(self, self.settings['config-name']): - sender = 'ben.brown@codethink.co.uk' - username = 'benbrown' - password = getpass.getpass() - recipients = ['ben.brown@codethink.co.uk'] - composed_message = '''\ -From: %s -To: %s -Subject: Test - -%s - ''' % (sender, ', '.join(recipients), content) - server = smtplib.SMTP_SSL('imap.codethink.co.uk') - server.login(username, password) + def load_config(self, config): + with open(config) as f: + text = f.read() try: - server.sendmail(sender, recipients, composed_message) - finally: - server.close + obj = yaml.safe_load(text) + except yaml.error.YAMLError as e: + raise cliapp.AppException('Could not load configuration file') + + return obj |