def validate_configuration(self): validator = ConfigurationValidator(self.config_path) result = validator.validate(self.configuration) title = result.is_valid and 'Valid Configuration' or 'Invalid Configurration' message = 'Errors:\n' + '\n'.join(['\t' + x for x in result.errors]) message += '\nWarnings:\n' + '\n'.join( ['\t' + x for x in result.warnings]) message += '\nSuggestions:\n' + '\n'.join( ['\t' + x for x in result.suggestions]) msgBox = QtGui.QMessageBox() msgBox.setText(title) msgBox.setInformativeText(message) msgBox.exec_()
def __init__(self, config_loader, logger, executor=None, verbose=True, debug_mode=True, **kwargs): """ The root execution class, using the apply method it runs certain configuration against specified execution directory :param config_loader: :type config_loader ConfigLoader :param logger: LoggerBase :param executor: :type executor CommandExecutor :param verbose: :type verbose: bool :param debug_mode: :type debug_mode: bool """ self.config_loader = config_loader self.logger = logger self.debug_mode = debug_mode self.verbose = verbose self.executor = executor self.config = None self._execution_dir = None self.executors = [] self.bundles_filter = None if 'bundles_filter' in kwargs: self.bundles_filter = kwargs['bundles_filter'] else: reg_bundles = ConfigBuildFilter(Workspace.registered_bundles) self.bundles_filter = reg_bundles self.operations_filter = 'operations_filter' in kwargs and kwargs[ 'operations_filter'] or ConfigBuildFilter() self.old_dir = None self.validator = ConfigurationValidator(self.config_loader.config_file) if self.executor: self.executor.parent = self self.executors.append(self.executor)
def main(args=None, loger=None): if not args: args = sys.argv config_loader = get_config_loader(args) Workspace.set(os.path.dirname(config_loader.config_file)) custom_bundles = get_additional_bundles(args) custom_vars = get_additional_vars(args) if custom_bundles: config_loader.append_bundles(*custom_bundles) if custom_vars: config_loader.append_vars(*custom_vars) is_outside_loger = True if not loger: is_outside_loger = False loger = get_logger(args) builder = AppConfigurator(config_loader, loger, verbose=is_verbose(args), debug_mode=False) execution_dir = None if "-dir" in args: execution_dir = args[args.index("-dir") + 1] ex_dir_expanded = os.path.abspath(os.path.expanduser(execution_dir)) builder.set_execution_dir(ex_dir_expanded) validator = ConfigurationValidator(config_loader.config_file) validation_result = validator.validate(config_loader.load_config(), ex_dir_expanded) if validation_result.is_valid: builder.exclude_bundles(get_excluded_bundles(args)) builder.include_bundles(get_included_bundles(args)) builder.apply() if not is_outside_loger: builder.logger.close() else: builder.logger.write(str(validation_result)) if not is_outside_loger: builder.logger.close()