Merge "Remove answers file support"

This commit is contained in:
Jenkins
2016-01-21 10:06:38 +00:00
committed by Gerrit Code Review
2 changed files with 6 additions and 54 deletions

View File

@@ -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):

View File

@@ -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