summaryrefslogtreecommitdiff
path: root/ybd/utils.py
diff options
context:
space:
mode:
authorDaniel Firth <dan.firth@codethink.co.uk>2016-11-29 13:01:14 +0000
committerDaniel Firth <dan.firth@codethink.co.uk>2016-11-29 13:01:14 +0000
commit54aff1da1ea84c78e768681157f053c753c4df36 (patch)
treec323b4dc3296fd5b7c7f698bb0634f1964149c62 /ybd/utils.py
parenta53b5fd06a392a7d4ce8b03a5416114ad3726faf (diff)
downloadybd-54aff1da1ea84c78e768681157f053c753c4df36.tar.gz
Revert "Move chdir, timer to utils; fix circular deps"
This reverts commit c3d414dd1fd062dafe0806851094a953530a7fdd.
Diffstat (limited to 'ybd/utils.py')
-rw-r--r--ybd/utils.py73
1 files changed, 12 insertions, 61 deletions
diff --git a/ybd/utils.py b/ybd/utils.py
index 34791e6..ee57aaf 100644
--- a/ybd/utils.py
+++ b/ybd/utils.py
@@ -25,14 +25,7 @@ import sys
from fs.osfs import OSFS
from fs.multifs import MultiFS
import calendar
-from ybd import config
-
-try:
- from riemann_client.transport import TCPTransport
- from riemann_client.client import QueuedClient
- riemann_available = True
-except ImportError:
- riemann_available = False
+from ybd.config import config
# The magic number for timestamps: 2011-11-11 11:11:11
default_magic_timestamp = calendar.timegm([2011, 11, 11, 11, 11, 11])
@@ -372,7 +365,7 @@ def make_deterministic_tar_archive(base_name, root):
'''
- with chdir(root), open(base_name + '.tar', 'wb') as f:
+ with app.chdir(root), open(base_name + '.tar', 'wb') as f:
with tarfile.TarFile(mode='w', fileobj=f) as f_tar:
directories = [d[0] for d in os.walk('.')]
for d in sorted(directories):
@@ -387,10 +380,8 @@ def _find_extensions(paths):
the return dict.'''
extension_kinds = ['check', 'configure', 'write']
- tfs = OSFS(paths[0])
efs = MultiFS()
- for x in paths:
- efs.addfs(x, OSFS(x))
+ map(lambda x: efs.addfs(x, OSFS(x)), paths)
def get_extensions(kind):
return {os.path.splitext(x)[0]: efs.getsyspath(x)
@@ -437,24 +428,23 @@ def log(dn, message='', data='', verbose=False, exit=False):
print('\n\n')
message = 'ERROR: ' + message.replace('WARNING: ', '')
- if verbose is True and config.config.get('log-verbose', False) is False:
+ if verbose is True and config.get('log-verbose', False) is False:
return
name = dn['name'] if type(dn) is dict else dn
timestamp = datetime.datetime.now().strftime('%y-%m-%d %H:%M:%S ')
- if config.config.get('log-timings') == 'elapsed':
- timestamp = timestamp[:9] + elapsed(config.config['start-time']) + ' '
- if config.config.get('log-timings', 'omit') == 'omit':
+ if config.get('log-timings') == 'elapsed':
+ timestamp = timestamp[:9] + elapsed(config['start-time']) + ' '
+ if config.get('log-timings', 'omit') == 'omit':
timestamp = ''
progress = ''
- if config.config.get('counter'):
- count = config.config['counter'].get()
- progress = '[%s/%s/%s] ' % \
- (count, config.config['tasks'], config.config['total'])
+ if config.get('counter'):
+ count = config['counter'].get()
+ progress = '[%s/%s/%s] ' % (count, config['tasks'], config['total'])
entry = '%s%s[%s] %s %s\n' % (timestamp, progress, name, message, data)
- if config.config.get('instances'):
- entry = str(config.config.get('fork', 0)) + ' ' + entry
+ if config.get('instances'):
+ entry = str(config.get('fork', 0)) + ' ' + entry
print(entry),
sys.stdout.flush()
@@ -471,42 +461,3 @@ def log_env(log, env, message=''):
logfile.write('%s=%s\n' % (key, msg))
logfile.write(message + '\n\n')
logfile.flush()
-
-
-@contextlib.contextmanager
-def chdir(dirname=None):
- currentdir = os.getcwd()
- try:
- if dirname is not None:
- os.chdir(dirname)
- yield
- finally:
- os.chdir(currentdir)
-
-
-@contextlib.contextmanager
-def timer(dn, message=''):
- starttime = datetime.datetime.now()
- log(dn, 'Starting ' + message)
- if type(dn) is dict:
- dn['start-time'] = starttime
- try:
- yield
- except:
- raise
- text = '' if message == '' else ' for ' + message
- time_elapsed = elapsed(starttime)
- log(dn, 'Elapsed time' + text, time_elapsed)
- log_riemann(dn, 'Timer', text, time_elapsed)
-
-
-def log_riemann(dn, service, text, time_elapsed):
- if riemann_available and 'riemann-server' in config.config:
- time_split = time_elapsed.split(':')
- time_sec = int(time_split[0]) * 3600 \
- + int(time_split[1]) * 60 + int(time_split[2])
- with QueuedClient(TCPTransport(config.config['riemann-server'],
- config.config['riemann-port'],
- timeout=30)) as client:
- client.event(service=service, description=text, metric_f=time_sec)
- client.flush()