Skip to content
Snippets Groups Projects
Commit 8bed6235 authored by Mark Goddard's avatar Mark Goddard
Browse files

Fix passwords.yml generation with vault encryption on Python 3

Kayobe generates passwords.yml for Kolla Ansible, and can encrypt it
using the vault password. Previously this was failing on Python 3 due to
passing a string to file.write() which expects bytes.

This change fixes the issue by encoding the password string passed to
file.write().

This allows us to run the ansible role tests under Python 3.

Change-Id: I33813f79984a46f1967ef3aee455dcfbe7eb93da
Story: 2006574
Task: 39481
parent e0932bd7
No related branches found
No related tags found
No related merge requests found
...@@ -57,7 +57,7 @@ def kolla_mergepwd(module, old_path, new_path, final_path): ...@@ -57,7 +57,7 @@ def kolla_mergepwd(module, old_path, new_path, final_path):
def create_vault_password_file(module): def create_vault_password_file(module):
"""Create a vault password file.""" """Create a vault password file."""
with tempfile.NamedTemporaryFile(delete=False) as f: with tempfile.NamedTemporaryFile(delete=False) as f:
f.write(module.params['vault_password']) f.write(module.params['vault_password'].encode())
return f.name return f.name
......
...@@ -49,10 +49,6 @@ deps = ...@@ -49,10 +49,6 @@ deps =
commands = {posargs} commands = {posargs}
[testenv:ansible] [testenv:ansible]
# FIXME(mgoddard): Ansible playbooks do not yet support Python 3, so we need to run these
# tests using Python 2 for the time being.
basepython = python2
usedevelop = True
# Create the virtualenv with access to system site packages, as this is # Create the virtualenv with access to system site packages, as this is
# required to use the python and apt modules, which are not available via PyPI. # required to use the python and apt modules, which are not available via PyPI.
sitepackages = True sitepackages = True
......
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
tox_envlist: ansible tox_envlist: ansible
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
# TODO(mgoddard): Remove when Ansible playbooks support Python 3.
override-checkout: stable/train
irrelevant-files: irrelevant-files:
- ^.*\.rst$ - ^.*\.rst$
- ^doc/.* - ^doc/.*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment