Example #1
0
    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)
Example #2
0
    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()
Example #3
0
 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()
Example #4
0
 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)
Example #5
0
    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')
Example #6
0
 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')
Example #7
0
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
Example #8
0
    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)
Example #9
0
 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)