Пример #1
0
def serializer_models(localhost):
    """Fixture for testing API serializers

    - unrecognized_neighbor
    - auditlog
    """
    from nav.models import cabling, event, manage, profiles, rack
    from nav.auditlog import models as auditlog
    netbox = localhost

    group = manage.NetboxGroup.objects.all()[0]
    manage.NetboxCategory(netbox=netbox, category=group).save()

    interface = manage.Interface(netbox=netbox,
                                 ifindex=1,
                                 ifname='if1',
                                 ifdescr='ifdescr',
                                 iftype=1,
                                 speed=10)
    interface.save()
    manage.Cam(sysname='asd',
               mac='aa:aa:aa:aa:aa:aa',
               ifindex=1,
               end_time=datetime.now()).save()
    manage.Arp(sysname='asd',
               mac='aa:bb:cc:dd:ee:ff',
               ip='123.123.123.123',
               end_time=datetime.now()).save()
    manage.Prefix(net_address='123.123.123.123').save()
    manage.Vlan(vlan=10, net_type_id='lan').save()
    rack.Rack(room_id='myroom').save()
    cabel = cabling.Cabling(room_id='myroom', jack='1')
    cabel.save()
    cabling.Patch(interface=interface, cabling=cabel).save()

    source = event.Subsystem.objects.get(pk='pping')
    target = event.Subsystem.objects.get(pk='eventEngine')
    event_type = event.EventType.objects.get(pk='boxState')

    boxdown_id = 3

    event.EventQueue(source=source,
                     target=target,
                     event_type=event_type,
                     netbox=netbox).save()
    event.AlertHistory(source=source,
                       event_type=event_type,
                       netbox=netbox,
                       start_time=datetime.now() - timedelta(days=1),
                       value=1,
                       severity=50,
                       alert_type_id=boxdown_id,
                       end_time=INFINITY).save()
    admin = profiles.Account.objects.get(login='******')
    auditlog.LogEntry.add_log_entry(admin, verb='verb', template='asd')
    manage.Usage(id='ans', description='Ansatte').save()
    manage.Usage(id='student', description='Studenter').save()
Пример #2
0
    def save(self):
        # Reuse the same object over and over in an attempt to avoid the
        # overhead of Python object creation
        record = manage.Cam(netbox_id=self.netbox.id,
                            sysname=self.netbox.sysname,
                            start_time=datetime.datetime.now(),
                            end_time=INFINITY)
        for cam in self._new:
            record.id = None
            record.port = self._get_port_for(cam.ifindex)
            record.ifindex = cam.ifindex
            record.mac = cam.mac
            record.save()

        # reclaim recently closed records
        keepers = (self._previously_open[cam] for cam in self._keepers)
        reclaim = [cam.id for cam in keepers if cam.end_time < INFINITY]
        if reclaim:
            self._logger.debug("reclaiming %r", reclaim)
            manage.Cam.objects.filter(id__in=reclaim).update(end_time=INFINITY,
                                                             miss_count=0)