import requests
import sys
import novaclient.v2.client as novaclient
+from keystoneclient.v2_0 import client as keystoneclient
+from glanceclient import client as glanceclient
""" tests configuration """
tests = ['authenticate', 'glance', 'cinder', 'ceilometer', 'heat', 'keystone',
'neutron', 'nova', 'quotas', 'requests', 'vm', 'all']
parser = argparse.ArgumentParser()
-parser.add_argument("repo_path", help="Path to the repository")
parser.add_argument("test_name",
help="Module name to be tested"
"Possible values are : "
args = parser.parse_args()
-sys.path.append(args.repo_path + "testcases/")
-import functest_utils
+
""" logging configuration """
logger = logging.getLogger("run_rally")
ch.setFormatter(formatter)
logger.addHandler(ch)
-with open(args.repo_path+"testcases/config_functest.yaml") as f:
+REPO_PATH=os.environ['repos_dir']+'/functest/'
+if not os.path.exists(REPO_PATH):
+ logger.error("Functest repository directory not found '%s'" % REPO_PATH)
+ exit(-1)
+sys.path.append(REPO_PATH + "testcases/")
+import functest_utils
+
+with open("/home/opnfv/functest/conf/config_functest.yaml") as f:
functest_yaml = yaml.safe_load(f)
f.close()
HOME = os.environ['HOME']+"/"
-REPO_PATH = args.repo_path
SCENARIOS_DIR = REPO_PATH + functest_yaml.get("general"). \
get("directories").get("dir_rally_scn")
RESULTS_DIR = functest_yaml.get("general").get("directories"). \
- get("dir_rally_res") + "/rally/"
+ get("dir_rally_res")
TEST_DB = functest_yaml.get("results").get("test_db_url")
GLANCE_IMAGE_NAME = "functest-img-rally"
url = TEST_DB + "/results"
installer = functest_utils.get_installer_type(logger)
- git_version = functest_utils.get_git_branch(args.repo_path)
+ git_version = functest_utils.get_git_branch(REPO_PATH)
pod_name = functest_utils.get_pod_name(logger)
# TODO pod_name hardcoded, info shall come from Jenkins
params = {"project_name": "functest", "case_name": "Rally",
.format(test_name))
-def delete_glance_image(name):
- cmd = ("glance image-delete $(glance image-list | grep %s "
- "| awk '{print $2}' | head -1)" % name)
- functest_utils.execute_command(cmd, logger)
- return True
-
-
-def cleanup(nova):
- logger.info("Cleaning up...")
- logger.debug("Deleting image...")
- delete_glance_image(GLANCE_IMAGE_NAME)
- return True
-
-
def main():
# configure script
if not (args.test_name in tests):
creds_nova = functest_utils.get_credentials("nova")
nova_client = novaclient.Client(**creds_nova)
+ creds_keystone = functest_utils.get_credentials("keystone")
+ keystone_client = keystoneclient.Client(**creds_keystone)
+ glance_endpoint = keystone_client.service_catalog.url_for(service_type='image',
+ endpoint_type='publicURL')
+ glance_client = glanceclient.Client(1, glance_endpoint,
+ token=keystone_client.auth_token)
logger.debug("Creating image '%s' from '%s'..." % (GLANCE_IMAGE_NAME, GLANCE_IMAGE_PATH))
- create_glance_image(GLANCE_IMAGE_PATH, GLANCE_IMAGE_NAME, GLANCE_IMAGE_FORMAT)
-
+ image_id = functest_utils.create_glance_image(glance_client,
+ GLANCE_IMAGE_NAME,GLANCE_IMAGE_PATH)
+ if not image_id:
+ logger.error("Failed to create a Glance image...")
+ exit(-1)
# Check if the given image exists
try:
nova_client.images.find(name=GLANCE_IMAGE_NAME)
print(args.test_name)
run_task(args.test_name)
- cleanup(nova_client)
+ if not functest_utils.delete_glance_image(nova_client, image_id):
+ logger.error("Error deleting the glance image")
if __name__ == '__main__':
main()