def test_create_node_by_address(self): node = create_node_by_address(self.EXAMPLE_HOST, False) # no port should be created because there is no ip addresses self.assertEquals(node.get_ports().count(), 0) self.assertEquals( node.names.filter(value=self.EXAMPLE_HOST).count(), 1) self.assertEquals( node.addresses.filter(value=self.EXAMPLE_HOST).count(), 1) node.addresses.all().delete() node.names.all().delete() node.delete() node = create_node_by_address(self.EXAMPLE_HOST, True) self.assertEquals(node.get_ports().count(), 2) self.assertEquals( node.names.filter(value=self.EXAMPLE_HOST).count(), 1) node.addresses.all().delete() node.names.all().delete() node.delete() node = create_node_by_address(self.EXAMPLE_IP[0], False) self.assertEquals(node.get_ports().count(), 1) self.assertEquals(node.names.all().count(), 0) self.assertEquals(node.addresses.all().count(), 0) node.delete() node = create_node_by_address(self.EXAMPLE_IP[0], True) self.assertEquals(node.get_ports().count(), 1) self.assertEquals(node.names.all().count(), 1) self.assertEquals(node.addresses.all().count(), 1)
def test_find_node_by_address(self): node1 = create_node_by_address(self.EXAMPLE_IP[0], False) find_node1 = find_node_by_address(self.EXAMPLE_IP[0]) self.assertEqual(node1, find_node1) node1.delete() node2 = create_node_by_address(self.EXAMPLE_IP[0], True) find_node2 = find_node_by_address(self.EXAMPLE_IP[0]) self.assertEqual(node2, find_node2) find_node2 = find_node_by_address(self.EXAMPLE_REVERSE) self.assertEqual(node2, find_node2) node2.delete() node3 = create_node_by_address(self.EXAMPLE_HOST, False) find_node3 = find_node_by_address(self.EXAMPLE_HOST) self.assertEqual(node3, find_node3) node3.delete() node4 = create_node_by_address(self.EXAMPLE_HOST, True) find_node4 = find_node_by_address(self.EXAMPLE_HOST) self.assertEqual(node4, find_node4) find_node4 = find_node_by_address(self.EXAMPLE_IP[0]) self.assertEqual(node4, find_node4) find_node4 = find_node_by_address(self.EXAMPLE_IP[1]) self.assertEqual(node4, find_node4) node4.delete()
def test_create_node_by_address(self): node = create_node_by_address(self.EXAMPLE_HOST, False) # no port should be created because there is no ip addresses self.assertEquals(node.get_ports().count(), 0) self.assertEquals(node.names.filter( value=self.EXAMPLE_HOST).count(), 1) self.assertEquals(node.addresses.filter( value=self.EXAMPLE_HOST).count(), 1) node.addresses.all().delete() node.names.all().delete() node.delete() node = create_node_by_address(self.EXAMPLE_HOST, True) self.assertEquals(node.get_ports().count(), 2) self.assertEquals(node.names.filter( value=self.EXAMPLE_HOST).count(), 1) node.addresses.all().delete() node.names.all().delete() node.delete() node = create_node_by_address(self.EXAMPLE_IP[0], False) self.assertEquals(node.get_ports().count(), 1) self.assertEquals(node.names.all().count(), 0) self.assertEquals(node.addresses.all().count(), 0) node.delete() node = create_node_by_address(self.EXAMPLE_IP[0], True) self.assertEquals(node.get_ports().count(), 1) self.assertEquals(node.names.all().count(), 1) self.assertEquals(node.addresses.all().count(), 1)
def test_find_port(self): hostname = 'testhostname' ifname = 'testname' ifaddress = 'testinterface' node = create_node_by_address(hostname) port1 = create_port(node, self.EXAMPLE_IP[0]) port1_find = find_port(self.EXAMPLE_IP[0]) self.assertEqual(port1, port1_find) port2 = create_port(node, ifaddress='testinterface') port2_find = find_port(hostname=hostname, ifaddress=ifaddress) self.assertEqual(port2, port2_find) port3 = create_port(node, self.EXAMPLE_IP[1], ifname=ifname) port3_find = find_port(self.EXAMPLE_IP[1]) self.assertEqual(port3, port3_find) port3_find = find_port(hostname=hostname, ifname=ifname) self.assertEqual(port3, port3_find) self.assertIsNone(find_port(address='www.exmaple.com')) self.assertIsNone(find_port(hostname='tmp', ifaddress='address')) self.assertIsNone(find_port(hostname='tmp', ifname='name')) self.assertRaises(ValueError, find_port, None) self.assertRaises(ValueError, find_port, ifaddress='address') self.assertRaises(ValueError, find_port, ifname='address')
def interface_to_port(interface, create_new=True): """ Creates a UNIS port from L{psapi.protocol.Interface} object. if the a Port already exists for the Interface, it just going to return the port instance without creating new Port object. see L{port_to_interface}. @param interface: L{psapi.protocol.Interface} object @returns: L{topology.models.Port} """ if not isinstance(interface, Interface): raise ValueError("interface must be of type psapi.protocol.Interface, " "not %s" % type(interface)) ipaddress = interface.ipAddress ifaddress = interface.ifAddress hostname = interface.hostName ifname = interface.ifName # TODO read URN from interface (need updating psapi) if hostname is None: hostname = interface.ifHostName port = find_port(ipaddress, hostname, ifaddress, ifname) if not port and create_new: try: node = Node.objects.get(names__value=hostname) except MultipleObjectsReturned: raise ValueError("Hostname is not unique") except ObjectDoesNotExist: node = find_node_by_address(hostname) if not node: node = create_node_by_address(hostname) port = create_port(node, ifaddress=ifaddress, ifname=ifname) return port
def test_create_port(self): hostname = 'testhostname' ifname = 'testname' ifaddress = 'testinterface' node = create_node_by_address(hostname) port1 = create_port(node, self.EXAMPLE_IP[0]) addresses1 = port1.addresses.filter(value=self.EXAMPLE_IP[0]) self.assertEqual(addresses1.count(), 1) self.assertEqual(port1.parent, node) port2 = create_port(node, ifaddress=ifaddress) addresses2 = port2.addresses.filter(value=ifaddress) self.assertEqual(addresses2.count(), 1) self.assertEqual(port2.parent, node) port3 = create_port(node, self.EXAMPLE_IP[1], ifname=ifname) addresses3 = port3.addresses.filter(value=self.EXAMPLE_IP[1]) self.assertEqual(addresses3.count(), 1) names3 = port3.names.filter(value=ifname) self.assertEqual(names3.count(), 1) self.assertEqual(port3.parent, node)