Updated vims to support keystone v3 69/26369/6
authorJose Lausuch <jose.lausuch@ericsson.com>
Wed, 21 Dec 2016 10:32:03 +0000 (10:32 +0000)
committerboucherv <valentin.boucher@orange.com>
Wed, 21 Dec 2016 14:12:12 +0000 (15:12 +0100)
Adding the choice, into openstack_utils,
to get openstack client with environment credentials
or with a specific credentials (new user/tenant..)

JIRA: FUNCTEST-529

Change-Id: I295808311de40f37a07b5a831852876a51f276f3
Signed-off-by: boucherv <valentin.boucher@orange.com>
1  2 
functest/opnfv_tests/vnf/ims/vims.py
functest/utils/openstack_utils.py

@@@ -19,10 -19,10 +19,7 @@@ import subproces
  import time
  
  import argparse
--import keystoneclient.v2_0.client as ksclient
--import novaclient.client as nvclient
  import requests
--from neutronclient.v2_0 import client as ntclient
  
  import functest.utils.functest_logger as ft_logger
  import functest.utils.functest_utils as ft_utils
@@@ -242,17 -242,17 +239,15 @@@ def main()
      if not os.path.exists(VIMS_DATA_DIR):
          os.makedirs(VIMS_DATA_DIR)
  
--    ks_creds = os_utils.get_credentials("keystone")
--    nv_creds = os_utils.get_credentials("nova")
--    nt_creds = os_utils.get_credentials("neutron")
++    creds = os_utils.get_credentials()
  
      logger.info("Prepare OpenStack plateform (create tenant and user)")
--    keystone = ksclient.Client(**ks_creds)
++    keystone = os_utils.get_keystone_client()
  
--    user_id = os_utils.get_user_id(keystone, ks_creds['username'])
++    user_id = os_utils.get_user_id(keystone, creds['username'])
      if user_id == '':
          step_failure("init", "Error : Failed to get id of " +
--                     ks_creds['username'])
++                     creds['username'])
  
      tenant_id = os_utils.create_tenant(
          keystone, VIMS_TENANT_NAME, VIMS_TENANT_DESCRIPTION)
  
      if not os_utils.add_role_user(keystone, user_id, role_id, tenant_id):
          logger.error("Error : Failed to add %s on tenant" %
--                     ks_creds['username'])
++                     creds['username'])
  
      user_id = os_utils.create_user(
          keystone, VIMS_TENANT_NAME, VIMS_TENANT_NAME, None, tenant_id)
          logger.error("Error : Failed to create %s user" % VIMS_TENANT_NAME)
  
      logger.info("Update OpenStack creds informations")
--    ks_creds.update({
++    creds.update({
          "username": VIMS_TENANT_NAME,
          "password": VIMS_TENANT_NAME,
--        "tenant_name": VIMS_TENANT_NAME,
--    })
--
--    nt_creds.update({
--        "tenant_name": VIMS_TENANT_NAME,
--    })
--
--    nv_creds.update({
--        "project_id": VIMS_TENANT_NAME,
++        "tenant": VIMS_TENANT_NAME,
      })
  
      logger.info("Upload some OS images if it doesn't exist")
                  "Error : Failed to find or upload required OS "
                  "image for this deployment")
  
--    nova = nvclient.Client("2", **nv_creds)
--
      logger.info("Update security group quota for this tenant")
--    neutron = ntclient.Client(**nt_creds)
++    neutron = os_utils.get_neutron_client(creds)
      if not os_utils.update_sg_quota(neutron, tenant_id, 50, 100):
          step_failure(
              "init",
              VIMS_TENANT_NAME)
  
      # ############### CLOUDIFY INITIALISATION ################
--    public_auth_url = keystone.service_catalog.url_for(
--        service_type='identity', endpoint_type='publicURL')
++    public_auth_url = os_utils.get_endpoint('identity')
  
      cfy = Orchestrator(VIMS_DATA_DIR, CFY_INPUTS)
  
--    cfy.set_credentials(username=ks_creds['username'], password=ks_creds[
--                        'password'], tenant_name=ks_creds['tenant_name'],
++    if 'tenant_name' in creds.keys():
++        tenant_name = creds['tenant_name']
++    elif 'project_name' in creds.keys():
++        tenant_name = creds['project_name']
++
++    cfy.set_credentials(username=creds['username'],
++                        password=creds['password'],
++                        tenant_name=tenant_name,
                          auth_url=public_auth_url)
  
      logger.info("Collect flavor id for cloudify manager server")
--    nova = nvclient.Client("2", **nv_creds)
++    nova = os_utils.get_nova_client(creds)
  
      flavor_name = "m1.large"
      flavor_id = os_utils.get_flavor_id(nova, flavor_name)
      cw = Clearwater(CW_INPUTS, cfy, logger)
  
      logger.info("Collect flavor id for all clearwater vm")
--    nova = nvclient.Client("2", **nv_creds)
  
      flavor_name = "m1.small"
      flavor_id = os_utils.get_flavor_id(nova, flavor_name)
      if args.noclean:
          exit(0)
  
--    ks_creds = os_utils.get_credentials("keystone")
--
--    keystone = ksclient.Client(**ks_creds)
--
      logger.info("Removing %s tenant .." % CFY_INPUTS['keystone_tenant_name'])
      tenant_id = os_utils.get_tenant_id(
          keystone, CFY_INPUTS['keystone_tenant_name'])
@@@ -86,7 -86,7 +86,7 @@@ def get_env_cred_dict()
      return env_cred_dict
  
  
--def get_credentials():
++def get_credentials(other_creds={}):
      """Returns a creds dictionary filled with parsed from env
      """
      creds = {}
          else:
              creds_key = env_cred_dict.get(envvar)
              creds.update({creds_key: os.getenv(envvar)})
++
++    if 'tenant' in other_creds.keys():
++        if is_keystone_v3():
++            tenant = 'project_name'
++        else:
++            tenant = 'tenant_name'
++        other_creds[tenant] = other_creds.pop('tenant')
++
++    creds.update(other_creds)
++
      return creds
  
  
@@@ -138,9 -138,9 +148,9 @@@ def get_credentials_for_rally()
      return rally_conf
  
  
--def get_session_auth():
++def get_session_auth(other_creds={}):
      loader = loading.get_plugin_loader('password')
--    creds = get_credentials()
++    creds = get_credentials(other_creds)
      auth = loader.load_from_options(**creds)
      return auth
  
@@@ -152,8 -152,8 +162,8 @@@ def get_endpoint(service_type, endpoint
                                        endpoint_type=endpoint_type)
  
  
--def get_session():
--    auth = get_session_auth()
++def get_session(other_creds={}):
++    auth = get_session_auth(other_creds)
      return session.Session(auth=auth)
  
  
@@@ -169,8 -169,8 +179,8 @@@ def get_keystone_client_version()
      return DEFAULT_API_VERSION
  
  
--def get_keystone_client():
--    sess = get_session()
++def get_keystone_client(other_creds={}):
++    sess = get_session(other_creds)
      return keystoneclient.Client(get_keystone_client_version(), session=sess)
  
  
@@@ -183,8 -183,8 +193,8 @@@ def get_nova_client_version()
      return DEFAULT_API_VERSION
  
  
--def get_nova_client():
--    sess = get_session()
++def get_nova_client(other_creds={}):
++    sess = get_session(other_creds)
      return novaclient.Client(get_nova_client_version(), session=sess)
  
  
@@@ -197,8 -197,8 +207,8 @@@ def get_cinder_client_version()
      return DEFAULT_API_VERSION
  
  
--def get_cinder_client():
--    sess = get_session()
++def get_cinder_client(other_creds={}):
++    sess = get_session(other_creds)
      return cinderclient.Client(get_cinder_client_version(), session=sess)
  
  
@@@ -211,8 -211,8 +221,8 @@@ def get_neutron_client_version()
      return DEFAULT_API_VERSION
  
  
--def get_neutron_client():
--    sess = get_session()
++def get_neutron_client(other_creds={}):
++    sess = get_session(other_creds)
      return neutronclient.Client(get_neutron_client_version(), session=sess)
  
  
@@@ -224,8 -224,8 +234,8 @@@ def get_glance_client_version()
      return DEFAULT_API_VERSION
  
  
--def get_glance_client():
--    sess = get_session()
++def get_glance_client(other_creds={}):
++    sess = get_session(other_creds)
      return glanceclient.Client(get_glance_client_version(), session=sess)