コード例 #1
0
 def test_validate_network_name(self):
     with self.assertRaises(forms.ValidationError):
         _validate_network_name('wroom', 0)
     dc = DataCenter(name='dc')
     dc.save()
     Network(name='wroom', address='127.0.0.1/24', data_center=dc).save()
     _validate_network_name('wroom', 0)
コード例 #2
0
    def test_network_config_entry(self):
        dc = DataCenter(name='dc1')
        dc.save()
        net = Network(
            name='net',
            address='127.0.0.0/24',
            data_center=dc,
            dhcp_config='ziew',
        )
        net.save()
        entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
        entry.save()
        config = generate_dhcp_config(dc=dc, with_networks=True)
        # remove first line with the date and last line
        config = '\n'.join(config.splitlines()[1:-1])
        self.assertEqual(
            config, """\
shared-network "net" {
    subnet 127.0.0.0 netmask 255.255.255.0 {
ziew
    }
}

host 127.0.0.1 { fixed-address 127.0.0.1; hardware ethernet DE:AD:BE:EF:CA:FE; }"""
        )
コード例 #3
0
ファイル: test_deployment.py プロジェクト: smagowr/ralph
 def test_validate_network_name(self):
     with self.assertRaises(forms.ValidationError):
         _validate_network_name('wroom', 0)
     dc = DataCenter(name='dc')
     dc.save()
     Network(name='wroom', address='127.0.0.1/24', data_center=dc).save()
     _validate_network_name('wroom', 0)
コード例 #4
0
    def test_network_config_entry(self):
        dc = DataCenter(name='dc1')
        dc.save()
        net = Network(
            name='net',
            address='127.0.0.0/24',
            data_center=dc,
            dhcp_config='ziew',
        )
        net.save()
        entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
        entry.save()
        config = generate_dhcp_config(dc=dc, with_networks=True)
        # remove first line with the date and last line
        config = '\n'.join(config.splitlines()[1:-1])
        self.assertEqual(
            config,
            """\
shared-network "net" {
    subnet 127.0.0.0 netmask 255.255.255.0 {
ziew
    }
}

host 127.0.0.1 { fixed-address 127.0.0.1; hardware ethernet DE:AD:BE:EF:CA:FE; }"""
        )
コード例 #5
0
ファイル: test_dhcp_conf.py プロジェクト: damjanek/ralph
 def test_datacenter_entry(self):
     dc = DataCenter(name="dc1")
     dc.save()
     net = Network(name="net", address="127.0.0.0/24", data_center=dc)
     net.save()
     entry = DHCPEntry(ip="127.0.0.1", mac="deadbeefcafe")
     entry.save()
     config = generate_dhcp_config(dc=dc)
     # remove first line with the date and last line
     config = "\n".join(config.splitlines()[1:-1])
     self.assertEqual(config, "host 127.0.0.1 { fixed-address 127.0.0.1; " "hardware ethernet DE:AD:BE:EF:CA:FE; }")
コード例 #6
0
ファイル: test_deployment.py プロジェクト: smagowr/ralph
 def test_validate_ip_address(self):
     dc = DataCenter(name='dc')
     dc.save()
     net = Network(name='wroom', address='127.0.0.1/24', data_center=dc)
     net.save()
     _validate_ip_address('127.0.0.1', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.0.0.1/24', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.1.0.1', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.0.0.1', net, ['127.0.0.1'], 0)
コード例 #7
0
 def test_datacenter_entry(self):
     dc = DataCenter(name='dc1')
     dc.save()
     net = Network(name='net', address='127.0.0.0/24', data_center=dc)
     net.save()
     entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
     entry.save()
     config = generate_dhcp_config(dc=dc)
     # remove first line with the date and last line
     config = '\n'.join(config.splitlines()[1:-1])
     self.assertEqual(
         config, 'host 127.0.0.1 { fixed-address 127.0.0.1; '
         'hardware ethernet DE:AD:BE:EF:CA:FE; }')
コード例 #8
0
 def test_datacenter_entry(self):
     dc = DataCenter(name='dc1')
     dc.save()
     net = Network(name='net', address='127.0.0.0/24', data_center=dc)
     net.save()
     entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
     entry.save()
     config = generate_dhcp_config(dc=dc)
     # remove first line with the date and last line
     config = '\n'.join(config.splitlines()[1:-1])
     self.assertEqual(
         config,
         'host 127.0.0.1 { fixed-address 127.0.0.1; '
         'hardware ethernet DE:AD:BE:EF:CA:FE; }'
     )
コード例 #9
0
 def test_validate_ip_address(self):
     dc = DataCenter(name='dc')
     dc.save()
     net = Network(
         name='wroom',
         address='127.0.0.1/24',
         data_center=dc
     )
     net.save()
     _validate_ip_address('127.0.0.1', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.0.0.1/24', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.1.0.1', net, [], 0)
     with self.assertRaises(forms.ValidationError):
         _validate_ip_address('127.0.0.1', net, ['127.0.0.1'], 0)
コード例 #10
0
    def setUp(self):
        self.dc = DataCenter(name="test_dc")
        self.dc.save()
        self.net1 = Network(
            name="test1",
            data_center=self.dc,
            address="192.168.0.1/16",
        )
        self.net1.save()
        self.net2 = Network(
            name="test2",
            data_center=self.dc,
            address="192.168.0.1/17",
        )
        self.net2.save()
        self.net3 = Network(
            name="test3",
            data_center=self.dc,
            address="192.168.128.1/17",
            reserved=5,
            reserved_top_margin=5,
        )
        self.net3.save()
        self.net4 = Network(
            name="test4",
            data_center=self.dc,
            address="192.168.133.1/24",
        )
        self.net4.save()
        self.net5 = Network(
            name="test5",
            data_center=self.dc,
            address="192.169.133.1/24",
        )
        self.net5.save()

        self.ip1 = IPAddress(address="192.168.128.10")
        self.ip1.save()
        self.ip2 = IPAddress(address="192.168.133.10")
        self.ip2.save()
        self.ip3 = IPAddress(address="192.168.128.11")
        self.ip3.save()
コード例 #11
0
 def test_other_datacenter_entry(self):
     dc = DataCenter(name='dc1')
     dc.save()
     dc2 = DataCenter(name='dc2')
     dc2.save()
     net = Network(name='net', address='127.0.0.0/24', data_center=dc)
     net.save()
     entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
     entry.save()
     config = generate_dhcp_config(dc=dc2)
     # remove first line with the date and last line
     config = '\n'.join(config.splitlines()[1:-1])
     self.assertEqual(
         config,
         '',
     )
コード例 #12
0
ファイル: test_dhcp_conf.py プロジェクト: damjanek/ralph
 def test_other_datacenter_entry(self):
     dc = DataCenter(name="dc1")
     dc.save()
     dc2 = DataCenter(name="dc2")
     dc2.save()
     net = Network(name="net", address="127.0.0.0/24", data_center=dc)
     net.save()
     entry = DHCPEntry(ip="127.0.0.1", mac="deadbeefcafe")
     entry.save()
     config = generate_dhcp_config(dc=dc2)
     # remove first line with the date and last line
     config = "\n".join(config.splitlines()[1:-1])
     self.assertEqual(config, "")
コード例 #13
0
ファイル: test_models_network.py プロジェクト: 4i60r/ralph
    def setUp(self):
        self.dc = DataCenter(name="test_dc")
        self.dc.save()
        self.net1 = Network(
            name="test1",
            data_center=self.dc,
            address="192.168.0.1/16",
        )
        self.net1.save()
        self.net2 = Network(
            name="test2",
            data_center=self.dc,
            address="192.168.0.1/17",
        )
        self.net2.save()
        self.net3 = Network(
            name="test3",
            data_center=self.dc,
            address="192.168.128.1/17",
            reserved=5,
            reserved_top_margin=5,
        )
        self.net3.save()
        self.net4 = Network(
            name="test4",
            data_center=self.dc,
            address="192.168.133.1/24",
        )
        self.net4.save()
        self.net5 = Network(
            name="test5",
            data_center=self.dc,
            address="192.169.133.1/24",
        )
        self.net5.save()

        self.ip1 = IPAddress(address="192.168.128.10")
        self.ip1.save()
        self.ip2 = IPAddress(address="192.168.133.10")
        self.ip2.save()
        self.ip3 = IPAddress(address="192.168.128.11")
        self.ip3.save()
コード例 #14
0
 def test_other_datacenter_entry(self):
     dc = DataCenter(name='dc1')
     dc.save()
     dc2 = DataCenter(name='dc2')
     dc2.save()
     net = Network(name='net', address='127.0.0.0/24', data_center=dc)
     net.save()
     entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe')
     entry.save()
     config = generate_dhcp_config(dc=dc2)
     # remove first line with the date and last line
     config = '\n'.join(config.splitlines()[1:-1])
     self.assertEqual(
         config,
         '',
     )
コード例 #15
0
ファイル: test_models_network.py プロジェクト: 4i60r/ralph
class ModelsNetworkTest(TestCase):

    def setUp(self):
        self.dc = DataCenter(name="test_dc")
        self.dc.save()
        self.net1 = Network(
            name="test1",
            data_center=self.dc,
            address="192.168.0.1/16",
        )
        self.net1.save()
        self.net2 = Network(
            name="test2",
            data_center=self.dc,
            address="192.168.0.1/17",
        )
        self.net2.save()
        self.net3 = Network(
            name="test3",
            data_center=self.dc,
            address="192.168.128.1/17",
            reserved=5,
            reserved_top_margin=5,
        )
        self.net3.save()
        self.net4 = Network(
            name="test4",
            data_center=self.dc,
            address="192.168.133.1/24",
        )
        self.net4.save()
        self.net5 = Network(
            name="test5",
            data_center=self.dc,
            address="192.169.133.1/24",
        )
        self.net5.save()

        self.ip1 = IPAddress(address="192.168.128.10")
        self.ip1.save()
        self.ip2 = IPAddress(address="192.168.133.10")
        self.ip2.save()
        self.ip3 = IPAddress(address="192.168.128.11")
        self.ip3.save()

    def test_get_netmask(self):
        self.assertEquals(self.net1.get_netmask(), 16)
        self.assertEquals(self.net2.get_netmask(), 17)

    def test_get_subnetworks(self):
        res = self.net1.get_subnetworks()
        correct = [self.net2, self.net3]
        self.assertEquals(res, correct)

        res = self.net3.get_subnetworks()
        correct = [self.net4]
        self.assertEquals(res, correct)

    def test_get_address_summary(self):
        ret = self.net3.get_total_ips()
        self.assertEquals(ret, 32767)
        ret = self.net3.get_free_ips()
        self.assertEquals(ret, 32500)
        ret = self.net3.get_ip_usage_range()
        correct_range = [self.ip1, self.ip3, self.net4]
        self.assertEquals(ret, correct_range)

    def test_get_ip_usage_aggegated(self):
        ret = self.net3.get_ip_usage_aggegated()
        correct = [
            {
                'amount': 10,
                'range_end': '192.168.128.9',
                'range_start': '192.168.128.0',
                'type': 'free',
            },
            {
                'amount': 2,
                'range_end': '192.168.128.11',
                'range_start': '192.168.128.10',
                'type': 'addr',
            },
            {
                'amount': 1268,
                'range_end': '192.168.132.255',
                'range_start': '192.168.128.12',
                'type': 'free',
            },
            {
                'amount': 256,
                'range_end': '192.168.133.255',
                'range_start': '192.168.133.0',
                'type': self.net4,
            },
            {
                'amount': 31232,
                'range_end': '192.168.255.255',
                'range_start': '192.168.134.0',
                'type': 'free',
            },
        ]
        self.assertEquals(ret, correct)

    def test_get_network_tree(self):
        res = get_network_tree()
        correct = [
            {
                'network': self.net1,
                'subnetworks': [
                    {
                        'network': self.net2,
                        'subnetworks': [],
                    },
                    {
                        'network': self.net3,
                        'subnetworks': [
                            {
                                'network': self.net4,
                                'subnetworks': [],
                            }
                        ]
                    },
                ]
            },
            {
                'network': self.net5,
                'subnetworks': [],
            }
        ]
        self.assertEquals(res, correct)

    def test_ip_is_public_or_no(self):
        ip_list = [
            ('92.143.123.123', True),
            ('10.168.123.123', False),
        ]
        for ip, is_public in ip_list:
            new_ip_address = IPAddress(address=ip)
            new_ip_address.save()
            self.assertEquals(new_ip_address.is_public, is_public)
コード例 #16
0
class ModelsNetworkTest(TestCase):
    def setUp(self):
        self.dc = DataCenter(name="test_dc")
        self.dc.save()
        self.net1 = Network(
            name="test1",
            data_center=self.dc,
            address="192.168.0.1/16",
        )
        self.net1.save()
        self.net2 = Network(
            name="test2",
            data_center=self.dc,
            address="192.168.0.1/17",
        )
        self.net2.save()
        self.net3 = Network(
            name="test3",
            data_center=self.dc,
            address="192.168.128.1/17",
            reserved=5,
            reserved_top_margin=5,
        )
        self.net3.save()
        self.net4 = Network(
            name="test4",
            data_center=self.dc,
            address="192.168.133.1/24",
        )
        self.net4.save()
        self.net5 = Network(
            name="test5",
            data_center=self.dc,
            address="192.169.133.1/24",
        )
        self.net5.save()

        self.ip1 = IPAddress(address="192.168.128.10")
        self.ip1.save()
        self.ip2 = IPAddress(address="192.168.133.10")
        self.ip2.save()
        self.ip3 = IPAddress(address="192.168.128.11")
        self.ip3.save()

    def test_get_netmask(self):
        self.assertEquals(self.net1.get_netmask(), 16)
        self.assertEquals(self.net2.get_netmask(), 17)

    def test_get_subnetworks(self):
        res = self.net1.get_subnetworks()
        correct = [self.net2, self.net3]
        self.assertEquals(res, correct)

        res = self.net3.get_subnetworks()
        correct = [self.net4]
        self.assertEquals(res, correct)

    def test_get_address_summary(self):
        ret = self.net3.get_total_ips()
        self.assertEquals(ret, 32767)
        ret = self.net3.get_free_ips()
        self.assertEquals(ret, 32500)
        ret = self.net3.get_ip_usage_range()
        correct_range = [self.ip1, self.ip3, self.net4]
        self.assertEquals(ret, correct_range)

    def test_get_ip_usage_aggegated(self):
        ret = self.net3.get_ip_usage_aggegated()
        correct = [
            {
                'amount': 10,
                'range_end': '192.168.128.9',
                'range_start': '192.168.128.0',
                'type': 'free',
            },
            {
                'amount': 2,
                'range_end': '192.168.128.11',
                'range_start': '192.168.128.10',
                'type': 'addr',
            },
            {
                'amount': 1268,
                'range_end': '192.168.132.255',
                'range_start': '192.168.128.12',
                'type': 'free',
            },
            {
                'amount': 256,
                'range_end': '192.168.133.255',
                'range_start': '192.168.133.0',
                'type': self.net4,
            },
            {
                'amount': 31232,
                'range_end': '192.168.255.255',
                'range_start': '192.168.134.0',
                'type': 'free',
            },
        ]
        self.assertEquals(ret, correct)

    def test_get_network_tree(self):
        res = get_network_tree()
        correct = [{
            'network':
            self.net1,
            'subnetworks': [
                {
                    'network': self.net2,
                    'subnetworks': [],
                },
                {
                    'network': self.net3,
                    'subnetworks': [{
                        'network': self.net4,
                        'subnetworks': [],
                    }]
                },
            ]
        }, {
            'network': self.net5,
            'subnetworks': [],
        }]
        self.assertEquals(res, correct)

    def test_ip_is_public_or_no(self):
        ip_list = [
            ('92.143.123.123', True),
            ('10.168.123.123', False),
        ]
        for ip, is_public in ip_list:
            new_ip_address = IPAddress(address=ip)
            new_ip_address.save()
            self.assertEquals(new_ip_address.is_public, is_public)