def get(self, request): host_id = request.GET.get('id', None) model_host = models.Hosts() status = False owner_id = model_host.get_owner(host_id) if owner_id == request.user.id: host_name = model_host.get_host_name(request.user.id, host_id) models_pm = models.PortMonitor() protocol, ports = models_pm.get_protocol_and_ports(host_id) protocol = helper.format_protocols_to_array(protocol) task.stop_port(host_name, str(request.user.id), str(host_id), str(ports), protocol) key = "p_" + str(host_id) session_exist = request.session.get(key) if session_exist: result = helper.get_port_monitor_results( host_id, request.user.id) del request.session[key] pm = models.PortMonitor() pm.update_params(host_id, str(result)) model_host.update_is_port(host_id, False) messages.success(request, 'You are not port monitoring now!') status = False else: messages.error(request, 'Something went wrong!') data = {'stopped': status} return JsonResponse(data)
def get_monitored_ports(request): ids = json.loads(request.GET.get('ids')) pm = models.PortMonitor() monitored = {} for idd in ids: temp = {} ports = pm.get_ports(idd) temp['ports'] = ports temp['count'] = len(list(ports['ports'].split(" "))) monitored[str(idd)] = temp data = {'status': monitored} return JsonResponse(data)
def stat_list_port(request, pk): pm = models.PortMonitor() stats = pm.get_stats(pk, 'id') hm = models.Hosts() owner_id = hm.get_owner(pk) if owner_id == request.user.id: name = hm.get_host_name(request.user.id, pk) stats = helper.format_port_monitor_results(stats) return render(request, 'stat_list_port.html', { 'id': int(pk), 'stats': stats, 'name': name }) raise Http404
def check_if_expired(request): ids = json.loads(request.GET.get('ids')) hum = models.HostUsersMonitor() pm = models.PortMonitor() success = True for idm in ids: end_time = hum.get_end_time(idm) st, end_time_port = pm.get_times(idm) model_host = models.Hosts() host_name = model_host.get_host_name(request.user.id, idm) if end_time: if end_time < timezone.now(): success = task.stop_ping(host_name, str(request.user.id), str(idm)) if success: min_ms, avg_ms, max_ms, transmited_pac, lost_pac = helper.get_ping_params( str(idm), str(request.user.id)) hum.update_params(idm, timezone.now(), min_ms, avg_ms, max_ms, transmited_pac, lost_pac) session_exist = request.session.get(str(idm)) if session_exist: del request.session[str(idm)] model_host.update_is_ping(idm, False) if end_time_port: if end_time_port < timezone.now(): protocol, ports = pm.get_protocol_and_ports(idm) protocol = helper.format_protocols_to_array(protocol) success = task.stop_port(host_name, str(request.user.id), str(idm), str(ports), protocol) if success: key = "p_" + str(idm) session_exist = request.session.get(key) if session_exist: result = helper.get_port_monitor_results( idm, request.user.id) del request.session[key] pm.update_params(idm, str(result)) model_host.update_is_port(idm, False) data = {'status': success} return JsonResponse(data)
def sort_port_stats(request): id_p = request.GET.get('id_p') criretia = request.GET.get('criretia') date_start = request.GET.get('tstart') date_end = request.GET.get('tend') pm = models.PortMonitor() criretia = helper.get_criteria(criretia) if date_start == "" or date_end == "": stats = pm.get_stats(id_p, criretia) else: stats = pm.get_stats_date(id_p, criretia, date_start, date_end) stats = helper.format_port_monitor_results(stats) data = {'stats': list(stats)} return JsonResponse(data, safe=True)
def start_port(request, pk, template_name='modals/start_port.html'): model_pm = models.PortMonitor() model_host = models.Hosts() owner_id = model_host.get_owner(pk) if owner_id == request.user.id: form = PortMonitorForm(request.POST or None) if form.is_valid(): model_host = models.Hosts() host_name = model_host.get_host_name(request.user.id, pk) date = form.cleaned_data['end_time'] ports = form.cleaned_data['ports'] prot = form.cleaned_data['protocol'] protocol = helper.get_protocol(prot) port_list = helper.prepare_port_list(ports) key = "p_" + str(pk) session_exist = request.session.get(key) if not session_exist: request.session[key] = "{}" task.check_port_3_sec(host_name, request.user.id, pk, port_list, protocol, repeat=1, repeat_until=date) if len(protocol) == 2: protocol = "tcp/udp" else: protocol = protocol[0] model_pm.create_port_monitor(pk, date, str(port_list), protocol) model_host.update_is_port(pk, True) return HttpResponse( render_to_string('modals/item_edit_form_success.html')) return render(request, template_name, {'form': form, 'id': pk}) raise Http404
def view_host_settings(request, pk): host_m = models.Hosts() owner_id = host_m.get_owner(pk) if owner_id == request.user.id: hum = models.HostUsersMonitor() user_hosts = hum.get_info(pk) pm = models.PortMonitor() port_m_info = pm.get_info(pk) else: raise Http404 return render( request, 'settings_list.html', { 'id': int(pk), 'host': user_hosts, 'user_id': request.user.id, 'p_times': port_m_info })