Merge "remove failing influx testcases"
[yardstick.git] / yardstick / cmd / cli.py
index ee8d1c5..05bf8f0 100644 (file)
@@ -11,6 +11,7 @@
 Command-line interface to yardstick
 '''
 
+from __future__ import absolute_import
 import logging
 import os
 import sys
@@ -19,11 +20,13 @@ from pkg_resources import get_distribution
 from argparse import RawDescriptionHelpFormatter
 from oslo_config import cfg
 
+from yardstick import _init_logging, LOG
 from yardstick.cmd.commands import task
 from yardstick.cmd.commands import runner
 from yardstick.cmd.commands import scenario
 from yardstick.cmd.commands import testcase
 from yardstick.cmd.commands import plugin
+from yardstick.cmd.commands import env
 
 CONF = cfg.CONF
 cli_opts = [
@@ -62,7 +65,8 @@ class YardstickCLI():
         'runner': runner.RunnerCommands,
         'scenario': scenario.ScenarioCommands,
         'testcase': testcase.TestcaseCommands,
-        'plugin': plugin.PluginCommands
+        'plugin': plugin.PluginCommands,
+        'env': env.EnvCommand
     }
 
     def __init__(self):
@@ -127,15 +131,12 @@ class YardstickCLI():
 
     def _handle_global_opts(self):
 
-        # handle global opts
-        logger = logging.getLogger('yardstick')
-        logger.setLevel(logging.WARNING)
-
+        _init_logging()
         if CONF.verbose:
-            logger.setLevel(logging.INFO)
+            LOG.setLevel(logging.INFO)
 
         if CONF.debug:
-            logger.setLevel(logging.DEBUG)
+            LOG.setLevel(logging.DEBUG)
 
     def _dispath_func_notask(self):
 
@@ -156,24 +157,26 @@ class YardstickCLI():
 
     def main(self, argv):    # pragma: no cover
         '''run the command line interface'''
-        self._register_cli_opt()
-
-        self._load_cli_config(argv)
+        try:
+            self._register_cli_opt()
 
-        self._handle_global_opts()
+            self._load_cli_config(argv)
 
-        self._dispath_func_notask()
+            self._handle_global_opts()
 
-        self._clear_config_opts()
+            self._dispath_func_notask()
+        finally:
+            self._clear_config_opts()
 
     def api(self, argv, task_id):    # pragma: no cover
         '''run the api interface'''
-        self._register_cli_opt()
-
-        self._load_cli_config(argv)
+        try:
+            self._register_cli_opt()
 
-        self._handle_global_opts()
+            self._load_cli_config(argv)
 
-        self._dispath_func_task(task_id)
+            self._handle_global_opts()
 
-        self._clear_config_opts()
+            self._dispath_func_task(task_id)
+        finally:
+            self._clear_config_opts()