Add arg to remove config-dir for config-download

Adds an argument to config-download that removes the config-dir and
contents before downloading the config, if it exists.

Related-Bug: 1752118
Depends-On: Ie00f71b12f56262985c47810be0e80402e9e558e
Depends-On: Ibb59b044dc0c14bf48dc3d500536195230414c81
Change-Id: I68a72e11dd66d8d5100512683633caa2174f9e6b
This commit is contained in:
Jill Rouleau 2018-03-15 11:18:23 -07:00
parent 8d26f89ebd
commit fb19922ad2
2 changed files with 30 additions and 3 deletions

View File

@ -32,9 +32,24 @@ class TestOvercloudConfig(utils.TestCommand):
arglist = ['--name', 'overcloud', '--config-dir', '/tmp']
verifylist = [
('name', 'overcloud'),
('config_dir', '/tmp')
('config_dir', '/tmp'),
('preserve_config_dir', True)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
mock_config.assert_called_once_with('overcloud', '/tmp', None)
mock_config.assert_called_once_with('overcloud', '/tmp', None, True)
@mock.patch('tripleo_common.utils.config.Config.download_config')
def test_overcloud_download_config_no_preserve(self, mock_config):
arglist = ['--name', 'overcloud', '--config-dir', '/tmp',
'--no-preserve-config']
verifylist = [
('name', 'overcloud'),
('config_dir', '/tmp'),
('preserve_config_dir', False)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
mock_config.assert_called_once_with('overcloud', '/tmp', None, False)

View File

@ -49,6 +49,16 @@ class DownloadConfig(command.Command):
help=_('Type of object config to be extract from the deployment, '
'defaults to all keys available'),
)
parser.add_argument(
'--no-preserve-config',
dest='preserve_config_dir',
action='store_false',
default=True,
help=('If specified, will delete and recreate the --config-dir '
'if it already exists. Default is to use the existing dir '
'location and overwrite files. Files in --config-dir not '
'from the stack will be preserved by default.')
)
return parser
def take_action(self, parsed_args):
@ -59,8 +69,10 @@ class DownloadConfig(command.Command):
name = parsed_args.name
config_dir = parsed_args.config_dir
config_type = parsed_args.config_type
preserve_config_dir = parsed_args.preserve_config_dir
# Get config
config = ooo_config.Config(clients.orchestration)
config_path = config.download_config(name, config_dir, config_type)
config_path = config.download_config(name, config_dir, config_type,
preserve_config_dir)
print("The TripleO configuration has been successfully generated "
"into: {0}".format(config_path))