Exemplo n.º 1
0
    def test_update_object(self):

        site = Site(name='Test Site 1', slug='test-site-1')
        site.save()

        data = {
            'name': 'Test Site X',
            'slug': 'test-site-x',
            'custom_fields': {
                'my_field': 'DEF'
            },
            'tags': ['abc', 'xyz'],
        }

        self.assertEqual(ObjectChange.objects.count(), 0)

        url = reverse('dcim-api:site-detail', kwargs={'pk': site.pk})
        response = self.client.put(url, data, format='json', **self.header)
        self.assertHttpStatus(response, status.HTTP_200_OK)

        site = Site.objects.get(pk=response.data['id'])
        oc = ObjectChange.objects.get(
            changed_object_type=ContentType.objects.get_for_model(Site),
            changed_object_id=site.pk)
        self.assertEqual(oc.changed_object, site)
        self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
        self.assertEqual(oc.object_data['custom_fields'],
                         data['custom_fields'])
        self.assertListEqual(sorted(oc.object_data['tags']), data['tags'])
Exemplo n.º 2
0
    def setUp(self):
        user = create_test_user(permissions=['dcim.view_device'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1',
                                manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        Device.objects.bulk_create([
            Device(name='Device 1',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
            Device(name='Device 2',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
            Device(name='Device 3',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
        ])
Exemplo n.º 3
0
    def test_delete_object(self):
        site = Site(name='Test Site 1',
                    slug='test-site-1',
                    custom_field_data={
                        'my_field': 'ABC',
                        'my_field_select': 'Bar'
                    })
        site.save()
        self.create_tags('Tag 1', 'Tag 2')
        site.tags.set('Tag 1', 'Tag 2')

        request = {
            'path': self._get_url('delete', instance=site),
            'data': post_data({'confirm': True}),
        }
        self.add_permissions('dcim.delete_site')
        response = self.client.post(**request)
        self.assertHttpStatus(response, 302)

        oc = ObjectChange.objects.first()
        self.assertEqual(oc.changed_object, None)
        self.assertEqual(oc.object_repr, site.name)
        self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
        self.assertEqual(oc.object_data['custom_fields']['my_field'], 'ABC')
        self.assertEqual(oc.object_data['custom_fields']['my_field_select'],
                         'Bar')
        self.assertEqual(oc.object_data['tags'], ['Tag 1', 'Tag 2'])
Exemplo n.º 4
0
    def setUp(self):
        user = create_test_user(permissions=['dcim.view_inventoryitem'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1',
                                manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1',
                        site=site,
                        device_type=devicetype,
                        device_role=devicerole)
        device.save()

        InventoryItem.objects.bulk_create([
            InventoryItem(device=device, name='Inventory Item 1'),
            InventoryItem(device=device, name='Inventory Item 2'),
            InventoryItem(device=device, name='Inventory Item 3'),
        ])
Exemplo n.º 5
0
    def test_update_object(self):
        site = Site(name='Test Site 1', slug='test-site-1')
        site.save()
        tags = self.create_tags('Tag 1', 'Tag 2', 'Tag 3')
        site.tags.set('Tag 1', 'Tag 2')

        form_data = {
            'name': 'Test Site X',
            'slug': 'test-site-x',
            'status': SiteStatusChoices.STATUS_PLANNED,
            'cf_my_field': 'DEF',
            'tags': [tags[2].pk],
        }

        request = {
            'path': self._get_url('edit', instance=site),
            'data': post_data(form_data),
        }
        self.add_permissions('dcim.change_site', 'extras.view_tag')
        response = self.client.post(**request)
        self.assertHttpStatus(response, 302)

        site.refresh_from_db()
        # Get only the most recent OC
        oc = ObjectChange.objects.filter(
            changed_object_type=ContentType.objects.get_for_model(Site),
            changed_object_id=site.pk).first()
        self.assertEqual(oc.changed_object, site)
        self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
        self.assertEqual(oc.object_data['custom_fields']['my_field'],
                         form_data['cf_my_field'])
        self.assertEqual(oc.object_data['tags'], ['Tag 3'])
Exemplo n.º 6
0
    def test_delete_object(self):
        site = Site(name='Test Site 1',
                    slug='test-site-1',
                    custom_field_data={
                        'my_field': 'ABC',
                        'my_field_select': 'Bar'
                    })
        site.save()
        site.tags.set(*Tag.objects.all()[:2])
        self.assertEqual(ObjectChange.objects.count(), 0)
        self.add_permissions('dcim.delete_site')
        url = reverse('dcim-api:site-detail', kwargs={'pk': site.pk})

        response = self.client.delete(url, **self.header)
        self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
        self.assertEqual(Site.objects.count(), 0)

        oc = ObjectChange.objects.first()
        self.assertEqual(oc.changed_object, None)
        self.assertEqual(oc.object_repr, site.name)
        self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
        self.assertEqual(oc.object_data['custom_fields']['my_field'], 'ABC')
        self.assertEqual(oc.object_data['custom_fields']['my_field_select'],
                         'Bar')
        self.assertEqual(oc.object_data['tags'], ['Tag 1', 'Tag 2'])
    def run(self, data, commit):

        # Create the new site
        site = Site(name=data['site_name'],
                    slug=slugify(data['site_name']),
                    status=SiteStatusChoices.STATUS_PLANNED)
        site.save()
        self.log_success(f"Created new site: {site}")

        # Create access switches
        switch_role = DeviceRole.objects.get(name='Access Switch')
        for i in range(1, data['switch_count'] + 1):
            switch = Device(device_type=data['switch_model'],
                            name=f'{site.slug}-switch{i}',
                            site=site,
                            status=DeviceStatusChoices.STATUS_PLANNED,
                            device_role=switch_role)
            switch.save()
            self.log_success(f"Created new switch: {switch}")

        # Generate a CSV table of new devices
        output = ['name,make,model']
        for switch in Device.objects.filter(site=site):
            attrs = [
                switch.name, switch.device_type.manufacturer.name,
                switch.device_type.model
            ]
            output.append(','.join(attrs))

        return '\n'.join(output)
Exemplo n.º 8
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1',
                                manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device1 = Device(name='Device 1',
                         site=site,
                         device_type=devicetype,
                         device_role=devicerole)
        device1.save()
        device2 = Device(name='Device 2',
                         site=site,
                         device_type=devicetype,
                         device_role=devicerole)
        device2.save()

        iface1 = Interface(device=device1,
                           name='Interface 1',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface1.save()
        iface2 = Interface(device=device1,
                           name='Interface 2',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface2.save()
        iface3 = Interface(device=device1,
                           name='Interface 3',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface3.save()
        iface4 = Interface(device=device2,
                           name='Interface 1',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface4.save()
        iface5 = Interface(device=device2,
                           name='Interface 2',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface5.save()
        iface6 = Interface(device=device2,
                           name='Interface 3',
                           form_factor=IFACE_FF_1GE_FIXED)
        iface6.save()

        Cable(termination_a=iface1, termination_b=iface4,
              type=CABLE_TYPE_CAT6).save()
        Cable(termination_a=iface2, termination_b=iface5,
              type=CABLE_TYPE_CAT6).save()
        Cable(termination_a=iface3, termination_b=iface6,
              type=CABLE_TYPE_CAT6).save()
Exemplo n.º 9
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1',
                                manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        Device.objects.bulk_create([
            Device(name='Device 1',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
            Device(name='Device 2',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
            Device(name='Device 3',
                   site=site,
                   device_type=devicetype,
                   device_role=devicerole),
        ])
Exemplo n.º 10
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1',
                                manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1',
                        site=site,
                        device_type=devicetype,
                        device_role=devicerole)
        device.save()

        InventoryItem.objects.bulk_create([
            InventoryItem(device=device, name='Inventory Item 1'),
            InventoryItem(device=device, name='Inventory Item 2'),
            InventoryItem(device=device, name='Inventory Item 3'),
        ])
Exemplo n.º 11
0
    def setUp(self):
        user = create_test_user(permissions=['secrets.view_secret'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(manufacturer=manufacturer, model='Device Type 1')
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
        device.save()

        secretrole = SecretRole(name='Secret Role 1', slug='secret-role-1')
        secretrole.save()

        Secret.objects.bulk_create([
            Secret(device=device, role=secretrole, name='Secret 1', ciphertext=b'1234567890'),
            Secret(device=device, role=secretrole, name='Secret 2', ciphertext=b'1234567890'),
            Secret(device=device, role=secretrole, name='Secret 3', ciphertext=b'1234567890'),
        ])
Exemplo n.º 12
0
    def setUp(self):

        self.client = Client()

        User = get_user_model()
        user = User(username='******', email='*****@*****.**')
        user.save()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        rack = Rack(name='Rack 1', site=site)
        rack.save()

        RackReservation.objects.bulk_create([
            RackReservation(rack=rack,
                            user=user,
                            units=[1, 2, 3],
                            description='Reservation 1'),
            RackReservation(rack=rack,
                            user=user,
                            units=[4, 5, 6],
                            description='Reservation 2'),
            RackReservation(rack=rack,
                            user=user,
                            units=[7, 8, 9],
                            description='Reservation 3'),
        ])
Exemplo n.º 13
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(manufacturer=manufacturer, model='Device Type 1')
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
        device.save()

        secretrole = SecretRole(name='Secret Role 1', slug='secret-role-1')
        secretrole.save()

        Secret.objects.bulk_create([
            Secret(device=device, role=secretrole, name='Secret 1', ciphertext=b'1234567890'),
            Secret(device=device, role=secretrole, name='Secret 2', ciphertext=b'1234567890'),
            Secret(device=device, role=secretrole, name='Secret 3', ciphertext=b'1234567890'),
        ])
Exemplo n.º 14
0
    def setUp(self):
        user = create_test_user(permissions=['dcim.view_rackreservation'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        rack = Rack(name='Rack 1', site=site)
        rack.save()

        RackReservation.objects.bulk_create([
            RackReservation(rack=rack,
                            user=user,
                            units=[1, 2, 3],
                            description='Reservation 1'),
            RackReservation(rack=rack,
                            user=user,
                            units=[4, 5, 6],
                            description='Reservation 2'),
            RackReservation(rack=rack,
                            user=user,
                            units=[7, 8, 9],
                            description='Reservation 3'),
        ])
Exemplo n.º 15
0
    def test_update_object(self):
        site = Site(name='Test Site 1', slug='test-site-1')
        site.save()

        data = {
            'name': 'Test Site X',
            'slug': 'test-site-x',
            'custom_fields': {
                'my_field': 'DEF'
            },
            'tags': [{
                'name': 'Tag 3'
            }]
        }
        self.assertEqual(ObjectChange.objects.count(), 0)
        self.add_permissions('dcim.change_site')
        url = reverse('dcim-api:site-detail', kwargs={'pk': site.pk})

        response = self.client.put(url, data, format='json', **self.header)
        self.assertHttpStatus(response, status.HTTP_200_OK)

        site = Site.objects.get(pk=response.data['id'])
        # Get only the most recent OC
        oc = ObjectChange.objects.filter(
            changed_object_type=ContentType.objects.get_for_model(Site),
            changed_object_id=site.pk).first()
        self.assertEqual(oc.changed_object, site)
        self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
        self.assertEqual(oc.object_data['custom_fields'],
                         data['custom_fields'])
        self.assertEqual(oc.object_data['tags'], ['Tag 3'])
Exemplo n.º 16
0
    def setUp(self):
        user = create_test_user(permissions=['extras.view_objectchange'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ObjectChanges
        for i in range(1, 4):
            site.log_change(user=user, request_id=uuid.uuid4(), action=2)
Exemplo n.º 17
0
    def setUp(self):
        user = create_test_user(permissions=[
            'secrets.view_secret',
            'secrets.add_secret',
        ])

        # Set up a master key
        userkey = UserKey(user=user, public_key=PUBLIC_KEY)
        userkey.save()
        master_key = userkey.get_master_key(PRIVATE_KEY)
        self.session_key = SessionKey(userkey=userkey)
        self.session_key.save(master_key)

        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1',
                                    slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(manufacturer=manufacturer,
                                model='Device Type 1')
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1',
                        site=site,
                        device_type=devicetype,
                        device_role=devicerole)
        device.save()

        secretrole = SecretRole(name='Secret Role 1', slug='secret-role-1')
        secretrole.save()

        Secret.objects.bulk_create([
            Secret(device=device,
                   role=secretrole,
                   name='Secret 1',
                   ciphertext=b'1234567890'),
            Secret(device=device,
                   role=secretrole,
                   name='Secret 2',
                   ciphertext=b'1234567890'),
            Secret(device=device,
                   role=secretrole,
                   name='Secret 3',
                   ciphertext=b'1234567890'),
        ])
Exemplo n.º 18
0
    def setUpTestData(cls):

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ObjectChanges
        user = User.objects.create_user(username='******')
        for i in range(1, 4):
            oc = site.to_objectchange(action=ObjectChangeActionChoices.ACTION_UPDATE)
            oc.user = user
            oc.request_id = uuid.uuid4()
            oc.save()
Exemplo n.º 19
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        VLANGroup.objects.bulk_create([
            VLANGroup(name='VLAN Group 1', slug='vlan-group-1', site=site),
            VLANGroup(name='VLAN Group 2', slug='vlan-group-2', site=site),
            VLANGroup(name='VLAN Group 3', slug='vlan-group-3', site=site),
        ])
Exemplo n.º 20
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        Prefix.objects.bulk_create([
            Prefix(family=4, prefix=IPNetwork('10.1.0.0/16'), site=site),
            Prefix(family=4, prefix=IPNetwork('10.2.0.0/16'), site=site),
            Prefix(family=4, prefix=IPNetwork('10.3.0.0/16'), site=site),
        ])
Exemplo n.º 21
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        Rack.objects.bulk_create([
            Rack(name='Rack 1', site=site),
            Rack(name='Rack 2', site=site),
            Rack(name='Rack 3', site=site),
        ])
Exemplo n.º 22
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        RackGroup.objects.bulk_create([
            RackGroup(name='Rack Group 1', slug='rack-group-1', site=site),
            RackGroup(name='Rack Group 2', slug='rack-group-2', site=site),
            RackGroup(name='Rack Group 3', slug='rack-group-3', site=site),
        ])
Exemplo n.º 23
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        RackGroup.objects.bulk_create([
            RackGroup(name='Rack Group 1', slug='rack-group-1', site=site),
            RackGroup(name='Rack Group 2', slug='rack-group-2', site=site),
            RackGroup(name='Rack Group 3', slug='rack-group-3', site=site),
        ])
Exemplo n.º 24
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        Rack.objects.bulk_create([
            Rack(name='Rack 1', site=site),
            Rack(name='Rack 2', site=site),
            Rack(name='Rack 3', site=site),
        ])
Exemplo n.º 25
0
    def setUp(self):
        user = create_test_user(permissions=['ipam.view_vlangroup'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        VLANGroup.objects.bulk_create([
            VLANGroup(name='VLAN Group 1', slug='vlan-group-1', site=site),
            VLANGroup(name='VLAN Group 2', slug='vlan-group-2', site=site),
            VLANGroup(name='VLAN Group 3', slug='vlan-group-3', site=site),
        ])
Exemplo n.º 26
0
    def setUp(self):
        user = create_test_user(permissions=['dcim.view_rack'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        Rack.objects.bulk_create([
            Rack(name='Rack 1', site=site),
            Rack(name='Rack 2', site=site),
            Rack(name='Rack 3', site=site),
        ])
Exemplo n.º 27
0
    def setUp(self):

        self.client = Client()

        user = User(username='******', email='*****@*****.**')
        user.save()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ObjectChanges
        for i in range(1, 4):
            site.log_change(user=user, request_id=uuid.uuid4(), action=2)
Exemplo n.º 28
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ConfigContexts
        for i in range(1, 4):
            configcontext = ConfigContext(name='Config Context {}'.format(i),
                                          data='{{"foo": {}}}'.format(i))
            configcontext.save()
            configcontext.sites.add(site)
Exemplo n.º 29
0
    def setUp(self):
        user = create_test_user(permissions=['dcim.view_rackgroup'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        RackGroup.objects.bulk_create([
            RackGroup(name='Rack Group 1', slug='rack-group-1', site=site),
            RackGroup(name='Rack Group 2', slug='rack-group-2', site=site),
            RackGroup(name='Rack Group 3', slug='rack-group-3', site=site),
        ])
Exemplo n.º 30
0
    def setUp(self):
        user = create_test_user(permissions=['ipam.view_prefix'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        Prefix.objects.bulk_create([
            Prefix(family=4, prefix=IPNetwork('10.1.0.0/16'), site=site),
            Prefix(family=4, prefix=IPNetwork('10.2.0.0/16'), site=site),
            Prefix(family=4, prefix=IPNetwork('10.3.0.0/16'), site=site),
        ])
Exemplo n.º 31
0
    def setUp(self):
        user = create_test_user(permissions=['extras.view_configcontext'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ConfigContexts
        for i in range(1, 4):
            configcontext = ConfigContext(name='Config Context {}'.format(i),
                                          data='{{"foo": {}}}'.format(i))
            configcontext.save()
            configcontext.sites.add(site)
Exemplo n.º 32
0
    def setUp(self):
        user = create_test_user(permissions=['extras.view_objectchange'])
        self.client = Client()
        self.client.force_login(user)

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ObjectChanges
        for i in range(1, 4):
            oc = site.to_objectchange(action=OBJECTCHANGE_ACTION_UPDATE)
            oc.user = user
            oc.request_id = uuid.uuid4()
            oc.save()
Exemplo n.º 33
0
    def test_cf_data(self):
        """
        Check that custom field data is present on the instance immediately after being set and after being fetched
        from the database.
        """
        site = Site(name='Test Site', slug='test-site')

        # Check custom field data on new instance
        site.cf['foo'] = 'abc'
        self.assertEqual(site.cf['foo'], 'abc')

        # Check custom field data from database
        site.save()
        site = Site.objects.get(name='Test Site')
        self.assertEqual(site.cf['foo'], 'abc')
Exemplo n.º 34
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ConfigContexts
        for i in range(1, 4):
            configcontext = ConfigContext(
                name='Config Context {}'.format(i),
                data='{{"foo": {}}}'.format(i)
            )
            configcontext.save()
            configcontext.sites.add(site)
Exemplo n.º 35
0
    def test_view_object_with_custom_link(self):
        customlink = CustomLink(
            content_type=ContentType.objects.get_for_model(Site),
            name='Test',
            link_text='FOO {{ obj.name }} BAR',
            link_url='http://example.com/?site={{ obj.slug }}',
            new_window=False)
        customlink.save()

        site = Site(name='Test Site', slug='test-site')
        site.save()

        response = self.client.get(site.get_absolute_url(), follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertIn(f'FOO {site.name} BAR', str(response.content))
Exemplo n.º 36
0
    def setUp(self):

        self.client = Client()

        user = User(username='******', email='*****@*****.**')
        user.save()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        # Create three ObjectChanges
        for i in range(1, 4):
            site.log_change(
                user=user,
                request_id=uuid.uuid4(),
                action=2
            )
Exemplo n.º 37
0
    def test_delete_object(self):

        site = Site(name='Test Site 1', slug='test-site-1')
        site.save()

        self.assertEqual(ObjectChange.objects.count(), 0)

        url = reverse('dcim-api:site-detail', kwargs={'pk': site.pk})
        response = self.client.delete(url, **self.header)

        self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
        self.assertEqual(Site.objects.count(), 0)

        oc = ObjectChange.objects.first()
        self.assertEqual(oc.changed_object, None)
        self.assertEqual(oc.object_repr, site.name)
        self.assertEqual(oc.action, OBJECTCHANGE_ACTION_DELETE)
Exemplo n.º 38
0
    def setUp(self):

        self.client = Client()

        User = get_user_model()
        user = User(username='******', email='*****@*****.**')
        user.save()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        rack = Rack(name='Rack 1', site=site)
        rack.save()

        RackReservation.objects.bulk_create([
            RackReservation(rack=rack, user=user, units=[1, 2, 3], description='Reservation 1'),
            RackReservation(rack=rack, user=user, units=[4, 5, 6], description='Reservation 2'),
            RackReservation(rack=rack, user=user, units=[7, 8, 9], description='Reservation 3'),
        ])
Exemplo n.º 39
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1', manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        Device.objects.bulk_create([
            Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole),
            Device(name='Device 2', site=site, device_type=devicetype, device_role=devicerole),
            Device(name='Device 3', site=site, device_type=devicetype, device_role=devicerole),
        ])
Exemplo n.º 40
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1', manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device1 = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
        device1.save()
        device2 = Device(name='Device 2', site=site, device_type=devicetype, device_role=devicerole)
        device2.save()

        iface1 = Interface(device=device1, name='Interface 1', form_factor=IFACE_FF_1GE_FIXED)
        iface1.save()
        iface2 = Interface(device=device1, name='Interface 2', form_factor=IFACE_FF_1GE_FIXED)
        iface2.save()
        iface3 = Interface(device=device1, name='Interface 3', form_factor=IFACE_FF_1GE_FIXED)
        iface3.save()
        iface4 = Interface(device=device2, name='Interface 1', form_factor=IFACE_FF_1GE_FIXED)
        iface4.save()
        iface5 = Interface(device=device2, name='Interface 2', form_factor=IFACE_FF_1GE_FIXED)
        iface5.save()
        iface6 = Interface(device=device2, name='Interface 3', form_factor=IFACE_FF_1GE_FIXED)
        iface6.save()

        Cable(termination_a=iface1, termination_b=iface4, type=CABLE_TYPE_CAT6).save()
        Cable(termination_a=iface2, termination_b=iface5, type=CABLE_TYPE_CAT6).save()
        Cable(termination_a=iface3, termination_b=iface6, type=CABLE_TYPE_CAT6).save()
Exemplo n.º 41
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(manufacturer=manufacturer, model='Device Type 1')
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
        device.save()

        Service.objects.bulk_create([
            Service(device=device, name='Service 1', protocol=IP_PROTOCOL_TCP, port=101),
            Service(device=device, name='Service 2', protocol=IP_PROTOCOL_TCP, port=102),
            Service(device=device, name='Service 3', protocol=IP_PROTOCOL_TCP, port=103),
        ])
Exemplo n.º 42
0
    def setUp(self):

        self.client = Client()

        site = Site(name='Site 1', slug='site-1')
        site.save()

        manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
        manufacturer.save()

        devicetype = DeviceType(model='Device Type 1', manufacturer=manufacturer)
        devicetype.save()

        devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
        devicerole.save()

        device = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
        device.save()

        InventoryItem.objects.bulk_create([
            InventoryItem(device=device, name='Inventory Item 1'),
            InventoryItem(device=device, name='Inventory Item 2'),
            InventoryItem(device=device, name='Inventory Item 3'),
        ])