def setUp(self): User.objects.all().delete() self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') self.server_collection = alerts_model.mongo.get_collection('servers') self.server_collection.insert({ "name": "test", "key": "test_me", "account_id": self.account_id }) server = self.server_collection.find_one( {'account_id': self.account_id}) self.server_id = server['_id'] self.process_collection = alerts_model.mongo.get_collection( 'processes') self.process_collection.insert({ "name": "test", "account_id": self.account_id }) process = self.process_collection.find_one() self.process_id = process['_id'] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.updated_notifications_list = [ x['formated_id'] for x in notifications ] self.example_alert_dict = { "above_below": "above", "email_recepients": [], "rule_type": "global", "server": "all", "account_id": self.account_id, "period": 300, }
def setUp(self): User.objects.all().delete() self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') self.server_collection = alerts_model.mongo.get_collection('servers') self.server_collection.insert({ "name" : "test", "key": "test_me", "account_id": self.account_id }) server = self.server_collection.find_one({'account_id': self.account_id}) self.server_id = server['_id'] self.process_collection = alerts_model.mongo.get_collection('processes') self.process_collection.insert({ "name" : "test", "account_id": self.account_id }) process = self.process_collection.find_one() self.process_id = process['_id'] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.updated_notifications_list = [x['formated_id'] for x in notifications] self.example_alert_dict = { "above_below": "above", "email_recepients": [], "rule_type": "global", "server": "all", "account_id": self.account_id, "period": 300, }
def add_alert(request): all_servers = server_model.get_all() tags = tags_model.get_all() notifications = notifications_model.get_all_formated() if request.method == 'POST': form = HealthCheckAlertForm(request.POST, all_servers=all_servers) if form.is_valid(): data = form.cleaned_data form_data = { "command": request.POST.get('command'), "param": request.POST.get('param'), "tags": request.POST.getlist('tags'), "notifications": request.POST.getlist('notifications'), "rule_type": "health_check", } data.update(form_data) alerts_model.save(data) return redirect(reverse('alerts')) else: form = HealthCheckAlertForm(all_servers=all_servers) return render( request, 'alerts/add_healthcheck.html', { "form": form, 'tags': tags, 'notifications': notifications, "all_servers": all_servers })
def edit_alert(request, alert_id): all_servers = server_model.get_all(account_id=request.account_id) alert = alerts_model.get_by_id(alert_id, recipients_dict=False) tags = tags_model.get_all() server = alert.get('server', None) # If the alert is for specific server, it could be global notifications = notifications_model.get_all_formated() selected_metric = alerts_api_model.get_selected_metric(alert=alert) if request.method == 'POST': form = EditAlertForm(request.POST, all_servers=all_servers) if form.is_valid(): data = form.cleaned_data form_data = { "tags": request.POST.getlist('tags', None), "metric_value": data.get('metric_value'), "above_below": data.get('above_below'), "period": data.get('period'), "server": server, "metric_type": request.POST.get('metric_type'), "notifications": request.POST.getlist('notifications') } alerts_model.update(form_data, alert_id) return redirect(reverse('alerts')) else: form = EditAlertForm(all_servers=all_servers, initial={ 'metric_value': alert['metric_value'], 'period': alert['period'], 'server':server, "above_below": alert['above_below'], }) # TODO - Fix that angular bug sometime metric_types = '' metric = alert.get('metric') if metric: metric = metric.lower() metric_types = ["%"] if metric == 'cpu' else [] metric_types = ["%", "MB"] if metric == 'memory' else metric_types metric_types = ["%", "MB", "GB"] if metric == 'disk' else metric_types metric_types = ["KB/s"] if metric in ['network/inbound', 'network/outbound'] else metric_types return render(request, 'alerts/edit.html', { "server": server, 'tags': tags, "alert": alert, "form": form, "selected_metric": selected_metric, "notifications": notifications, "metric_types": metric_types, })
def edit_alert(request, alert_id): all_servers = server_model.get_all(account_id=request.account_id) alert = alerts_model.get_by_id(alert_id, recipients_dict=False) tags = tags_model.get_all() server = alert.get( 'server', None) # If the alert is for specific server, it could be global selected_command = " ".join( [alert.get("command", ""), alert.get('params', "")]) notifications = notifications_model.get_all_formated() if request.method == 'POST': form = EditHealthCheckAlertForm(request.POST, all_servers=all_servers) if form.is_valid(): data = form.cleaned_data form_data = { "tags": request.POST.getlist('tags', None), "status": data.get('status'), "period": data.get('period'), "server": server, "notifications": request.POST.getlist('notifications') } alerts_model.update(form_data, alert_id) return redirect(reverse('alerts')) else: form = EditHealthCheckAlertForm(all_servers=all_servers, initial={ 'period': alert['period'], 'server': server, "status": alert['status'], }) return render( request, 'alerts/edit_healthcheck.html', { "server": server, 'tags': tags, "alert": alert, "form": form, "selected_command": selected_command, "notifications": notifications, })
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id'] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] self.emails = [x['email'] for x in notifications] self.process = process_model.get_or_create(server_id=self.server_id, name='testprocess') self.process_id = self.process['_id']
def add_alert(request): all_servers = server_model.get_all(account_id=request.account_id) tags = tags_model.get_all() notifications = notifications_model.get_all_formated() if request.method == 'POST': form = AlertForm(request.POST, all_servers=all_servers) if form.is_valid(): data = form.cleaned_data metric = data.get('metric') metric_dict = dict(item.split(":") for item in metric.split(".")) form_data = { "metric_type": request.POST.get('metric_type'), "tags": request.POST.getlist('tags'), "notifications": request.POST.getlist('notifications'), "rule_type": metric_dict.get('rule_type'), "account_id": request.account_id, } form_data = dict( list(form_data.items()) + list(metric_dict.items())) del data['metric'] data.update(form_data) alerts_model.save(data) return redirect(reverse('alerts')) else: form = AlertForm(all_servers=all_servers) return render_to_response('alerts/add.html', { "common_metrics": settings.COMMON_METRICS, "form": form, 'tags': tags, 'notifications': notifications, "all_servers": all_servers }, context_instance=RequestContext(request))
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id'] email_model.insert({'sent_from': '*****@*****.**'}) notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] self.emails = [x['email'] for x in notifications] self.process = process_model.get_or_create(server_id=self.server_id, name='testprocess') self.process_id = self.process['_id']
def add_alert(request): all_servers = server_model.get_all(account_id=request.account_id) tags = tags_model.get_all() notifications = notifications_model.get_all_formated() if request.method == 'POST': form = AlertForm(request.POST, all_servers=all_servers) if form.is_valid(): data = form.cleaned_data metric = data.get('metric') metric_dict = dict(item.split(":") for item in metric.split(".")) form_data = { "metric_type": request.POST.get('metric_type'), "tags": request.POST.getlist('tags'), "notifications": request.POST.getlist('notifications'), "rule_type": metric_dict.get('rule_type'), "account_id": request.account_id, } form_data = dict(list(form_data.items()) + list(metric_dict.items())) del data['metric'] data.update(form_data) alerts_model.save(data) return redirect(reverse('alerts')) else: form = AlertForm(all_servers=all_servers) return render(request, 'alerts/add.html', { "common_metrics": settings.COMMON_METRICS, "form": form, 'tags': tags, 'notifications': notifications, "all_servers": all_servers })