# The number of accounts required can be estimated as CONCURRENCY x 2
# It is expected that each user provided here will be in a different tenant.
# This is required to provide isolation between test for running in parallel
#
# Valid fields for credentials are defined in the descendants of
# lib.auth.Credentials - see KeystoneV[2|3]Credentials.ATTRIBUTES
#
# The fields in KeystoneV3Credentials behave as follows:
#
# tenant_[id|name] also sets project_[id|name].
#
# project_[id|name] also sets tenant_[id|name].
#
# Providing distinct values for both tenant_[id|name] and project_[id|name]
# will result in an InvalidCredentials exception.
#
# The value of project_domain_[id|name] is used for user_domain_[id|name] if
# the latter is not specified.
#
# The value of user_domain_[id|name] is used for project_domain_[id|name] if
# the latter is not specified.
#
# The value of domain_[id|name] is used for project_domain_[id|name] if not
# specified and user_domain_[id|name] if not specified.
#
# When specifying domain-scoped accounts, domain_[id|name] must be present
# and project_[id|name] must be absent.
#
# When specifying system-scoped accounts, value of system can be anything
# (for now), and neither project_[id|name] nor domain_[id|name] must be present

- username: 'user_1'
  tenant_name: 'test_tenant_1'
  password: 'test_password'

- username: 'user_2'
  tenant_name: 'test_tenant_2'
  password: 'test_password'

# To specify which roles a user has list them under the roles field
- username: 'multi_role_user'
  tenant_name: 'test_tenant_42'
  password: 'test_password'
  roles:
    - 'fun_role'
    - 'not_an_admin'
    - 'an_admin'

# To specify a domain-scoped admin
- username: 'user_3'
  user_domain_name: 'test_domain'
  password: 'test_password'
  domain_name: 'test_domain'
  roles:
  - 'admin'

# To specify a system-scoped admin
- username: 'user_4'
  user_domain_name: 'test_domain'
  password: 'test_password'
  system: 'all'
  roles:
  - 'admin'

# To specify a user has a role specified in the config file you can use the
# type field to specify it, valid values are admin, operator, and reseller_admin
- username: 'swift_pseudo_admin_user_1'
  tenant_name: 'admin_tenant_1'
  password: 'test_password'
  types:
     - 'reseller_admin'
     - 'operator'

# Networks can be specified to tell tempest which network it should use when
# creating servers with an account

- username: 'admin_user_1'
  tenant_name: 'admin_tenant_1'
  password: 'test_password'
  types:
     - 'admin'
  resources:
    network: 'public'
    router: 'admin_tenant_1-router'
