Exemplo n.º 1
0
 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_()
Exemplo n.º 2
0
 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()