def discover(request): has_perm = request.user.get_profile().has_perm if not has_perm(Perm.run_discovery): raise Http404('Forbidden') ip = request.POST.get('ip', '') try: Network.from_ip(ip) except (IndexError, ValueError): raise Http404('No such address.') def data(): yield 'Running discovery for %s\n' % ip for chunk in tasks.discover_single_synchro(ip): yield chunk response = HttpResponse(''.join(data()), content_type='text/plain') response['Cache-Control'] = 'no-cache' return response
def test_check_ip(self): terminator = NetworkTerminator(name='Test Terminator') terminator.save() data_center = DataCenter(name='Test date_center') data_center.save() network = Network(address='192.168.1.0/24', name='Test network', data_center=data_center) network.save() network.terminators = [terminator] network.save() subnetwork = Network(address='192.168.2.0/24', name='Test subnetwork', data_center=data_center) subnetwork.save() subnetwork.terminators = [terminator] subnetwork.save() main_venture = Venture(name='Main Venture') main_venture.save() main_venture.networks = [network, subnetwork] main_venture.save() second_network = Network(address='172.16.0.0/28', name='Test secound_network', data_center=data_center) second_network.save() second_network.terminators = [terminator] second_network.save() child_venture = Venture(name='Child Venture', parent=main_venture) child_venture.save() child_venture.networks = [second_network] child_venture.save() third_network = Network(address='66.6.6.0/29', name='Test third_network', data_center=data_center) third_network.save() third_network.terminators = [terminator] third_network.save() third_subnetwork = Network(address='66.6.7.0/29', name='Test third_subnetwork', data_center=data_center) third_subnetwork.save() third_subnetwork.terminators = [terminator] third_subnetwork.save() venture_role_main = VentureRole(name='Main Venture role', venture=child_venture) venture_role_main.save() venture_role_main.networks = [third_network, third_subnetwork] venture_role_main.save() fourth_network = Network(address='111.11.11.0/27', name='Test fourth_network', data_center=data_center) fourth_network.save() fourth_network.terminators = [terminator] fourth_network.save() venture_role_child = VentureRole(name='Child Venture role', venture=child_venture, parent=venture_role_main) venture_role_child.save() venture_role_child.networks = [fourth_network] venture_role_child.save() self.assertEqual(venture_role_child.check_ip("192.168.1.15"), True) self.assertEqual(venture_role_child.check_ip("192.168.2.15"), True) self.assertEqual(venture_role_child.check_ip("192.168.3.15"), False) self.assertEqual(venture_role_child.check_ip("172.16.0.10"), True) self.assertEqual(venture_role_child.check_ip("172.16.0.22"), False) self.assertEqual(venture_role_child.check_ip("66.6.6.5"), True) self.assertEqual(venture_role_child.check_ip("66.6.7.5"), True) self.assertEqual(venture_role_child.check_ip("66.6.8.10"), False) self.assertEqual(venture_role_child.check_ip("111.11.11.1"), True) self.assertEqual(venture_role_child.check_ip("111.11.11.44"), False)
def setUp(self): self.client = login_as_su() venture = Venture(name=DEVICE['venture'], symbol=DEVICE['ventureSymbol']) venture.save() self.venture = venture venture_role = VentureRole(name=DEVICE['venture_role'], venture=self.venture) venture_role.save() self.venture_role = venture_role self.device = Device.create( sn=DEVICE['sn'], barcode=DEVICE['barcode'], remarks=DEVICE['remarks'], model_name=DEVICE['model_name'], model_type=DeviceType.unknown, venture=self.venture, venture_role=self.venture_role, rack=DEVICE['rack'], position=DEVICE['position'], dc=DATACENTER, ) self.device.name = DEVICE['name'] self.device.save() self.ip = IPAddress(address=DEVICE['ip'], device=self.device) self.ip.save() self.db_ip = IPAddress.objects.get(address=DEVICE['ip']) self.network_terminator = NetworkTerminator(name='simple_terminator') self.network_terminator.save() self.network_datacenter = DataCenter(name=DATACENTER) self.network_datacenter.save() self.network = Network( name=NETWORK['name'], address=NETWORK['address'], data_center=self.network_datacenter, ) self.diskshare_device = Device.create( sn=DISKSHARE['sn'], barcode=DISKSHARE['barcode'], model_name='xxx', model_type=DeviceType.storage, ) self.diskshare_device.name = DISKSHARE['device'] self.diskshare_device.save() self.cm_generic = ComponentModel(name='GenericModel') self.cm_diskshare = ComponentModel(name='DiskShareModel') self.cm_processor = ComponentModel(name='ProcessorModel') self.cm_memory = ComponentModel(name='MemoryModel') self.cm_storage = ComponentModel(name='ComponentModel') self.cm_fibre = ComponentModel(name='FibreChannalMidel') self.cm_ethernet = ComponentModel(name='EthernetMidel') self.cm_software = ComponentModel(name='SoftwareModel') self.cm_splunkusage = ComponentModel(name='SplunkusageModel') self.cm_operatingsystem = ComponentModel(name='OperatingSystemModel') self.generic_component = GenericComponent( device=self.device, model=self.cm_generic, label=COMPONENT['GenericComponent'], sn=GENERIC['sn'], ) self.generic_component.save() self.diskshare = DiskShare( device=self.device, model=self.cm_diskshare, share_id=self.device.id, size=80, wwn=DISKSHARE['wwn'], ) self.diskshare.save() self.disksharemount = DiskShareMount.concurrent_get_or_create( share=self.diskshare, device=self.device, volume=COMPONENT['DiskShareMount'], ) self.processor = Processor( device=self.device, model=self.cm_processor, label=COMPONENT['Processor'], ) self.processor.save() self.memory = Memory( device=self.device, model=self.cm_memory, label=COMPONENT['Memory'], ) self.memory.save() self.storage = Storage( device=self.device, model=self.cm_storage, label=COMPONENT['Storage'], ) self.storage.save() self.fibrechannel = FibreChannel( device=self.device, model=self.cm_fibre, label=COMPONENT['Fibre'], physical_id='01234', ) self.fibrechannel.save() self.ethernet = Ethernet( model=self.cm_ethernet, device=self.device, mac=DEVICE['mac'], ) self.ethernet.save() self.software = Software( device=self.device, model=self.cm_software, label=COMPONENT['Software'], ) self.software.save() self.splunkusage = SplunkUsage( device=self.device, model=self.cm_splunkusage, ) self.splunkusage.save() self.operatingsystem = OperatingSystem( device=self.device, model=self.cm_operatingsystem, label=COMPONENT['OS'], ) self.operatingsystem.save()
def test_check_ip(self): terminator = NetworkTerminator(name='Test Terminator') terminator.save() data_center = DataCenter(name='Test date_center') data_center.save() network = Network(address='192.168.1.0/24',name='Test network', data_center=data_center) network.save() network.terminators = [terminator] network.save() subnetwork = Network(address='192.168.2.0/24',name='Test subnetwork', data_center=data_center) subnetwork.save() subnetwork.terminators = [terminator] subnetwork.save() main_venture = Venture(name='Main Venture') main_venture.save() main_venture.networks = [network, subnetwork] main_venture.save() second_network = Network(address='172.16.0.0/28',name='Test secound_network', data_center=data_center) second_network.save() second_network.terminators = [terminator] second_network.save() child_venture = Venture(name='Child Venture', parent=main_venture) child_venture.save() child_venture.networks = [second_network] child_venture.save() third_network = Network(address='66.6.6.0/29',name='Test third_network', data_center=data_center) third_network.save() third_network.terminators = [terminator] third_network.save() third_subnetwork = Network(address='66.6.7.0/29',name='Test third_subnetwork', data_center=data_center) third_subnetwork.save() third_subnetwork.terminators = [terminator] third_subnetwork.save() venture_role_main = VentureRole(name='Main Venture role', venture=child_venture) venture_role_main.save() venture_role_main.networks = [third_network, third_subnetwork] venture_role_main.save() fourth_network = Network(address='111.11.11.0/27',name='Test fourth_network', data_center=data_center) fourth_network.save() fourth_network.terminators = [terminator] fourth_network.save() venture_role_child = VentureRole(name='Child Venture role', venture=child_venture, parent=venture_role_main) venture_role_child.save() venture_role_child.networks = [fourth_network] venture_role_child.save() self.assertEqual(venture_role_child.check_ip("192.168.1.15"), True) self.assertEqual(venture_role_child.check_ip("192.168.2.15"), True) self.assertEqual(venture_role_child.check_ip("192.168.3.15"), False) self.assertEqual(venture_role_child.check_ip("172.16.0.10"), True) self.assertEqual(venture_role_child.check_ip("172.16.0.22"), False) self.assertEqual(venture_role_child.check_ip("66.6.6.5"), True) self.assertEqual(venture_role_child.check_ip("66.6.7.5"), True) self.assertEqual(venture_role_child.check_ip("66.6.8.10"), False) self.assertEqual(venture_role_child.check_ip("111.11.11.1"), True) self.assertEqual(venture_role_child.check_ip("111.11.11.44"), False)