Пример #1
0
    def get_module_view(module_object, perspective, activity_interval=None):
        """
        Returns a dict structure with all ports on the module.

        Arguments:
        perspective -- decides what kind of ports are included.
        activity_interval -- number of days to check for port activity.

        """

        module = utils.get_module_view(module_object, perspective,
                                       activity_interval)

        if activity_interval is not None:
            module['activity_interval'] = activity_interval
            module['activity_interval_start'] = (
                dt.datetime.now() - dt.timedelta(days=activity_interval))

            # Check if we got data for the entire search interval
            try:
                module['activity_data_start'] = (
                    module_object.netbox.cam_set.order_by(
                        'start_time')[0].start_time)
                module['activity_data_interval'] = (
                    dt.datetime.now() - module['activity_data_start']).days
                module['activity_complete_data'] = (
                    module['activity_data_start'] <
                    module['activity_interval_start'])
            except IndexError:
                module['activity_data_start'] = None
                module['activity_data_interval'] = 0
                module['activity_complete_data'] = False

        return module
Пример #2
0
    def get_module_view(module_object, perspective, activity_interval=None):
        """
        Returns a dict structure with all ports on the module.

        Arguments:
        perspective -- decides what kind of ports are included.
        activity_interval -- number of days to check for port activity.

        """

        module = utils.get_module_view(
            module_object, perspective, activity_interval)

        if activity_interval is not None:
            module['activity_interval'] = activity_interval
            module['activity_interval_start'] = (
                    dt.datetime.now() - dt.timedelta(days=activity_interval))

            # Check if we got data for the entire search interval
            try:
                module['activity_data_start'] = (
                    module_object.netbox.cam_set.order_by(
                        'start_time')[0].start_time)
                module['activity_data_interval'] = (
                    dt.datetime.now() - module['activity_data_start']).days
                module['activity_complete_data'] = (
                    module['activity_data_start'] <
                    module['activity_interval_start'])
            except IndexError:
                module['activity_data_start'] = None
                module['activity_data_interval'] = 0
                module['activity_complete_data'] = False

        return module
Пример #3
0
def test_get_module_view(netbox, perspective):
    module = netbox.module_set.all()[0]
    result = get_module_view(module, perspective='swportstatus', netbox=netbox)
    assert result['object'] == module
    assert 'ports' in result
Пример #4
0
def get_port_view(request, netbox_sysname, perspective):
    """Returns a html fragment with all modules and ports on the netbox.

    Arguments:
    netbox_sysname -- ...
    perspective -- decides what kind of ports are included.
    """

    netbox = get_object_or_404(Netbox, sysname=netbox_sysname)

    # Get port activity search interval from form
    activity_interval = 30
    activity_interval_form = None
    if perspective == 'swportactive':
        if 'interval' in request.GET:
            activity_interval_form = ActivityIntervalForm(request.GET)
            if activity_interval_form.is_valid():
                activity_interval = activity_interval_form.cleaned_data[
                    'interval']
        else:
            activity_interval_form = ActivityIntervalForm(
                initial={'interval': activity_interval})

    port_view = {
        'perspective':
        perspective,
        'modules': [],
        'activity_interval':
        activity_interval,
        'activity_interval_start':
        dt.datetime.now() - dt.timedelta(days=activity_interval),
    }

    # Check if we got data for the entire search interval
    try:
        port_view['activity_data_start'] = netbox.cam_set.order_by(
            'start_time')[0].start_time
        port_view['activity_data_interval'] = (
            dt.datetime.now() - port_view['activity_data_start']).days
        port_view['activity_complete_data'] = (
            port_view['activity_data_start'] <
            port_view['activity_interval_start'])
    except IndexError:
        port_view['activity_data_start'] = None
        port_view['activity_data_interval'] = 0
        port_view['activity_complete_data'] = False

    # Add the modules
    for module in netbox.module_set.select_related():
        port_view['modules'].append(
            utils.get_module_view(module, perspective, activity_interval))

    # Add interfaces with no module
    port_view['modules'].append(
        utils.get_module_view(None, perspective, activity_interval, netbox))

    # Min length of ifname for it to be shortened
    ifname_too_long = 12

    return render_to_response('ipdevinfo/modules.html', {
        'netbox': netbox,
        'port_view': port_view,
        'ifname_too_long': ifname_too_long,
        'activity_interval_form': activity_interval_form
    },
                              context_instance=RequestContext(request))
Пример #5
0
def get_port_view(request, netbox_sysname, perspective):
    """Returns a html fragment with all modules and ports on the netbox.

    Arguments:
    netbox_sysname -- ...
    perspective -- decides what kind of ports are included.
    """

    netbox = get_object_or_404(Netbox, sysname=netbox_sysname)

    # Get port activity search interval from form
    activity_interval = 30
    activity_interval_form = None
    if perspective == 'swportactive':
        if 'interval' in request.GET:
            activity_interval_form = ActivityIntervalForm(request.GET)
            if activity_interval_form.is_valid():
                activity_interval = activity_interval_form.cleaned_data[
                                    'interval']
        else:
            activity_interval_form = ActivityIntervalForm(
                initial={'interval': activity_interval})

    port_view = {
            'perspective': perspective,
            'modules': [],
            'activity_interval': activity_interval,
            'activity_interval_start':
                dt.datetime.now() - dt.timedelta(days=activity_interval),
            }

    # Check if we got data for the entire search interval
    try:
        port_view['activity_data_start'] = netbox.cam_set.order_by(
            'start_time')[0].start_time
        port_view['activity_data_interval'] = (
            dt.datetime.now() - port_view['activity_data_start']).days
        port_view['activity_complete_data'] = (
            port_view['activity_data_start'] <
            port_view['activity_interval_start'])
    except IndexError:
        port_view['activity_data_start'] = None
        port_view['activity_data_interval'] = 0
        port_view['activity_complete_data'] = False

    # Add the modules
    for module in netbox.module_set.select_related():
        port_view['modules'].append(utils.get_module_view(
            module, perspective, activity_interval))

    # Add interfaces with no module
    port_view['modules'].append(utils.get_module_view(
        None, perspective, activity_interval, netbox))

    # Min length of ifname for it to be shortened
    ifname_too_long = 12

    return render_to_response(
        'ipdevinfo/modules.html',
            {
            'netbox': netbox,
            'port_view': port_view,
            'ifname_too_long': ifname_too_long,
            'activity_interval_form': activity_interval_form
            },
        context_instance=RequestContext(request))