Merge "Remove answers file support"
This commit is contained in:
@@ -249,12 +249,6 @@ class TestGenerateEnvironment(BaseTestCase):
|
||||
self.assertEqual('192.0.2.1/24', env['PUBLIC_INTERFACE_IP'])
|
||||
self.assertEqual('192.0.2.1', env['LOCAL_IP'])
|
||||
|
||||
def test_answers_file_support(self):
|
||||
with open(undercloud.PATHS.ANSWERS_PATH, 'w') as f:
|
||||
f.write('LOCAL_INTERFACE=eno1\n')
|
||||
env = undercloud._generate_environment('.')
|
||||
self.assertEqual('eno1', env['LOCAL_INTERFACE'])
|
||||
|
||||
def test_generate_endpoints(self):
|
||||
env = undercloud._generate_environment('.')
|
||||
endpoint_vars = {k: v for (k, v) in env.items()
|
||||
@@ -310,10 +304,8 @@ class TestGenerateEnvironment(BaseTestCase):
|
||||
|
||||
class TestWritePasswordFile(BaseTestCase):
|
||||
def test_normal(self):
|
||||
answers_parser = mock.Mock()
|
||||
answers_parser.has_option.return_value = False
|
||||
instack_env = {}
|
||||
undercloud._write_password_file(answers_parser, instack_env)
|
||||
undercloud._write_password_file(instack_env)
|
||||
test_parser = configparser.ConfigParser()
|
||||
test_parser.read(undercloud.PATHS.PASSWORD_PATH)
|
||||
self.assertTrue(test_parser.has_option('auth',
|
||||
@@ -323,33 +315,17 @@ class TestWritePasswordFile(BaseTestCase):
|
||||
len(instack_env['UNDERCLOUD_HEAT_ENCRYPTION_KEY']))
|
||||
|
||||
def test_value_set(self):
|
||||
answers_parser = mock.Mock()
|
||||
answers_parser.has_option.return_value = False
|
||||
instack_env = {}
|
||||
conf = config_fixture.Config()
|
||||
self.useFixture(conf)
|
||||
conf.config(undercloud_db_password='test', group='auth')
|
||||
undercloud._write_password_file(answers_parser, instack_env)
|
||||
undercloud._write_password_file(instack_env)
|
||||
test_parser = configparser.ConfigParser()
|
||||
test_parser.read(undercloud.PATHS.PASSWORD_PATH)
|
||||
self.assertEqual(test_parser.get('auth', 'undercloud_db_password'),
|
||||
'test')
|
||||
self.assertEqual(instack_env['UNDERCLOUD_DB_PASSWORD'], 'test')
|
||||
|
||||
def test_answers(self):
|
||||
answers_parser = configparser.ConfigParser()
|
||||
fake_answers = io.StringIO()
|
||||
fake_answers.write(u'[answers]\nUNDERCLOUD_DB_PASSWORD=foo\n')
|
||||
fake_answers.seek(0)
|
||||
answers_parser.readfp(fake_answers)
|
||||
instack_env = {}
|
||||
undercloud._write_password_file(answers_parser, instack_env)
|
||||
test_parser = configparser.ConfigParser()
|
||||
test_parser.read(undercloud.PATHS.PASSWORD_PATH)
|
||||
self.assertEqual(test_parser.get('auth', 'undercloud_db_password'),
|
||||
'foo')
|
||||
self.assertEqual(instack_env['UNDERCLOUD_DB_PASSWORD'], 'foo')
|
||||
|
||||
|
||||
class TestRunCommand(BaseTestCase):
|
||||
def test_run_command(self):
|
||||
|
||||
@@ -16,7 +16,6 @@ import copy
|
||||
import errno
|
||||
import getpass
|
||||
import hashlib
|
||||
import io
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
@@ -29,7 +28,6 @@ from novaclient import exceptions
|
||||
from oslo_config import cfg
|
||||
import psutil
|
||||
import six
|
||||
from six.moves import configparser
|
||||
|
||||
|
||||
# Making these values properties on a class allows us to delay their lookup,
|
||||
@@ -564,18 +562,12 @@ def _generate_endpoints(instack_env):
|
||||
instack_env.update(endpoints)
|
||||
|
||||
|
||||
def _write_password_file(answers_parser, instack_env):
|
||||
def _write_password_file(instack_env):
|
||||
with open(PATHS.PASSWORD_PATH, 'w') as password_file:
|
||||
password_file.write('[auth]\n')
|
||||
for opt in _auth_opts:
|
||||
env_name = opt.name.upper()
|
||||
if answers_parser.has_option('answers', env_name):
|
||||
LOG.warning('Using value for %s from instack.answers. This '
|
||||
'behavior is deprecated. undercloud.conf should '
|
||||
'now be used for configuration.', env_name)
|
||||
value = answers_parser.get('answers', env_name)
|
||||
else:
|
||||
value = CONF.auth[opt.name]
|
||||
value = CONF.auth[opt.name]
|
||||
if not value:
|
||||
# Heat requires this encryption key to be a specific length
|
||||
if env_name == 'UNDERCLOUD_HEAT_ENCRYPTION_KEY':
|
||||
@@ -643,26 +635,10 @@ def _generate_environment(instack_root):
|
||||
else:
|
||||
raise RuntimeError('%s is not supported' % distro)
|
||||
|
||||
# Do some fiddling to retain answers file support for now
|
||||
answers_parser = configparser.ConfigParser()
|
||||
if os.path.isfile(PATHS.ANSWERS_PATH):
|
||||
config_answers = io.StringIO()
|
||||
config_answers.write(u'[answers]\n')
|
||||
with open(PATHS.ANSWERS_PATH) as f:
|
||||
config_answers.write(six.text_type(f.read()))
|
||||
config_answers.seek(0)
|
||||
answers_parser.readfp(config_answers)
|
||||
|
||||
# Convert conf opts to env values
|
||||
for opt in _opts:
|
||||
env_name = opt.name.upper()
|
||||
if answers_parser.has_option('answers', env_name):
|
||||
LOG.warning('Using value for %s from instack.answers. This '
|
||||
'behavior is deprecated. undercloud.conf should '
|
||||
'now be used for configuration.', env_name)
|
||||
instack_env[env_name] = answers_parser.get('answers', env_name)
|
||||
else:
|
||||
instack_env[env_name] = six.text_type(CONF[opt.name])
|
||||
instack_env[env_name] = six.text_type(CONF[opt.name])
|
||||
# Opts that needs extra processing
|
||||
if instack_env.get('INSPECTION_RUNBENCH') not in ['0', '1']:
|
||||
instack_env['INSPECTION_RUNBENCH'] = ('1' if CONF.inspection_runbench
|
||||
@@ -675,7 +651,7 @@ def _generate_environment(instack_root):
|
||||
|
||||
_generate_endpoints(instack_env)
|
||||
|
||||
_write_password_file(answers_parser, instack_env)
|
||||
_write_password_file(instack_env)
|
||||
|
||||
return instack_env
|
||||
|
||||
|
||||
Reference in New Issue
Block a user