From 2bb4266be4f3e30f4ab1b22354bbeb68f3432df7 Mon Sep 17 00:00:00 2001 From: Samuel Munilla Date: Fri, 19 Aug 2016 15:51:13 -0400 Subject: a-o-i: Remove Legacy Config Upgrade Remove the automatic upgrade of the 3.0 configuration file format and add some better error messaging that points the user at the docs. --- utils/src/ooinstall/oo_config.py | 42 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) (limited to 'utils/src/ooinstall') diff --git a/utils/src/ooinstall/oo_config.py b/utils/src/ooinstall/oo_config.py index cc6f7b041..f2990662e 100644 --- a/utils/src/ooinstall/oo_config.py +++ b/utils/src/ooinstall/oo_config.py @@ -167,16 +167,23 @@ class OOConfig(object): # pylint: disable=too-many-branches def _read_config(self): + def _print_read_config_error(error, path='the configuration file'): + message = """ +Error loading config. {}. + +See https://docs.openshift.com/enterprise/latest/install_config/install/quick_install.html#defining-an-installation-configuration-file +for information on creating a configuration file or delete {} and re-run the installer. +""" + print message.format(error, path) + try: if os.path.exists(self.config_path): with open(self.config_path, 'r') as cfgfile: loaded_config = yaml.safe_load(cfgfile.read()) - # Use the presence of a Description as an indicator this is - # a legacy config file: - if 'Description' in self.settings: - self._upgrade_legacy_config() - + if not 'version' in loaded_config: + _print_read_config_error('Legacy configuration file found', self.config_path) + sys.exit(0) if loaded_config.get('version', '') == 'v1': loaded_config = self._upgrade_v1_config(loaded_config) @@ -185,7 +192,7 @@ class OOConfig(object): host_list = loaded_config['deployment']['hosts'] role_list = loaded_config['deployment']['roles'] except KeyError as e: - print "Error loading config, no such key: {}".format(e) + _print_read_config_error("No such key: {}".format(e), self.config_path) sys.exit(0) for setting in CONFIG_PERSIST_SETTINGS: @@ -218,29 +225,6 @@ class OOConfig(object): raise OOConfigFileError( 'Config file "{}" is not a valid YAML document'.format(self.config_path)) - def _upgrade_legacy_config(self): - new_hosts = [] - remove_settings = ['validated_facts', 'Description', 'Name', - 'Subscription', 'Vendor', 'Version', 'masters', 'nodes'] - - if 'validated_facts' in self.settings: - for key, value in self.settings['validated_facts'].iteritems(): - value['connect_to'] = key - if 'masters' in self.settings and key in self.settings['masters']: - value['master'] = True - if 'nodes' in self.settings and key in self.settings['nodes']: - value['node'] = True - new_hosts.append(value) - self.settings['hosts'] = new_hosts - - for s in remove_settings: - if s in self.settings: - del self.settings[s] - - # A legacy config implies openshift-enterprise 3.0: - self.settings['variant'] = 'openshift-enterprise' - self.settings['variant_version'] = '3.0' - def _upgrade_v1_config(self, config): new_config_data = {} new_config_data['deployment'] = {} -- cgit v1.2.3