On Thu, Apr 26, 2012 at 12:07:02AM +0200, Michael Hanselmann wrote:
> This script can be used to check if an instance is running or stopped at
> various points during a QA run. Environment variables are used to pass
> the most essential information.

Not sure if this is a good approach. You rely on manually annotating the
generic instance function with sprinkled CheckInstance tests.

I think we should not do such manual annotation and instead annotate the
instance tests themselves with a running yes/no flag after it. In the
sense that after each test, we should automatically check whether the
instance is running or not.


> ---
>  qa/ganeti-qa.py   |   36 ++++++++++++++++++++++++++++++++----
>  qa/qa-sample.json |    3 +++
>  qa/qa_config.py   |   19 +++++++++++++++++++
>  qa/qa_utils.py    |   35 +++++++++++++++++++++++++++++++++++
>  4 files changed, 89 insertions(+), 4 deletions(-)
> 
> diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
> index d35ebd6..01a2b1e 100755
> --- a/qa/ganeti-qa.py
> +++ b/qa/ganeti-qa.py
> @@ -72,7 +72,7 @@ def _DescriptionOf(fn):
>    return desc.rstrip(".")
>  
>  
> -def RunTest(fn, *args):
> +def RunTest(fn, *args, **kwargs):
>    """Runs a test after printing a header.
>  
>    """
> @@ -85,7 +85,7 @@ def RunTest(fn, *args):
>    print _FormatHeader("%s start %s" % (tstart, desc))
>  
>    try:
> -    retval = fn(*args)
> +    retval = fn(*args, **kwargs)
>      return retval
>    finally:
>      tstop = datetime.datetime.now()
> @@ -93,7 +93,7 @@ def RunTest(fn, *args):
>      print _FormatHeader("%s time=%s %s" % (tstop, tdelta, desc))
>  
>  
> -def RunTestIf(testnames, fn, *args):
> +def RunTestIf(testnames, fn, *args, **kwargs):
>    """Runs a test conditionally.
>  
>    @param testnames: either a single test name in the configuration
> @@ -101,7 +101,7 @@ def RunTestIf(testnames, fn, *args):
>  
>    """
>    if qa_config.TestEnabled(testnames):
> -    RunTest(fn, *args)
> +    RunTest(fn, *args, **kwargs)
>    else:
>      tstart = datetime.datetime.now()
>      desc = _DescriptionOf(fn)

Up to here LGTM, these can go as a separate patch.

thanks,
iustin

Reply via email to