JIRA:FUNCTEST-1 -run_rally: added cinder as input parameter and other minor changes
authorjose.lausuch <jose.lausuch@ericsson.com>
Wed, 29 Apr 2015 16:10:48 +0000 (18:10 +0200)
committerjose.lausuch <jose.lausuch@ericsson.com>
Thu, 30 Apr 2015 09:22:23 +0000 (11:22 +0200)
Change-Id: Ic413ee1687e15499f8cf5f38b729083ec00269c6
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
testcases/VIM/OpenStack/CI/libraries/run_rally.py

index 898fca6..b3275fb 100644 (file)
 import re, json, os, urllib2, argparse, logging
 
 """ tests configuration """
-tests = ['authenticate', 'glance', 'heat', 'keystone', 'neutron', 'nova', 'tempest', 'vm', 'all']
+tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone', 'neutron', 'nova', 'tempest', 'vm', 'all']
 parser = argparse.ArgumentParser()
 parser.add_argument("test_name", help="The name of the test you want to perform with rally. "
                                       "Possible values are : "
                                       "[ {d[0]} | {d[1]} | {d[2]} | {d[3]} | {d[4]} | {d[5]} | {d[6]} "
-                                      "| {d[7]} | {d[8]} ]. The 'all' value performs all the tests scenarios "
+                                      "| {d[7]} | {d[8]} | {d[9]} ]. The 'all' value performs all the tests scenarios "
                                       "except 'tempest'".format(d=tests))
 
 parser.add_argument("-d", "--debug", help="Debug mode",  action="store_true")
@@ -64,14 +64,14 @@ def task_succeed(json_raw):
         return False
     if rally_report.get('result') is None:
         return False
+
     for result in rally_report.get('result'):
         if len(result.get('error')) > 0:
             return False
+
     return True
+
+
 def run_task(test_name):
     """
     the "main" function of the script who lunch rally for a task
@@ -79,7 +79,7 @@ def run_task(test_name):
     :return: void
     """
     logger.info('starting {} test ...'.format(test_name))
+
     """ get the date """
     cmd = os.popen("date '+%d%m%Y_%H%M'")
     test_date = cmd.read().rstrip()
@@ -91,10 +91,10 @@ def run_task(test_name):
     if not os.path.exists(test_file_name):
         logger.debug('{} does not exists'.format(test_file_name))
         proceed_test = retrieve_test_cases_file(test_name, tests_path)
-        logger.debug('successfully downloaded to : {}'.format(test_file_name))
  
     """ we do the test only if we have a scenario test file """
     if proceed_test:
+        logger.debug('successfully downloaded to : {}'.format(test_file_name))
         cmd_line = "rally task start --abort-on-sla-failure %s" % test_file_name
         logger.debug('running command line : {}'.format(cmd_line))
         cmd = os.popen(cmd_line)
@@ -110,13 +110,13 @@ def run_task(test_name):
         if not os.path.exists(report_path):
             logger.debug('does not exists, we create it'.format(report_path))
             os.makedirs(report_path)
+
         """ write html report file """
         report_file_name = '{}/opnfv-{}-{}.html'.format(report_path, test_name, test_date)
         cmd_line = "rally task report %s --out %s" % (task_id, report_file_name)
         logger.debug('running command line : {}'.format(cmd_line))
         os.popen(cmd_line)
+
         """ get and save rally operation JSON result """
         cmd_line = "rally task results %s" % task_id
         logger.debug('running command line : {}'.format(cmd_line))
@@ -125,6 +125,7 @@ def run_task(test_name):
         with open('{}/opnfv-{}-{}.json'.format(report_path, test_name, test_date), 'w') as f:
             logger.debug('saving json file')
             f.write(json_results)
+            logger.debug('saving json file2')
  
         """ parse JSON operation result """
         if task_succeed(json_results):
@@ -132,7 +133,7 @@ def run_task(test_name):
         else:
             print '{} KO'.format(test_date)
     else:
-        logger.error('{} test failed, unable to find a scenario test file'.format(test_name))
+        logger.error('{} test failed, unable to download a scenario test file'.format(test_name))
  
  
 def retrieve_test_cases_file(test_name, tests_path):
@@ -143,20 +144,20 @@ def retrieve_test_cases_file(test_name, tests_path):
  
     """ do not add the "/" at the end """
     url_base = "https://git.opnfv.org/cgit/functest/plain/testcases/VIM/OpenStack/CI/suites"
+
     test_file_name = 'opnfv-{}.json'.format(test_name)
     logger.info('fetching {}/{} ...'.format(url_base, test_file_name))
+
     try:
         response = urllib2.urlopen('{}/{}'.format(url_base, test_file_name))
     except (urllib2.HTTPError, urllib2.URLError):
         return False
     file_raw = response.read()
+
     """ check if the test path exist otherwise we create it """
     if not os.path.exists(tests_path):
         os.makedirs(tests_path)
+
     with open('{}/{}'.format(tests_path, test_file_name), 'w') as f:
         f.write(file_raw)
     return True