python-tempestconf/config_tempest/accounts.py
Martin Kopec 243ab6cb47 Generate accounts.yaml
Generate accounts.yaml file when create_accounts_file
is specified and test_accounts is not.

Story: 2001693
Task: 8685

Change-Id: I7ed8390b29a430d97e1846f8f868f5b6af8eb02b
2018-06-14 12:54:01 +00:00

59 lines
2.0 KiB
Python

# Copyright 2018 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os
import yaml
def create_accounts_file(create, accounts_path, conf):
if create:
section = 'auth'
prefix = 'admin_'
else:
section = 'identity'
prefix = ''
write_accounts_file(accounts_path,
conf.get(section, prefix + 'username'),
conf.get(section, prefix + 'password'),
conf.get(section, prefix + 'project_name'))
conf.set("auth", "test_accounts_file", os.path.abspath(accounts_path))
def write_accounts_file(path, username, password, project_name):
"""Creates a minimal accounts.yaml file.
Dumps provided credentials in a yaml format.
:type path: string
:type username: string
:type password: string
:type project_name: string
"""
comments = "# A minimal accounts.yaml file\n" \
"# Will likely not work with swift, since additional\n" \
"# roles are required. For more documentation see:\n" \
"# https://git.openstack.org/cgit/openstack/tempest/tree/etc/" \
"accounts.yaml.sample\n\n"
accounts = []
accounts.append({
'username': username,
'project_name': project_name,
'password': password
})
with open(path, 'w') as outfile:
for line in comments:
outfile.write(line)
yaml.safe_dump(accounts, outfile, default_flow_style=False)