示例#1
0
def get_plugin_placeholder_markup(plugins, group_type='all', group_id=None):
    result = []
    manager = PluginManager()
    hidden = get_hidden_plugins(group_type, group_id)
    group_oses = get_member_oses(group_type, group_id)
    display_plugins = [
        p for p in Plugin.objects.order_by('order') if p.name not in hidden
    ]
    for enabled_plugin in display_plugins:
        name = enabled_plugin.name
        yapsy_plugin = manager.get_plugin_by_name(name)
        if not yapsy_plugin:
            continue
        # Skip this plugin if the group's members OS families aren't supported
        # ...but only if this group has any members (group_oses is not empty
        plugin_os_families = set(yapsy_plugin.get_supported_os_families())
        if group_oses and not plugin_os_families.intersection(group_oses):
            continue
        width = yapsy_plugin.get_widget_width(group_type=group_type,
                                              group_id=group_id)
        html = ('<div id="plugin-{}" class="col-md-{}">\n'
                '    <img class="center-block blue-spinner" src="{}"/>\n'
                '</div>\n'.format(name, width, static('img/blue-spinner.gif')))
        result.append({'name': name, 'width': width, 'html': html})

    return order_plugin_output(result, group_type, group_id)
示例#2
0
def preflight_v2(request):
    """Find plugins that have embedded preflight scripts."""
    # Load in the default plugins if needed
    utils.load_default_plugins()
    manager = PluginManager()
    output = []
    # Old Sal scripts just do a GET; just send everything in that case.
    os_family = None if request.method != 'POST' else request.POST.get(
        'os_family')

    enabled_reports = Report.objects.all()
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    for enabled_plugin in itertools.chain(enabled_reports, enabled_plugins,
                                          enabled_detail_plugins):
        plugin = manager.get_plugin_by_name(enabled_plugin.name)
        if not plugin:
            continue
        if os_family is None or os_family in plugin.get_supported_os_families(
        ):
            scripts = utils.get_plugin_scripts(plugin, hash_only=True)
            if scripts:
                output += scripts

    return HttpResponse(json.dumps(output))
示例#3
0
def run_profiles_plugin_processing(machine, profiles_list):
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    for enabled_plugin in itertools.chain(enabled_plugins,
                                          enabled_detail_plugins):
        plugin = PluginManager.get_plugin_by_name(enabled_plugin.name)
        if plugin:
            plugin.profiles_processor(machine, profiles_list)
示例#4
0
文件: utils.py 项目: bdemetris/sal
def run_profiles_plugin_processing(machine, profiles_list):
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    manager = PluginManager()
    for enabled_plugin in itertools.chain(enabled_plugins, enabled_detail_plugins):
        plugin = manager.get_plugin_by_name(enabled_plugin.name)
        if plugin:
            plugin.profiles_processor(machine, profiles_list)
示例#5
0
def run_plugin_processing(machine, report_data):
    enabled_reports = Report.objects.all()
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    for enabled_plugin in itertools.chain(enabled_reports, enabled_plugins,
                                          enabled_detail_plugins):
        plugin = PluginManager.get_plugin_by_name(enabled_plugin.name)
        if plugin:
            plugin.checkin_processor(machine, report_data)
示例#6
0
def preflight_v2_get_script(request, plugin_name, script_name):
    output = []
    plugin = PluginManager.get_plugin_by_name(plugin_name)
    if plugin:
        content = server.utils.get_plugin_scripts(plugin, script_name=script_name)
        if content:
            output += content

    return HttpResponse(json.dumps(output))
示例#7
0
文件: utils.py 项目: bdemetris/sal
def run_plugin_processing(machine, report_data):
    enabled_reports = Report.objects.all()
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    manager = PluginManager()
    for enabled_plugin in itertools.chain(enabled_reports, enabled_plugins, enabled_detail_plugins):
        plugin = manager.get_plugin_by_name(enabled_plugin.name)
        if plugin:
            plugin.checkin_processor(machine, report_data)
示例#8
0
def get_machine_detail_placeholder_markup(machine):
    result = []
    for enabled_plugin in MachineDetailPlugin.objects.order_by('order'):
        plugin = PluginManager.get_plugin_by_name(enabled_plugin.name)
        if plugin and machine.os_family in plugin.get_supported_os_families():
            html = ('<div id="plugin-{}">'
                    '    <img class="center-block blue-spinner" src="{}"/>'
                    '</div>'.format(enabled_plugin.name,
                                    static('img/blue-spinner.gif')))

            result.append({'name': enabled_plugin.name, 'html': html})

    return result
示例#9
0
文件: utils.py 项目: bdemetris/sal
def get_machine_detail_placeholder_markup(machine):
    manager = PluginManager()
    result = []
    for enabled_plugin in MachineDetailPlugin.objects.order_by('order'):
        plugin = manager.get_plugin_by_name(enabled_plugin.name)
        if plugin and machine.os_family in plugin.get_supported_os_families():
            html = ('<div id="plugin-{}">'
                    '    <img class="center-block blue-spinner" src="{}"/>'
                    '</div>'.format(enabled_plugin.name, static('img/blue-spinner.gif')))

            result.append({'name': enabled_plugin.name, 'html': html})

    return result
示例#10
0
文件: non_ui_views.py 项目: jpbw/sal
def process_plugin(plugin_name, group_type='all', group_id=None):
    plugin = PluginManager.get_plugin_by_name(plugin_name)

    # Ensure that a plugin was instantiated before proceeding.
    if not plugin:
        raise Http404

    # Ensure the request is not for a disabled plugin.
    if isinstance(plugin, Widget):
        model = Plugin
    elif isinstance(plugin, ReportPlugin):
        model = Report
    else:
        model = MachineDetailPlugin
    get_object_or_404(model, name=plugin_name)

    return plugin
示例#11
0
def preflight_v2(request):
    """Find plugins that have embedded preflight scripts."""
    # Load in the default plugins if needed
    utils.load_default_plugins()
    manager = PluginManager()
    output = []
    # Old Sal scripts just do a GET; just send everything in that case.
    os_family = None if request.method != 'POST' else request.POST.get('os_family')

    enabled_reports = Report.objects.all()
    enabled_plugins = Plugin.objects.all()
    enabled_detail_plugins = MachineDetailPlugin.objects.all()
    for enabled_plugin in itertools.chain(enabled_reports, enabled_plugins, enabled_detail_plugins):
        plugin = manager.get_plugin_by_name(enabled_plugin.name)
        if not plugin:
            continue
        if os_family is None or os_family in plugin.get_supported_os_families():
            scripts = utils.get_plugin_scripts(plugin, hash_only=True)
            if scripts:
                output += scripts

    return HttpResponse(json.dumps(output))
示例#12
0
文件: utils.py 项目: bdemetris/sal
def get_plugin_placeholder_markup(plugins, group_type='all', group_id=None):
    result = []
    manager = PluginManager()
    hidden = get_hidden_plugins(group_type, group_id)
    group_oses = get_member_oses(group_type, group_id)
    display_plugins = [p for p in Plugin.objects.order_by('order') if p.name not in hidden]
    for enabled_plugin in display_plugins:
        name = enabled_plugin.name
        yapsy_plugin = manager.get_plugin_by_name(name)
        if not yapsy_plugin:
            continue
        # Skip this plugin if the group's members OS families aren't supported
        # ...but only if this group has any members (group_oses is not empty
        plugin_os_families = set(yapsy_plugin.get_supported_os_families())
        if group_oses and not plugin_os_families.intersection(group_oses):
            continue
        width = yapsy_plugin.get_widget_width(group_type=group_type, group_id=group_id)
        html = ('<div id="plugin-{}" class="col-md-{}">\n'
                '    <img class="center-block blue-spinner" src="{}"/>\n'
                '</div>\n'.format(name, width, static('img/blue-spinner.gif')))
        result.append({'name': name, 'width': width, 'html': html})

    return order_plugin_output(result, group_type, group_id)