From f5729051ab3f008106d4239ebdeb9f464bffeb7c Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Fri, 11 Oct 2013 12:09:40 -0500 Subject: [PATCH] Fix a circular import Signed-off-by: Zack Cerza --- scripts/nuke.py | 8 +++----- scripts/run.py | 5 +++-- scripts/schedule.py | 6 +++--- teuthology/misc.py | 20 ++++++++++++++++++++ teuthology/nuke.py | 2 +- teuthology/run.py | 25 +------------------------ teuthology/schedule.py | 3 ++- 7 files changed, 33 insertions(+), 36 deletions(-) diff --git a/scripts/nuke.py b/scripts/nuke.py index 836cf18b2e3df..aa9f91d861025 100644 --- a/scripts/nuke.py +++ b/scripts/nuke.py @@ -2,6 +2,7 @@ import argparse from argparse import RawTextHelpFormatter import textwrap +import teuthology.misc import teuthology.nuke @@ -10,9 +11,6 @@ def main(): def parse_args(): - from teuthology.run import config_file - from teuthology.run import MergeConfig - parser = argparse.ArgumentParser( description='Reset test machines', epilog=textwrap.dedent(''' @@ -29,8 +27,8 @@ def parse_args(): parser.add_argument( '-t', '--targets', nargs='+', - type=config_file, - action=MergeConfig, + type=teuthology.misc.config_file, + action=teuthology.misc.MergeConfig, default={}, dest='config', help='yaml config containing machines to nuke', diff --git a/scripts/run.py b/scripts/run.py index a476f163566a2..a1767e4d8f462 100644 --- a/scripts/run.py +++ b/scripts/run.py @@ -1,5 +1,6 @@ import argparse +import teuthology.misc import teuthology.run @@ -18,8 +19,8 @@ def parse_args(): 'config', metavar='CONFFILE', nargs='+', - type=teuthology.run.config_file, - action=teuthology.run.MergeConfig, + type=teuthology.misc.config_file, + action=teuthology.misc.MergeConfig, default={}, help='config file to read', ) diff --git a/scripts/schedule.py b/scripts/schedule.py index 6668794958b59..62732f2d10ba4 100644 --- a/scripts/schedule.py +++ b/scripts/schedule.py @@ -1,6 +1,6 @@ import argparse -import teuthology.run +import teuthology.misc import teuthology.schedule @@ -15,8 +15,8 @@ def parse_args(): 'config', metavar='CONFFILE', nargs='*', - type=teuthology.run.config_file, - action=teuthology.run.MergeConfig, + type=teuthology.misc.config_file, + action=teuthology.misc.MergeConfig, default={}, help='config file to read', ) diff --git a/teuthology/misc.py b/teuthology/misc.py index eb77fb83d5a6e..9892fe3189530 100644 --- a/teuthology/misc.py +++ b/teuthology/misc.py @@ -1,5 +1,6 @@ from cStringIO import StringIO +import argparse import os import logging import configobj @@ -26,6 +27,25 @@ is_vm = lambda x: x.startswith('vpm') or x.startswith('ubuntu@vpm') is_arm = lambda x: x.startswith('tala') or x.startswith('ubuntu@tala') or x.startswith('saya') or x.startswith('ubuntu@saya') +def config_file(string): + config_dict = {} + try: + with file(string) as f: + g = yaml.safe_load_all(f) + for new in g: + config_dict.update(new) + except IOError as e: + raise argparse.ArgumentTypeError(str(e)) + return config_dict + + +class MergeConfig(argparse.Action): + def __call__(self, parser, namespace, values, option_string=None): + config_dict = getattr(namespace, self.dest) + for new in values: + deep_merge(config_dict, new) + + def get_testdir(ctx): if 'test_path' in ctx.teuthology_config: return ctx.teuthology_config['test_path'] diff --git a/teuthology/nuke.py b/teuthology/nuke.py index 60a4f6f8bf7b8..b17c93d2abd96 100644 --- a/teuthology/nuke.py +++ b/teuthology/nuke.py @@ -9,12 +9,12 @@ from . import orchestra from .orchestra import run from .lock import list_locks from .lock import unlock_one +from .misc import config_file from .misc import get_testdir from .misc import get_user from .misc import read_config from .misc import reconnect from .parallel import parallel -from .run import config_file from .task import install as install_task from .task.internal import check_lock from .task.internal import connect diff --git a/teuthology/run.py b/teuthology/run.py index fe7bcb6f534a8..36b40e9f51508 100644 --- a/teuthology/run.py +++ b/teuthology/run.py @@ -1,4 +1,3 @@ -import argparse import os import yaml import StringIO @@ -8,34 +7,12 @@ import logging from traceback import format_tb from . import report -from .misc import deep_merge from .misc import get_distro from .misc import get_user from .misc import read_config from .nuke import nuke from .run_tasks import run_tasks -from .suite import email_results - - - -def config_file(string): - config = {} - try: - with file(string) as f: - g = yaml.safe_load_all(f) - for new in g: - config.update(new) - except IOError as e: - raise argparse.ArgumentTypeError(str(e)) - return config - - -class MergeConfig(argparse.Action): - - def __call__(self, parser, namespace, values, option_string=None): - config = getattr(namespace, self.dest) - for new in values: - deep_merge(config, new) +from .results import email_results def set_up_logging(ctx): diff --git a/teuthology/schedule.py b/teuthology/schedule.py index 509ef090867c5..d9b71fe8bde68 100644 --- a/teuthology/schedule.py +++ b/teuthology/schedule.py @@ -1,7 +1,8 @@ import yaml -from teuthology.misc import read_config, get_user import teuthology.queue +from teuthology.misc import get_user +from teuthology.misc import read_config def main(ctx): -- 2.39.5