← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1441379] Re: Need Rally deployment create support on domain_id or domain_name in order to support keystone v3 test (which needs domain scoped token). The current project scoped token only works in service API but not keystone v3 API (DTUG domain, user, group...).

 

sounds like this is a rally issue, marking keystone as invalid

** Changed in: keystone
       Status: Incomplete => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1441379

Title:
  Need Rally deployment create support on domain_id or domain_name in
  order to support keystone v3 test (which needs domain scoped token).
  The current project scoped token only works in service API but not
  keystone v3 API (DTUG domain, user, group...).

Status in OpenStack Identity (keystone):
  Invalid
Status in Rally:
  Triaged

Bug description:
  For keystone v3 testing, most test should based on domain scoped token but not project scoped token. And either domain_name/domain_id is required for keystone v3 domain scoped token. Rally need to pick up either domain_id or domain_name in its v3 config, in order to work with keystone v3:
  Failed validating 'anyOf' in schema:
      {'anyOf': [{'properties': {'admin': {'$ref': '#/definitions/user'}},
                  'required': ['type', 'auth_url', 'admin']},
                 {'required': ['type', 'auth_url', 'users'],
                  'users': {'items': {'$ref': '#/definitions/user'},
                            'type': 'array'}}],
       'definitions': {'user': {'oneOf': [{'properties': {'tenant_name': {'type': 'string'}},
                                           'required': ['username',
                                                        'password',
                                                        'tenant_name']},
                                          {'properties': {'project_domain_name': {'type': 'string'},
                                                          'project_name': {'type': 'string'},
                                                          'user_domain_name': {'type': 'string'}},
                                           'required': ['username',
                                                        'password',
                                                        'project_name']}],
                                'properties': {'password': {'type': 'string'},
                                               'username': {'type': 'string'}},
                                'type': 'object'}},
       'properties': {'auth_url': {'type': 'string'},
                      'endpoint_type': {'enum': ['admin',
                                                 'internal',
                                                 'public'],
                                        'type': 'string'},
                      'region_name': {'type': 'string'},
                      'type': {'type': 'string'}},
       'type': 'object'}

  Here's a test:
  Project scoped token deployment looks fine, but domain scoped token deployment failed. Check the following test:

  1. Project scoped token deploy:
  $ cat m.json
  {
      "admin": {
          "project_name": "admin",
          "password": "admin",
          "project_domain_name": "Default",
          "user_domain_name": "Default",
          "username": "admin"
      },
      "auth_url": "https://localhost:5000/v3/";,
      "endpoint_type": "public",
      "https_cacert": "/usr/local/share/ca-certificates/ephemeralca-cacert.crt",
      "https_insecure": False,
      "region_name": "regionOne",
      "type": "ExistingCloud",
  }

  $ rally deployment create --filename=m.json --name=apaltestHAKVMv3
  +--------------------------------------+----------------------------+-----------------+------------------+--------+
  | uuid                                 | created_at                 | name            | status           | active |
  +--------------------------------------+----------------------------+-----------------+------------------+--------+
  | 01ca22c6-9ad0-422b-ae77-7e9d863234b0 | 2015-04-07 22:33:55.921296 | apaltestHAKVMv3 | deploy->finished |        |
  +--------------------------------------+----------------------------+-----------------+------------------+--------+
  Using deployment: 01ca22c6-9ad0-422b-ae77-7e9d863234b0
  ~/.rally/openrc was updated

  HINTS:
  * To get your cloud resources, run:
          rally show [flavors|images|keypairs|networks|secgroups]

  * To use standard OpenStack clients, set up your env by running:
          source ~/.rally/openrc
    OpenStack clients are now configured, e.g run:
          glance image-list

  $ rally deployment check
  keystone endpoints are valid and following services are available:
  +------------+---------------+-----------+
  | services   | type          | status    |
  +------------+---------------+-----------+
  | ceilometer | metering      | Available |
  | cinder     | volume        | Available |
  | cinderv2   | volumev2      | Available |
  | ec2        | ec2           | Available |
  | glance     | image         | Available |
  | heat       | orchestration | Available |
  | keystone   | identity      | Available |
  | neutron    | network       | Available |
  | nova       | compute       | Available |
  | sherpa     | hp-catalog    | Available |
  | swift      | object-store  | Available |
  +------------+---------------+-----------+

  $ rally task start ../keystonecase/apaldebug-create-1-user.json
  --------------------------------------------------------------------------------
   Preparing input task
  --------------------------------------------------------------------------------

  Input task is:
  {
      "KeystoneBasic.create_user": [
          {
              "args": {
                  "name_length": 10
              },
              "runner": {
                  "type": "constant",
                  "times": 1,
                  "concurrency": 1
              }
          }
      ]
  }

  --------------------------------------------------------------------------------
   Task  76a1c52c-b085-4243-ae47-4f5cfaab8091: started
  --------------------------------------------------------------------------------

  Benchmarking... This can take a while...

  To track task status use:

          rally task status
          or
          rally task detailed

  2015-04-07 22:34:40.916 20445 WARNING rally.common.broker [-] Failed
  to consume a task from the queue: You are not authorized to perform
  the requested action: identity:get_domain (HTTP 403)

  --------------------------------------------------------------------------------
  Task 76a1c52c-b085-4243-ae47-4f5cfaab8091: failed
  --------------------------------------------------------------------------------
  <class 'rally.exceptions.ContextSetupFailure'>
  Unable to setup context 'users': 'Failed to create the requested number of tenants.'

  For more details run:
  rally -vd task detailed 76a1c52c-b085-4243-ae47-4f5cfaab8091
  Using task: 76a1c52c-b085-4243-ae47-4f5cfaab8091

  
  2. Project scoped token deploy failed: - I just updated one line in this config -> from ""project_name": "admin"," to ""domain_name": "Default",":

  $ cat u.json
  {
      "admin": {
          "domain_name": "Default",
          "password": "admin",
          "project_domain_name": "Default",
          "user_domain_name": "Default",
          "username": "admin"
      },
      "auth_url": "https://localhost:5000/v3/";,
      "endpoint_type": "public",
      "https_cacert": "/usr/local/share/ca-certificates/ephemeralca-cacert.crt",
      "https_insecure": False,
      "region_name": "regionOne",
      "type": "ExistingCloud",
  }

  $ rally deployment create --filename=u.json --name=apaltestHAKVMv3
  2015-04-07 22:36:18.996 20739 ERROR rally.api [-] Deployment 44f819e6-deb9-4109-a52b-f751825e7f9c: Schema validation error.
  Config schema validation error: {'endpoint_type': 'public', 'auth_url': 'https://localhost:5000/v3/', 'region_name': 'regionOne', 'https_insecure': False, 'admin': {'username': 'admin', 'user_domain_name': 'Default', 'password': 'admin', 'domain_name': 'Default', 'project_domain_name': 'Default'}, 'https_cacert': '/usr/local/share/ca-certificates/ephemeralca-cacert.crt', 'type': 'ExistingCloud'} is not valid under any of the given schemas

  Failed validating 'anyOf' in schema:
      {'anyOf': [{'properties': {'admin': {'$ref': '#/definitions/user'}},
                  'required': ['type', 'auth_url', 'admin']},
                 {'required': ['type', 'auth_url', 'users'],
                  'users': {'items': {'$ref': '#/definitions/user'},
                            'type': 'array'}}],
       'definitions': {'user': {'oneOf': [{'properties': {'tenant_name': {'type': 'string'}},
                                           'required': ['username',
                                                        'password',
                                                        'tenant_name']},
                                          {'properties': {'project_domain_name': {'type': 'string'},
                                                          'project_name': {'type': 'string'},
                                                          'user_domain_name': {'type': 'string'}},
                                           'required': ['username',
                                                        'password',
                                                        'project_name']}],
                                'properties': {'password': {'type': 'string'},
                                               'username': {'type': 'string'}},
                                'type': 'object'}},
       'properties': {'auth_url': {'type': 'string'},
                      'endpoint_type': {'enum': ['admin',
                                                 'internal',
                                                 'public'],
                                        'type': 'string'},
                      'region_name': {'type': 'string'},
                      'type': {'type': 'string'}},
       'type': 'object'}

  On instance:
      {'admin': {'domain_name': 'Default',
                 'password': 'admin',
                 'project_domain_name': 'Default',
                 'user_domain_name': 'Default',
                 'username': 'admin'},
       'auth_url': 'https://localhost:5000/v3/',
       'endpoint_type': 'public',
       'https_cacert': '/usr/local/share/ca-certificates/ephemeralca-cacert.crt',
       'https_insecure': False,
       'region_name': 'regionOne',
       'type': 'ExistingCloud'}.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1441379/+subscriptions