diff --git a/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py b/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py index fe5ad3229..a20573357 100644 --- a/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py +++ b/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py @@ -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) diff --git a/tripleoclient/v1/overcloud_config.py b/tripleoclient/v1/overcloud_config.py index 16b722629..c5895b4cc 100644 --- a/tripleoclient/v1/overcloud_config.py +++ b/tripleoclient/v1/overcloud_config.py @@ -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))