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)
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))
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)
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)
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)
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))
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)
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
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
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
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))
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)