def setUpTestData(cls): SIDE_A = CircuitTerminationSideChoices.SIDE_A SIDE_Z = CircuitTerminationSideChoices.SIDE_Z provider = Provider.objects.create(name='Provider 1', slug='provider-1') circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) provider_networks = ( ProviderNetwork(provider=provider, name='Provider Network 1'), ProviderNetwork(provider=provider, name='Provider Network 2'), ) ProviderNetwork.objects.bulk_create(provider_networks) circuits = ( Circuit(cid='Circuit 1', provider=provider, type=circuit_type), Circuit(cid='Circuit 2', provider=provider, type=circuit_type), Circuit(cid='Circuit 3', provider=provider, type=circuit_type), ) Circuit.objects.bulk_create(circuits) circuit_terminations = ( CircuitTermination(circuit=circuits[0], term_side=SIDE_A, site=sites[0]), CircuitTermination(circuit=circuits[0], term_side=SIDE_Z, provider_network=provider_networks[0]), CircuitTermination(circuit=circuits[1], term_side=SIDE_A, site=sites[1]), CircuitTermination(circuit=circuits[1], term_side=SIDE_Z, provider_network=provider_networks[1]), ) CircuitTermination.objects.bulk_create(circuit_terminations) cls.create_data = [ { 'circuit': circuits[2].pk, 'term_side': SIDE_A, 'site': sites[0].pk, 'port_speed': 200000, }, { 'circuit': circuits[2].pk, 'term_side': SIDE_Z, 'provider_network': provider_networks[0].pk, 'port_speed': 200000, }, ] cls.bulk_update_data = {'port_speed': 123456}
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'])
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)
def setUpTestData(cls): sites = ( Site(name='Test Site 1', slug='test-site-1'), Site(name='Test Site 2', slug='test-site-2'), Site(name='Test Site 3', slug='test-site-3'), ) Site.objects.bulk_create(sites) circuit_types = ( CircuitType(name='Test Circuit Type 1', slug='test-circuit-type-1'), ) CircuitType.objects.bulk_create(circuit_types) providers = ( Provider(name='Provider 1', slug='provider-1'), ) Provider.objects.bulk_create(providers) circuits = ( Circuit(provider=providers[0], type=circuit_types[0], cid='Test Circuit 1'), Circuit(provider=providers[0], type=circuit_types[0], cid='Test Circuit 2'), Circuit(provider=providers[0], type=circuit_types[0], cid='Test Circuit 3'), ) Circuit.objects.bulk_create(circuits) circuit_terminations = (( CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A', port_speed=1000, upstream_speed=1000, xconnect_id='ABC'), CircuitTermination(circuit=circuits[0], site=sites[1], term_side='Z', port_speed=1000, upstream_speed=1000, xconnect_id='DEF'), CircuitTermination(circuit=circuits[1], site=sites[1], term_side='A', port_speed=2000, upstream_speed=2000, xconnect_id='GHI'), CircuitTermination(circuit=circuits[1], site=sites[2], term_side='Z', port_speed=2000, upstream_speed=2000, xconnect_id='JKL'), CircuitTermination(circuit=circuits[2], site=sites[2], term_side='A', port_speed=3000, upstream_speed=3000, xconnect_id='MNO'), CircuitTermination(circuit=circuits[2], site=sites[0], term_side='Z', port_speed=3000, upstream_speed=3000, xconnect_id='PQR'), )) CircuitTermination.objects.bulk_create(circuit_terminations)
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'), ])
def setUpTestData(cls): regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), Region(name='Test Region 3', slug='test-region-3'), ) # Can't use bulk_create for models with MPTT fields for r in regions: r.save() sites = ( Site(name='Test Site 1', slug='test-site-1', region=regions[0]), Site(name='Test Site 2', slug='test-site-2', region=regions[1]), Site(name='Test Site 3', slug='test-site-3', region=regions[2]), ) Site.objects.bulk_create(sites) vlan_groups = ( VLANGroup(name='VLAN Group 1', slug='vlan-group-1', site=sites[0]), VLANGroup(name='VLAN Group 2', slug='vlan-group-2', site=sites[1]), VLANGroup(name='VLAN Group 3', slug='vlan-group-3', site=sites[2]), VLANGroup(name='VLAN Group 4', slug='vlan-group-4', site=None), ) VLANGroup.objects.bulk_create(vlan_groups)
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'])
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), ])
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'), ])
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'), ])
def setUp(self): Site.objects.bulk_create([ Site(name='Site A', slug='site-a'), Site(name='Site B', slug='site-b'), Site(name='Site C', slug='site-c'), ])
def test_bulk_delete_objects(self): sites = ( Site(name='Site 1', slug='site-1', status=SiteStatusChoices.STATUS_ACTIVE), Site(name='Site 2', slug='site-2', status=SiteStatusChoices.STATUS_ACTIVE), Site(name='Site 3', slug='site-3', status=SiteStatusChoices.STATUS_ACTIVE), ) Site.objects.bulk_create(sites) form_data = { 'pk': [site.pk for site in sites], 'confirm': True, '_confirm': True, } request = { 'path': self._get_url('bulk_delete'), 'data': post_data(form_data), } self.add_permissions('dcim.delete_site') response = self.client.post(**request) self.assertHttpStatus(response, 302) objectchange = ObjectChange.objects.get( changed_object_type=ContentType.objects.get_for_model(Site), changed_object_id=sites[0].pk ) self.assertEqual(objectchange.changed_object_type, ContentType.objects.get_for_model(Site)) self.assertEqual(objectchange.changed_object_id, sites[0].pk) self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_DELETE) self.assertEqual(objectchange.prechange_data['name'], sites[0].name) self.assertEqual(objectchange.prechange_data['slug'], sites[0].slug) self.assertEqual(objectchange.postchange_data, None)
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'), ])
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'])
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), ])
def setUpTestData(cls): regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), Region(name='Test Region 3', slug='test-region-3'), ) # Can't use bulk_create for models with MPTT fields for r in regions: r.save() sites = ( Site(name='Test Site 1', slug='test-site-1', region=regions[0]), Site(name='Test Site 2', slug='test-site-2', region=regions[1]), Site(name='Test Site 3', slug='test-site-3', region=regions[2]), ) Site.objects.bulk_create(sites) tenant_groups = ( TenantGroup(name='Tenant group 1', slug='tenant-group-1'), TenantGroup(name='Tenant group 2', slug='tenant-group-2'), TenantGroup(name='Tenant group 3', slug='tenant-group-3'), ) TenantGroup.objects.bulk_create(tenant_groups) tenants = ( Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), ) Tenant.objects.bulk_create(tenants) circuit_types = ( CircuitType(name='Test Circuit Type 1', slug='test-circuit-type-1'), CircuitType(name='Test Circuit Type 2', slug='test-circuit-type-2'), ) CircuitType.objects.bulk_create(circuit_types) providers = ( Provider(name='Provider 1', slug='provider-1'), Provider(name='Provider 2', slug='provider-2'), ) Provider.objects.bulk_create(providers) circuits = ( Circuit(provider=providers[0], tenant=tenants[0], type=circuit_types[0], cid='Test Circuit 1', install_date='2020-01-01', commit_rate=1000, status=CircuitStatusChoices.STATUS_ACTIVE), Circuit(provider=providers[0], tenant=tenants[0], type=circuit_types[0], cid='Test Circuit 2', install_date='2020-01-02', commit_rate=2000, status=CircuitStatusChoices.STATUS_ACTIVE), Circuit(provider=providers[0], tenant=tenants[1], type=circuit_types[0], cid='Test Circuit 3', install_date='2020-01-03', commit_rate=3000, status=CircuitStatusChoices.STATUS_PLANNED), Circuit(provider=providers[1], tenant=tenants[1], type=circuit_types[1], cid='Test Circuit 4', install_date='2020-01-04', commit_rate=4000, status=CircuitStatusChoices.STATUS_PLANNED), Circuit(provider=providers[1], tenant=tenants[2], type=circuit_types[1], cid='Test Circuit 5', install_date='2020-01-05', commit_rate=5000, status=CircuitStatusChoices.STATUS_OFFLINE), Circuit(provider=providers[1], tenant=tenants[2], type=circuit_types[1], cid='Test Circuit 6', install_date='2020-01-06', commit_rate=6000, status=CircuitStatusChoices.STATUS_OFFLINE), ) Circuit.objects.bulk_create(circuits) circuit_terminations = (( CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A', port_speed=1000), CircuitTermination(circuit=circuits[1], site=sites[1], term_side='A', port_speed=1000), CircuitTermination(circuit=circuits[2], site=sites[2], term_side='A', port_speed=1000), )) CircuitTermination.objects.bulk_create(circuit_terminations)
def test_enqueue_webhook_bulk_delete(self): sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), Site(name='Site 3', slug='site-3'), ) Site.objects.bulk_create(sites) for site in sites: site.tags.set(*Tag.objects.filter(name__in=['Foo', 'Bar'])) # Delete three objects via the REST API data = [ {'id': site.pk} for site in sites ] url = reverse('dcim-api:site-list') self.add_permissions('dcim.delete_site') response = self.client.delete(url, data, format='json', **self.header) self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) # Verify that a job was queued for the object update webhook self.assertEqual(self.queue.count, 3) for i, job in enumerate(self.queue.jobs): self.assertEqual(job.kwargs['webhook'], Webhook.objects.get(type_delete=True)) self.assertEqual(job.kwargs['event'], ObjectChangeActionChoices.ACTION_DELETE) self.assertEqual(job.kwargs['model_name'], 'site') self.assertEqual(job.kwargs['data']['id'], sites[i].pk) self.assertEqual(job.kwargs['snapshots']['prechange']['name'], sites[i].name) self.assertEqual(job.kwargs['snapshots']['prechange']['tags'], ['Bar', 'Foo'])
def test_bulk_update_objects(self): sites = ( Site(name='Site 1', slug='site-1', status=SiteStatusChoices.STATUS_ACTIVE), Site(name='Site 2', slug='site-2', status=SiteStatusChoices.STATUS_ACTIVE), Site(name='Site 3', slug='site-3', status=SiteStatusChoices.STATUS_ACTIVE), ) Site.objects.bulk_create(sites) form_data = { 'pk': [site.pk for site in sites], '_apply': True, 'status': SiteStatusChoices.STATUS_PLANNED, 'description': 'New description', } request = { 'path': self._get_url('bulk_edit'), 'data': post_data(form_data), } self.add_permissions('dcim.view_site', 'dcim.change_site') response = self.client.post(**request) self.assertHttpStatus(response, 302) objectchange = ObjectChange.objects.get( changed_object_type=ContentType.objects.get_for_model(Site), changed_object_id=sites[0].pk ) self.assertEqual(objectchange.changed_object, sites[0]) self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_UPDATE) self.assertEqual(objectchange.prechange_data['status'], SiteStatusChoices.STATUS_ACTIVE) self.assertEqual(objectchange.prechange_data['description'], '') self.assertEqual(objectchange.postchange_data['status'], form_data['status']) self.assertEqual(objectchange.postchange_data['description'], form_data['description'])
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()
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'), ])
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'), ])
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 setUpTestData(cls): sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) VLANGroup.objects.bulk_create([ VLANGroup(name='VLAN Group 1', slug='vlan-group-1', scope=sites[0]), VLANGroup(name='VLAN Group 2', slug='vlan-group-2', scope=sites[0]), VLANGroup(name='VLAN Group 3', slug='vlan-group-3', scope=sites[0]), ]) cls.form_data = { 'name': 'VLAN Group X', 'slug': 'vlan-group-x', 'description': 'A new VLAN group', } cls.csv_data = ( f"name,slug,scope_type,scope_id,description", f"VLAN Group 4,vlan-group-4,,,Fourth VLAN group", f"VLAN Group 5,vlan-group-5,dcim.site,{sites[0].pk},Fifth VLAN group", f"VLAN Group 6,vlan-group-6,dcim.site,{sites[1].pk},Sixth VLAN group", ) cls.bulk_edit_data = { 'description': 'New description', }
def setUpTestData(cls): sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) clustergroups = ( ClusterGroup(name='Cluster Group 1', slug='cluster-group-1'), ClusterGroup(name='Cluster Group 2', slug='cluster-group-2'), ) ClusterGroup.objects.bulk_create(clustergroups) clustertypes = ( ClusterType(name='Cluster Type 1', slug='cluster-type-1'), ClusterType(name='Cluster Type 2', slug='cluster-type-2'), ) ClusterType.objects.bulk_create(clustertypes) Cluster.objects.bulk_create([ Cluster(name='Cluster 1', group=clustergroups[0], type=clustertypes[0], site=sites[0]), Cluster(name='Cluster 2', group=clustergroups[0], type=clustertypes[0], site=sites[0]), Cluster(name='Cluster 3', group=clustergroups[0], type=clustertypes[0], site=sites[0]), ]) cls.form_data = { 'name': 'Cluster X', 'group': clustergroups[1].pk, 'type': clustertypes[1].pk, 'tenant': None, 'site': sites[1].pk, 'comments': 'Some comments', 'tags': 'Alpha,Bravo,Charlie', } cls.csv_data = ( "name,type", "Cluster 4,Cluster Type 1", "Cluster 5,Cluster Type 1", "Cluster 6,Cluster Type 1", ) cls.bulk_edit_data = { 'group': clustergroups[1].pk, 'type': clustertypes[1].pk, 'tenant': None, 'site': sites[1].pk, 'comments': 'New comments', }
def setUpTestData(cls): sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) racks = ( Rack(name='Rack 1', site=sites[0]), Rack(name='Rack 2', site=sites[1]), ) Rack.objects.bulk_create(racks) users = ( User(username='******'), User(username='******'), User(username='******'), ) User.objects.bulk_create(users) journal_entries = ( JournalEntry( assigned_object=sites[0], created_by=users[0], kind=JournalEntryKindChoices.KIND_INFO, comments='New journal entry' ), JournalEntry( assigned_object=sites[0], created_by=users[1], kind=JournalEntryKindChoices.KIND_SUCCESS, comments='New journal entry' ), JournalEntry( assigned_object=sites[1], created_by=users[2], kind=JournalEntryKindChoices.KIND_WARNING, comments='New journal entry' ), JournalEntry( assigned_object=racks[0], created_by=users[0], kind=JournalEntryKindChoices.KIND_INFO, comments='New journal entry' ), JournalEntry( assigned_object=racks[0], created_by=users[1], kind=JournalEntryKindChoices.KIND_SUCCESS, comments='New journal entry' ), JournalEntry( assigned_object=racks[1], created_by=users[2], kind=JournalEntryKindChoices.KIND_WARNING, comments='New journal entry' ), ) JournalEntry.objects.bulk_create(journal_entries)
def test_dotted_path(self): """ Test custom validator configuration using a dotted path (string) reference to a CustomValidator class. """ Site(name='foo', slug='foo').clean() with self.assertRaises(ValidationError): Site(name='bar', slug='bar').clean()
def test_plain_data(self): """ Test custom validator configuration using plain data (as opposed to a CustomValidator class) """ with self.assertRaises(ValidationError): Site(name='abcd', slug='abcd').clean() Site(name='abcde', slug='abcde').clean()
def setUpTestData(cls): regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), Region(name='Test Region 3', slug='test-region-3'), ) # Can't use bulk_create for models with MPTT fields for r in regions: r.save() sites = ( Site(name='Test Site 1', slug='test-site-1'), Site(name='Test Site 2', slug='test-site-2'), Site(name='Test Site 3', slug='test-site-3'), ) Site.objects.bulk_create(sites) device_roles = ( DeviceRole(name='Device Role 1', slug='device-role-1'), DeviceRole(name='Device Role 2', slug='device-role-2'), DeviceRole(name='Device Role 3', slug='device-role-3'), ) DeviceRole.objects.bulk_create(device_roles) platforms = ( Platform(name='Platform 1', slug='platform-1'), Platform(name='Platform 2', slug='platform-2'), Platform(name='Platform 3', slug='platform-3'), ) Platform.objects.bulk_create(platforms) tenant_groups = ( TenantGroup(name='Tenant Group 1', slug='tenant-group-1'), TenantGroup(name='Tenant Group 2', slug='tenant-group-2'), TenantGroup(name='Tenant Group 3', slug='tenant-group-3'), ) TenantGroup.objects.bulk_create(tenant_groups) tenants = ( Tenant(name='Tenant 1', slug='tenant-1'), Tenant(name='Tenant 2', slug='tenant-2'), Tenant(name='Tenant 3', slug='tenant-3'), ) Tenant.objects.bulk_create(tenants) for i in range(0, 3): is_active = bool(i % 2) c = ConfigContext.objects.create( name='Config Context {}'.format(i + 1), is_active=is_active, data='{"foo": 123}') c.regions.set([regions[i]]) c.sites.set([sites[i]]) c.roles.set([device_roles[i]]) c.platforms.set([platforms[i]]) c.tenant_groups.set([tenant_groups[i]]) c.tenants.set([tenants[i]])
def setUpTestData(cls): sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) vrfs = ( VRF(name='VRF 1', rd='65000:1'), VRF(name='VRF 2', rd='65000:2'), ) VRF.objects.bulk_create(vrfs) roles = ( Role(name='Role 1', slug='role-1'), Role(name='Role 2', slug='role-2'), ) Role.objects.bulk_create(roles) Prefix.objects.bulk_create([ Prefix(prefix=IPNetwork('10.1.0.0/16'), vrf=vrfs[0], site=sites[0], role=roles[0]), Prefix(prefix=IPNetwork('10.2.0.0/16'), vrf=vrfs[0], site=sites[0], role=roles[0]), Prefix(prefix=IPNetwork('10.3.0.0/16'), vrf=vrfs[0], site=sites[0], role=roles[0]), ]) tags = create_tags('Alpha', 'Bravo', 'Charlie') cls.form_data = { 'prefix': IPNetwork('192.0.2.0/24'), 'site': sites[1].pk, 'vrf': vrfs[1].pk, 'tenant': None, 'vlan': None, 'status': PrefixStatusChoices.STATUS_RESERVED, 'role': roles[1].pk, 'is_pool': True, 'description': 'A new prefix', 'tags': [t.pk for t in tags], } cls.csv_data = ( "vrf,prefix,status", "VRF 1,10.4.0.0/16,active", "VRF 1,10.5.0.0/16,active", "VRF 1,10.6.0.0/16,active", ) cls.bulk_edit_data = { 'site': sites[1].pk, 'vrf': vrfs[1].pk, 'tenant': None, 'status': PrefixStatusChoices.STATUS_RESERVED, 'role': roles[1].pk, 'is_pool': False, 'description': 'New description', }
def setUpTestData(cls): regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), Region(name='Test Region 3', slug='test-region-3'), ) # Can't use bulk_create for models with MPTT fields for r in regions: r.save() sites = ( Site(name='Test Site 1', slug='test-site-1', region=regions[0]), Site(name='Test Site 2', slug='test-site-2', region=regions[1]), Site(name='Test Site 3', slug='test-site-3', region=regions[2]), ) Site.objects.bulk_create(sites) roles = ( Role(name='Role 1', slug='role-1'), Role(name='Role 2', slug='role-2'), Role(name='Role 3', slug='role-3'), ) Role.objects.bulk_create(roles) groups = ( VLANGroup(name='VLAN Group 1', slug='vlan-group-1', site=sites[0]), VLANGroup(name='VLAN Group 2', slug='vlan-group-2', site=sites[1]), VLANGroup(name='VLAN Group 3', slug='vlan-group-3', site=None), ) VLANGroup.objects.bulk_create(groups) tenant_groups = ( TenantGroup(name='Tenant group 1', slug='tenant-group-1'), TenantGroup(name='Tenant group 2', slug='tenant-group-2'), TenantGroup(name='Tenant group 3', slug='tenant-group-3'), ) for tenantgroup in tenant_groups: tenantgroup.save() tenants = ( Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), ) Tenant.objects.bulk_create(tenants) vlans = ( VLAN(vid=101, name='VLAN 101', site=sites[0], group=groups[0], role=roles[0], tenant=tenants[0], status=VLANStatusChoices.STATUS_ACTIVE), VLAN(vid=102, name='VLAN 102', site=sites[0], group=groups[0], role=roles[0], tenant=tenants[0], status=VLANStatusChoices.STATUS_ACTIVE), VLAN(vid=201, name='VLAN 201', site=sites[1], group=groups[1], role=roles[1], tenant=tenants[1], status=VLANStatusChoices.STATUS_DEPRECATED), VLAN(vid=202, name='VLAN 202', site=sites[1], group=groups[1], role=roles[1], tenant=tenants[1], status=VLANStatusChoices.STATUS_DEPRECATED), VLAN(vid=301, name='VLAN 301', site=sites[2], group=groups[2], role=roles[2], tenant=tenants[2], status=VLANStatusChoices.STATUS_RESERVED), VLAN(vid=302, name='VLAN 302', site=sites[2], group=groups[2], role=roles[2], tenant=tenants[2], status=VLANStatusChoices.STATUS_RESERVED), ) VLAN.objects.bulk_create(vlans)
def setUpTestData(cls): SIDE_A = CircuitTerminationSideChoices.SIDE_A SIDE_Z = CircuitTerminationSideChoices.SIDE_Z sites = ( Site(name='Site 1', slug='site-1'), Site(name='Site 2', slug='site-2'), ) Site.objects.bulk_create(sites) provider = Provider.objects.create(name='Provider 1', slug='provider-1') circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') circuits = ( Circuit(cid='Circuit 1', provider=provider, type=circuit_type), Circuit(cid='Circuit 2', provider=provider, type=circuit_type), Circuit(cid='Circuit 3', provider=provider, type=circuit_type), ) Circuit.objects.bulk_create(circuits) circuit_terminations = ( CircuitTermination(circuit=circuits[0], site=sites[0], port_speed=100000, term_side=SIDE_A), CircuitTermination(circuit=circuits[0], site=sites[1], port_speed=100000, term_side=SIDE_Z), CircuitTermination(circuit=circuits[1], site=sites[0], port_speed=100000, term_side=SIDE_A), CircuitTermination(circuit=circuits[1], site=sites[1], port_speed=100000, term_side=SIDE_Z), ) CircuitTermination.objects.bulk_create(circuit_terminations) cls.create_data = [ { 'circuit': circuits[2].pk, 'term_side': SIDE_A, 'site': sites[1].pk, 'port_speed': 200000, }, { 'circuit': circuits[2].pk, 'term_side': SIDE_Z, 'site': sites[1].pk, 'port_speed': 200000, }, ]
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), ])
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), ])
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), ])
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), ])
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)
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 )
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'), ])
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), ])
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()
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), ])
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'), ])