summaryrefslogtreecommitdiffstats
path: root/promise/test/functest/run_promise_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'promise/test/functest/run_promise_tests.py')
-rw-r--r--promise/test/functest/run_promise_tests.py90
1 files changed, 36 insertions, 54 deletions
diff --git a/promise/test/functest/run_promise_tests.py b/promise/test/functest/run_promise_tests.py
index f7e9148..a57918c 100644
--- a/promise/test/functest/run_promise_tests.py
+++ b/promise/test/functest/run_promise_tests.py
@@ -10,7 +10,6 @@
import argparse
import json
import logging
-import logging.config
import os
import re
import subprocess
@@ -29,11 +28,12 @@ parser.add_argument("-r", "--report",
args = parser.parse_args()
-PROMISE_REPO_DIR = CONST.dir_repo_promise
+PROMISE_REPO_DIR = '/src/promise'
RESULTS_DIR = CONST.dir_results
PROMISE_TENANT_NAME = CONST.promise_tenant_name
-TENANT_DESCRIPTION = CONST.promise_tenant_description
+PROMISE_PROJECT_NAME = CONST.promise_tenant_name
+PROMISE_PROJECT_DESCRIPTION = CONST.promise_tenant_description
PROMISE_USER_NAME = CONST.promise_user_name
PROMISE_USER_PWD = CONST.promise_user_pwd
PROMISE_IMAGE_NAME = CONST.promise_image_name
@@ -61,25 +61,8 @@ logger = logging.getLogger('promise')
def main():
return_code = -1
- change_keystone_version = False
os_auth = os.environ["OS_AUTH_URL"]
- # check keystone version
- # if keystone v3, for keystone v2
- if os_utils.is_keystone_v3():
- os.environ["OS_IDENTITY_API_VERSION"] = "2"
- # the OS_AUTH_URL may have different format according to the installer
- # apex: OS_AUTH_URL=http://192.168.37.17:5000/v2.0
- # fuel: OS_AUTH_URL='http://192.168.0.2:5000/'
- # OS_AUTH_URL='http://192.168.10.2:5000/v3
- match = re.findall(r'[0-9]+(?:\.[0-9]+){3}:[0-9]+',
- os.environ["OS_AUTH_URL"])
- new_url = "http://" + match[0] + "/v2.0"
-
- os.environ["OS_AUTH_URL"] = new_url
- change_keystone_version = True
- logger.info("Force Keystone v2")
-
creds = os_utils.get_credentials()
try:
@@ -87,27 +70,25 @@ def main():
logger.info("OS_AUTH_URL: %s" % os.environ["OS_AUTH_URL"])
logger.info("OS_IDENTITY_API_VERSION: %s " %
os.environ["OS_IDENTITY_API_VERSION"])
+ logger.info("OS_USER_DOMAIN_NAME: %s" %
+ os.environ["OS_USER_DOMAIN_NAME"])
+ logger.info("OS_PROJECT_DOMAIN_NAME: %s" %
+ os.environ["OS_PROJECT_DOMAIN_NAME"])
except KeyError:
logger.error("Please set the OS environment variables")
keystone_client = os_utils.get_keystone_client()
- user_id = os_utils.get_user_id(keystone_client, creds['username'])
- if user_id == '':
- logger.error("Error : Failed to get id of %s user" %
- creds['username'])
- return return_code
-
- logger.info("Creating tenant '%s'..." % PROMISE_TENANT_NAME)
- tenant_id = os_utils.create_tenant(
- keystone_client, PROMISE_TENANT_NAME, TENANT_DESCRIPTION)
- if not tenant_id:
- logger.error("Error : Failed to create %s tenant"
- % PROMISE_TENANT_NAME)
+ logger.info("Creating project '%s'..." % PROMISE_PROJECT_NAME)
+ project_id = os_utils.create_tenant(
+ keystone_client, PROMISE_PROJECT_NAME, PROMISE_PROJECT_DESCRIPTION)
+ if not project_id:
+ logger.error("Error : Failed to create %s project"
+ % PROMISE_PROJECT_NAME)
return return_code
- logger.debug("Tenant '%s' created successfully." % PROMISE_TENANT_NAME)
+ logger.debug("Project '%s' created successfully." % PROMISE_PROJECT_NAME)
- roles_name = ["admin", "Admin"]
+ roles_name = ["_member_", "Member"]
role_id = ''
for role_name in roles_name:
if role_id == '':
@@ -117,24 +98,32 @@ def main():
logger.error("Error : Failed to get id for %s role" % role_name)
return return_code
- logger.info("Adding role '%s' to tenant '%s'..."
- % (role_id, PROMISE_TENANT_NAME))
- if not os_utils.add_role_user(keystone_client, user_id,
- role_id, tenant_id):
- logger.error("Error : Failed to add %s on tenant %s" %
- (creds['username'], PROMISE_TENANT_NAME))
+ domain_id = ''
+ domain_id = os_utils.get_domain_id(keystone_client,
+ os.environ["OS_USER_DOMAIN_NAME"])
+ if domain_id == '':
+ logger.error("Error: Failed to get id for %s domain" %
+ os.environ["OS_USER_DOMAIN_NAME"])
return return_code
- logger.debug("Role added successfully.")
logger.info("Creating user '%s'..." % PROMISE_USER_NAME)
- user_id = os_utils.create_user(
- keystone_client, PROMISE_USER_NAME, PROMISE_USER_PWD, None, tenant_id)
-
- if not user_id:
+ try:
+ user = keystone_client.users.create(name=PROMISE_USER_NAME,
+ domain=domain_id,
+ password=PROMISE_USER_PWD)
+ except Exception as e:
logger.error("Error : Failed to create %s user" % PROMISE_USER_NAME)
return return_code
logger.debug("User '%s' created successfully." % PROMISE_USER_NAME)
+ try:
+ keystone_client.roles.grant(role=role_id, user=user.id,
+ project=project_id)
+ except Exception as e:
+ logger.error("Error: Failed to grant member role on project %s" %
+ project_id)
+ return return_code
+
nova_client = os_utils.get_nova_client()
glance_client = os_utils.get_glance_client()
@@ -188,7 +177,7 @@ def main():
os.environ["OS_TEST_IMAGE"] = image_id
os.environ["OS_TEST_FLAVOR"] = flavor_id
os.environ["OS_TEST_NETWORK"] = network_dic["net_id"]
- os.environ["OS_TENANT_NAME"] = PROMISE_TENANT_NAME
+ os.environ["OS_PROJECT_NAME"] = PROMISE_PROJECT_NAME
os.environ["OS_USERNAME"] = PROMISE_USER_NAME
os.chdir(PROMISE_REPO_DIR + '/source/')
@@ -239,16 +228,9 @@ def main():
start_time_json, end_time, duration))
end_time = time.time()
- # re set default keysone version to 3 if it has been changed for promise
- if change_keystone_version:
- os.environ["OS_IDENTITY_API_VERSION"] = "3"
- os.environ["OS_AUTH_URL"] = os_auth
- logger.info("Revert to Keystone v3")
-
return return_code
if __name__ == '__main__':
- logging.config.fileConfig(
- CONST.__getattribute__('dir_functest_logging_cfg'))
+ logging.basicConfig(level=logging.INFO)
sys.exit(main())