示例#1
0
def plugin_run(url, phase, cmd, log_dir, package, repository_url, plugin_name):
    def plugin_filter(plugin_info, platform=None, phase=None, plugin_name=None):
        result = True
        if platform:
            result = platform in plugin_info.platforms
        if phase:
            result = result and (phase in plugin_info.phases)
        if plugin_name:
            result = result and (plugin_name in plugin_info.name)
        return result

    ctx = InstallContext()
    ctx.host = Host()
    ctx.host.hostname = "Hostname"
    ctx.host_urls = list(url)

    ctx.requested_action = phase
    ctx.log_directory = log_dir
    session_filename = os.path.join(log_dir, "session.log")
    plugins_filename = os.path.join(log_dir, "plugins.log")
    condoor_filename = os.path.join(log_dir, "condoor.log")

    if os.path.exists(session_filename):
        os.remove(session_filename)
    if os.path.exists(plugins_filename):
        os.remove(plugins_filename)
    if os.path.exists(condoor_filename):
        os.remove(condoor_filename)

    ctx.log_level = logging.DEBUG

    ctx.software_packages = list(package)
    ctx.server_repository_url = repository_url

    if cmd:
        ctx.custom_commands = list(cmd)

    pm = PluginManager()
    pm.run(ctx, plugin_name)

    click.echo("\n Plugin execution finished.\n")
    click.echo("Log files dir: {}".format(log_dir))
    click.echo(" {} - device session log".format(session_filename))
    click.echo(" {} - plugin execution log".format(plugins_filename))
    click.echo(" {} - device connection debug log".format(condoor_filename))