def METHOD_NAME(self, config, args):  # pylint: disable=arguments-differ
    output = self.set_up_output_directory(config, args)
    log.add_file(output.logfile)
    output.add_artifact('runlog', output.logfile, kind='log',
                        description='Run log.')
    disabled_augmentations = toggle_set([i != '~~' and "~{}".format(i) or i
                                        for i in args.augmentations_to_disable])
    config.jobs_config.disable_augmentations(disabled_augmentations)
    config.jobs_config.only_run_ids(args.only_run_ids)
    parser = AgendaParser()
    if os.path.isfile(args.agenda):
        includes = parser.load_from_path(config, args.agenda)
        shutil.copy(args.agenda, output.raw_config_dir)
        for inc in includes:
            shutil.copy(inc, output.raw_config_dir)
    else:
        try:
            pluginloader.get_plugin_class(args.agenda, kind='workload')
            agenda = {'workloads': [{'name': args.agenda}]}
            parser.load(config, agenda, 'CMDLINE_ARGS')
        except NotFoundError:
            msg = 'Agenda file "{}" does not exist, and there no workload '\
                  'with that name.\nYou can get a list of available '\
                  'by running "wa list workloads".'
            raise ConfigError(msg.format(args.agenda))
    # Update run info with newly parsed config values
    output.info.project = config.run_config.project
    output.info.project_stage = config.run_config.project_stage
    output.info.run_name = config.run_config.run_name
    executor = Executor()
    executor.METHOD_NAME(config, output)