def check_local_config_schema(build): log.info("Verifying your configuration settings...") # leave this import here: might not be on sys.path in some situations import validictory local_conf_filename = build.tool_config.get('general.local_config') if local_conf_filename is not None: # explicit conf file defined if not path.isfile(local_conf_filename): raise ConfigurationError("{file} does not exist!".format(file=local_conf_filename)) else: local_conf_filename = 'local_config.json' if not path.isfile(local_conf_filename): log.warning("Local configuration file '{file}' does not exist!".format(file=local_conf_filename)) with open(path.join(path_to_lib(), "local_config_schema.json")) as local_conf_schema_file: local_conf_schema = json.load(local_conf_schema_file) try: validictory.validate(build.tool_config.all_config(), local_conf_schema) except validictory.validator.UnexpectedPropertyError as e: log.warning('Unexpected setting: "{error}" in "{file}". This will be ignored.'.format( file=local_conf_filename, error=e) ) log.info("Configuration settings check complete")
def check_local_config_schema(build): log.info("Verifying your configuration settings...") # leave this import here: might not be on sys.path in some situations import validictory local_conf_filename = build.tool_config.get('general.local_config') if local_conf_filename is not None: # explicit conf file defined if not path.isfile(local_conf_filename): raise ConfigurationError( "{file} does not exist!".format(file=local_conf_filename)) else: local_conf_filename = 'local_config.json' if not path.isfile(local_conf_filename): log.warning( "Local configuration file '{file}' does not exist!".format( file=local_conf_filename)) with open(path.join(path_to_lib(), "local_config_schema.json")) as local_conf_schema_file: local_conf_schema = json.load(local_conf_schema_file) try: validictory.validate(build.tool_config.all_config(), local_conf_schema) except validictory.validator.UnexpectedPropertyError as e: log.warning( 'Unexpected setting: "{error}". This will be ignored'.format( file=local_conf_filename, error=e)) log.info("Configuration settings check complete")
def config_changes_invalidate_templates( generate, old_config_filename, new_config_filename): with open(old_config_filename) as old_config_file: old_config = old_config_file.read() with open(new_config_filename) as new_config_file: new_config = new_config_file.read() try: current_filename = old_config_filename old_config_d = json.loads(old_config) current_filename = new_config_filename new_config_d = json.loads(new_config) except Exception as e: raise generate.lib.BASE_EXCEPTION( "{file} is not valid JSON: {msg}".format( file=current_filename, msg=e, ) ) if old_config_d == new_config_d: LOG.debug("configuration is identical to last run") return False with open( path.join(utils.path_to_lib(), "invalidating_config.json") ) as invalidating_config_file: invalidating_config = json.load(invalidating_config_file) for key in invalidating_config: if old_config_d.get(key) != new_config_d.get(key): LOG.debug("'{key}' has changed in configuration".format(key=key)) return True LOG.debug("configuration has not changed") return False