def system_settings(request): if not request.user.is_staff: context = { 'error': 'Unsufficient permissions' } return scirius_render(request, 'rules/system_settings.html', context) main_form = SystemSettingsForm(instance = get_system_settings()) kibana_form = KibanaDataForm() context = { 'form_id': 'main', 'main_form': main_form, 'kibana_form': kibana_form, } if request.method == 'POST': form_id = request.POST.get('form_id', None) if form_id == 'main': main_form = SystemSettingsForm(request.POST, instance = get_system_settings()) context['main_form'] = main_form if main_form.is_valid(): main_form.save() context['success'] = "All changes saved." else: context['error'] = "Invalid form." elif form_id == 'kibana': es_data = ESData() if 'export' in request.POST: tar_name, tar_file = es_data.kibana_export() with open(tar_file, 'rb') as f: content = f.read() os.unlink(tar_file) response = HttpResponse(content, content_type='application/x-bzip2') response['Content-Disposition'] = 'attachment; filename="%s"' % tar_name return response elif 'import' in request.POST: form = KibanaDataForm(request.POST, request.FILES) if form.is_valid() and 'file' in request.FILES: try: count = es_data.kibana_import_fileobj(request.FILES['file']) context['success'] = 'Successfully imported %i dashboards' % count except Exception, e: context['error'] = 'Import failed: %s' % e else: context['error'] = 'Please provide a dashboard archive' elif 'clear' in request.POST: try: es_data.kibana_clear() context['success'] = 'Done' except Exception, e: context['error'] = 'Clearing failed: %s' % e elif 'reset' in request.POST: try: es_data.kibana_reset() context['success'] = 'Done' except Exception, e: context['error'] = 'Reset failed: %s' % e
def __init__(self, *args, **kw): BaseCommand.__init__(self, *args, **kw) ESData.__init__(self)
def system_settings(request): if not request.user.is_staff: context = {'error': 'Unsufficient permissions'} return scirius_render(request, 'rules/system_settings.html', context) main_form = SystemSettingsForm(instance=get_system_settings()) kibana_form = KibanaDataForm() context = { 'form_id': 'main', 'main_form': main_form, 'kibana_form': kibana_form, } if request.method == 'POST': form_id = request.POST.get('form_id', None) if form_id == 'main': main_form = SystemSettingsForm(request.POST, instance=get_system_settings()) context['main_form'] = main_form if main_form.is_valid(): main_form.save() context['success'] = "All changes saved." else: context['error'] = "Invalid form." elif form_id == 'es': es_data = ESData() try: es_data.es_clear() context['success'] = 'Done' except ConnectionError as e: context['error'] = 'Could not connect to Elasticsearch' except Exception as e: context['error'] = 'Clearing failed: %s' % e elif form_id == 'kibana': es_data = ESData() if 'export' in request.POST: tar_name, tar_file = es_data.kibana_export() with open(tar_file, 'rb') as f: content = f.read() os.unlink(tar_file) response = HttpResponse(content, content_type='application/x-bzip2') response[ 'Content-Disposition'] = 'attachment; filename="%s"' % tar_name return response elif 'import' in request.POST: form = KibanaDataForm(request.POST, request.FILES) if form.is_valid() and 'file' in request.FILES: try: count = es_data.kibana_import_fileobj( request.FILES['file']) context[ 'success'] = 'Successfully imported %i dashboards' % count except Exception, e: context['error'] = 'Import failed: %s' % e else: context['error'] = 'Please provide a dashboard archive' elif 'clear' in request.POST: try: es_data.kibana_clear() context['success'] = 'Done' except Exception, e: context['error'] = 'Clearing failed: %s' % e elif 'reset' in request.POST: try: es_data.kibana_reset() context['success'] = 'Done' except Exception, e: context['error'] = 'Reset failed: %s' % e