示例#1
0
 def _get_netbox_from_row(row):
     netbox = Netbox(ip=row['ip'], read_only=row['ro'],
                     read_write=row['rw'], snmp_version=1)
     netbox.room = get_object_or_fail(Room, id=row['roomid'])
     netbox.organization = get_object_or_fail(Organization, id=row['orgid'])
     netbox.category = get_object_or_fail(Category, id=row['catid'])
     netbox.sysname = netbox.ip
     return netbox
示例#2
0
def netbox_do_save(form, serial_form, group_form):
    """Save netbox"""
    clean_data = form.cleaned_data
    primary_key = clean_data.get('id')
    data = {
        'ip': clean_data['ip'],
        'sysname': clean_data['sysname'],
        'room': clean_data['room'],
        'category': clean_data['category'],
        'organization': clean_data['organization'],
        'read_only': clean_data['read_only'],
        'read_write': clean_data['read_write'],
        'snmp_version': clean_data['snmp_version'],
        'up_to_date': False,
    }

    serial = serial_form.cleaned_data['serial']
    if serial:
        device, _ = Device.objects.get_or_create(serial=serial)
        data['device'] = device
    elif not primary_key:
        device = Device.objects.create(serial=None)
        data['device'] = device

    if 'type' in clean_data and clean_data['type']:
        data['type'] = NetboxType.objects.get(pk=clean_data['type'])


    if primary_key:
        netbox = Netbox.objects.get(pk=primary_key)
        for key in data:
            setattr(netbox, key, data[key])
    else:
        netbox = Netbox(**data)

    netbox.save()

    function = serial_form.cleaned_data['function']
    if function:
        try:
            func = NetboxInfo.objects.get(netbox=netbox, variable='function')
        except NetboxInfo.DoesNotExist:
            func = NetboxInfo(
                netbox=netbox, variable='function', value=function
            )
        else:
            func.value = function
        func.save()

    if group_form:
        netboxgroups = group_form.cleaned_data['netboxgroups']
        NetboxCategory.objects.filter(netbox=netbox).delete()
        for netboxgroup in netboxgroups:
            NetboxCategory.objects.create(netbox=netbox, category=netboxgroup)

    return netbox
示例#3
0
def netbox_do_save(form, serial_form, group_form):
    """Save netbox"""
    clean_data = form.cleaned_data
    primary_key = clean_data.get('id')
    data = {
        'ip': clean_data['ip'],
        'sysname': clean_data['sysname'],
        'room': clean_data['room'],
        'category': clean_data['category'],
        'organization': clean_data['organization'],
        'read_only': clean_data['read_only'],
        'read_write': clean_data['read_write'],
        'snmp_version': clean_data['snmp_version'],
        'up_to_date': False,
    }

    serial = serial_form.cleaned_data['serial']
    if serial:
        device, _ = Device.objects.get_or_create(serial=serial)
        data['device'] = device
    elif not primary_key:
        device = Device.objects.create(serial=None)
        data['device'] = device

    if 'type' in clean_data and clean_data['type']:
        data['type'] = NetboxType.objects.get(pk=clean_data['type'])

    if primary_key:
        netbox = Netbox.objects.get(pk=primary_key)
        for key in data:
            setattr(netbox, key, data[key])
    else:
        netbox = Netbox(**data)

    netbox.save()

    function = serial_form.cleaned_data['function']
    if function:
        try:
            func = NetboxInfo.objects.get(netbox=netbox, variable='function')
        except NetboxInfo.DoesNotExist:
            func = NetboxInfo(netbox=netbox,
                              variable='function',
                              value=function)
        else:
            func.value = function
        func.save()

    if group_form:
        netboxgroups = group_form.cleaned_data['netboxgroups']
        NetboxCategory.objects.filter(netbox=netbox).delete()
        for netboxgroup in netboxgroups:
            NetboxCategory.objects.create(netbox=netbox, category=netboxgroup)

    return netbox
示例#4
0
    def setUp(self):
        """Test setup"""

        netbox1 = Netbox()
        netbox1.get_availability = Mock(
            return_value = {'availability': {'day': None,
                                             'month': 100.0,
                                             'week': 100.0}})
        netbox2 = Netbox()
        netbox2.get_availability = Mock(
            return_value = {'availability': {'day': None,
                                             'month': 100.0,
                                             'week': None}})
        self.netboxes = [netbox1, netbox2]
示例#5
0
def netbox(db, management_profile):
    box = Netbox(ip='10.254.254.254', sysname='example-sw.example.org',
                 organization_id='myorg', room_id='myroom', category_id='SW')
    box.save()
    NetboxProfile(netbox=box, profile=management_profile).save()

    device = Device(serial="1234test")
    device.save()
    module = Module(device=device, netbox=box, name='Module 1', model='')
    module.save()

    interface = Interface(netbox=box, module=module, ifname='1',
                          ifdescr='Port 1')
    interface.save()

    return box
示例#6
0
    def update(self, request, *args, **kwargs):

        viewid = kwargs.pop('viewid')
        data = request.DATA.get('data', [])
        # nodes to be updated in the topology cache
        cache_updates = []
        for d in data:
            defaults = {
                'x': int(d['x']),
                'y': int(d['y']),
            }
            obj, created = NetmapViewNodePosition.objects.get_or_create(
                viewid=NetmapView(pk=viewid),
                netbox=Netbox(pk=int(d['netbox'])),
                defaults=defaults)
            if not created:
                obj.x = defaults['x']
                obj.y = defaults['y']
                obj.save()
            cache_updates.append({
                "id": str(obj.netbox.id),
                "x": defaults["x"],
                "y": defaults["y"],
                "new_node": created
            })
        # Invalidate cached position
        if cache_exists("topology", viewid, "layer 2"):
            update_cached_node_positions(viewid, "layer 2", cache_updates)
        if cache_exists("topology", viewid, "layer 3"):
            update_cached_node_positions(viewid, "layer 3", cache_updates)
        return Response({"status": "OK"})
示例#7
0
def netbox(db):
    box = Netbox(ip='10.254.254.254', sysname='example-sw.example.org',
                 organization_id='myorg', room_id='myroom', category_id='SW',
                 snmp_version=2, read_only='public')
    box.save()

    device = Device(serial="1234test")
    device.save()
    module = Module(device=device, netbox=box, name='Module 1', model='')
    module.save()

    interface = Interface(netbox=box, module=module, ifname='1',
                          ifdescr='Port 1')
    interface.save()

    return box
示例#8
0
 def _netbox_factory(self, sysname, interface=None):
     netbox = Netbox()
     netbox.id = self._next_id()
     netbox.sysname = sysname
     netbox.interface = interface
     netbox.category = self.category_gw
     netbox.room = self.room
     netbox.ip = '::{0}'.format(self.model_id)
     return netbox
示例#9
0
 def _netbox_factory(self, sysname, interface=None):
     netbox = Netbox()
     netbox.id = self._next_id()
     netbox.sysname = sysname
     netbox.interface = interface
     netbox.category = self.category_gw
     netbox.room = self.room
     netbox.ip = '::{0}'.format(self.model_id)
     return netbox
示例#10
0
 def setUp(self):
     self.event = Event(
         source=Subsystem('someone'),
         netbox=Netbox(),
         device=Device(),
         subid="thing",
         event_type=EventType('boxState'),
         state=Event.STATE_START,
         time=datetime.datetime.now(),
         value=50,
         severity=80,
     )
示例#11
0
def host_expected_to_be_down(management_profile):
    box = Netbox(ip='10.254.254.254', sysname='downhost.example.org',
                 organization_id='myorg', room_id='myroom', category_id='SRV')
    box.save()
    NetboxProfile(netbox=box, profile=management_profile).save()
    yield box
    print("teardown test device")
    box.delete()
示例#12
0
def netbox():
    box = Netbox(ip='10.254.254.254', sysname='downhost.example.org',
                 organization_id='myorg', room_id='myroom', category_id='SRV',
                 snmp_version=2)
    box.save()
    yield box
    print("teardown test device")
    box.delete()
示例#13
0
    def _get_netbox_from_row(row):
        netbox = Netbox(ip=row['ip'])
        netbox.room = get_object_or_fail(Room, id=row['roomid'])
        netbox.organization = get_object_or_fail(Organization, id=row['orgid'])
        netbox.category = get_object_or_fail(Category, id=row['catid'])
        netbox.sysname = netbox.ip

        master = row.get('master')
        if master:
            if is_valid_ip(master, use_socket_lib=True):
                netbox.master = get_object_or_fail(Netbox, ip=master)
            else:
                netbox.master = get_object_or_fail(Netbox,
                                                   sysname__startswith=master)

        return netbox
示例#14
0
def localhost():
    from nav.models.manage import Netbox
    box = Netbox(ip='127.0.0.1', sysname='localhost.example.org',
                 organization_id='myorg', room_id='myroom', category_id='SRV',
                 read_only='public', snmp_version=2)
    box.save()
    yield box
    print("teardown test device")
    box.delete()
示例#15
0
 def _get_netbox_from_row(row):
     netbox = Netbox(ip=row['ip'],
                     read_only=row['ro'],
                     read_write=row['rw'],
                     snmp_version=1)
     netbox.room = get_object_or_fail(Room, id=row['roomid'])
     netbox.organization = get_object_or_fail(Organization, id=row['orgid'])
     netbox.category = get_object_or_fail(Category, id=row['catid'])
     netbox.sysname = netbox.ip
     return netbox
示例#16
0
def netbox(management_profile):
    box = Netbox(ip='10.254.254.254',
                 sysname='downhost.example.org',
                 organization_id='myorg',
                 room_id='myroom',
                 category_id='SRV')
    box.save()
    yield box
    print("teardown test device")
    box.delete()
示例#17
0
def localhost(management_profile):
    from nav.models.manage import Netbox, NetboxProfile
    box = Netbox(ip='127.0.0.1',
                 sysname='localhost.example.org',
                 organization_id='myorg',
                 room_id='myroom',
                 category_id='SRV')
    box.save()
    NetboxProfile(netbox=box, profile=management_profile).save()
    yield box
    print("teardown test device")
    box.delete()
示例#18
0
def host_going_down():
    box = Netbox(
        ip="10.254.254.254",
        sysname="downhost.example.org",
        organization_id="myorg",
        room_id="myroom",
        category_id="SRV",
    )
    box.save()
    yield box
    print("teardown test device")
    box.delete()
示例#19
0
    def setUp(self):
        """Test setup"""

        netbox1 = Netbox()
        netbox1.get_availability = Mock(return_value={
            'availability': {
                'day': None,
                'month': 100.0,
                'week': 100.0
            }
        })
        netbox2 = Netbox()
        netbox2.get_availability = Mock(return_value={
            'availability': {
                'day': None,
                'month': 100.0,
                'week': None
            }
        })
        self.netboxes = [netbox1, netbox2]