Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
        })