Esempio n. 1
0
 def test_add_interface_with_v6_multiple(self):
     v6_addresses = [objects.Address('fe80::2677:3ff:fe7d:4c'),
                     objects.Address('2001:abcd::2/64')]
     interface = self._default_interface(v6_addresses)
     self.provider.add_interface(interface)
     self.assertEqual(_V6_IFACE_STATIC_IP_MULTIPLE,
                      self.get_interface_config())
Esempio n. 2
0
 def test_add_interface_with_both_v4_and_v6(self):
     v4_addr = objects.Address('192.168.1.2/24')
     v6_addr = objects.Address('fe80::2677:3ff:fe7d:4c')
     interface = self._default_interface([v4_addr, v6_addr])
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFACE_STATIC_IP + _V6_IFACE_STATIC_IP,
                      self.get_interface_config())
Esempio n. 3
0
 def test_add_interface_with_v4_multiple(self):
     v4_addresses = [objects.Address('192.168.1.2/24'),
                     objects.Address('10.0.0.2/8')]
     interface = self._default_interface(v4_addresses)
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFACE_STATIC_IP_MULTIPLE,
                      self.get_interface_config())
Esempio n. 4
0
 def test_add_interface_with_v6_multiple(self):
     addresses = [
         objects.Address('2001:abc:a::/64'),
         objects.Address('2001:abc:b::1/64'),
         objects.Address('2001:abc:c::2/96')
     ]
     interface = objects.Interface('em1', addresses=addresses)
     self.provider.add_interface(interface)
     self.assertEqual(_V6_IFCFG_MULTIPLE, self.get_interface_config())
Esempio n. 5
0
 def test_add_interface_with_v4_multiple(self):
     addresses = [
         objects.Address('192.168.1.2/24'),
         objects.Address('192.168.1.3/32'),
         objects.Address('10.0.0.2/8')
     ]
     interface = objects.Interface('em1', addresses=addresses)
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFCFG_MULTIPLE, self.get_interface_config())
     self.assertEqual('', self.get_route_config())
Esempio n. 6
0
    def test_interface_failure_multiple(self):
        self.stubs.Set(processutils, 'execute', self._failed_execute)
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('em1', addresses=[v4_addr])
        v4_addr2 = objects.Address('192.168.2.2/24')
        interface2 = objects.Interface('em2', addresses=[v4_addr2])
        self.provider.add_interface(interface)
        self.provider.add_interface(interface2)

        self.assertRaises(os_net_config.ConfigurationError,
                          self.provider.apply)
        # Even though the first one failed, we should have attempted both
        self.assertEqual(2, len(self.provider.errors))
Esempio n. 7
0
 def test_network_with_ipv6_routes(self):
     route1 = objects.Route('192.168.1.1', default=True)
     route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
     route3 = objects.Route('2001:db8::1', default=True)
     route4 = objects.Route('fd00:fd00:2000::1',
                            '2001:db8:dead:beef:cafe::/56')
     v4_addr = objects.Address('192.168.1.2/24')
     v6_addr = objects.Address('2001:abc:a::/64')
     interface = objects.Interface('em1',
                                   addresses=[v4_addr, v6_addr],
                                   routes=[route1, route2, route3, route4])
     self.provider.add_interface(interface)
     self.assertEqual(_V4_V6_IFCFG, self.get_interface_config())
     self.assertEqual(_ROUTES_V6, self.get_route6_config())
Esempio n. 8
0
 def test_network_with_routes(self):
     route1 = objects.Route('192.168.1.1', '172.19.0.0/24')
     v4_addr = objects.Address('192.168.1.2/24')
     interface = self._default_interface([v4_addr], [route1])
     self.provider.addInterface(interface)
     self.assertEqual(_V4_IFACE_STATIC_IP, self.get_interface_config())
     self.assertEqual(_RTS, self.get_route_config())
Esempio n. 9
0
    def test_interface_failure(self):
        self.stubs.Set(processutils, 'execute', self._failed_execute)
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('em1', addresses=[v4_addr])
        self.provider.add_interface(interface)

        self.assertRaises(os_net_config.ConfigurationError,
                          self.provider.apply)
        self.assertEqual(1, len(self.provider.errors))
Esempio n. 10
0
 def test_network_with_routes(self):
     route1 = objects.Route('192.168.1.1', default=True)
     route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
     v4_addr = objects.Address('192.168.1.2/24')
     interface = objects.Interface('em1',
                                   addresses=[v4_addr],
                                   routes=[route1, route2])
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFCFG, self.get_interface_config())
     self.assertEqual(_ROUTES, self.get_route_config())
Esempio n. 11
0
 def test_network_linux_bridge_static(self):
     v4_addr = objects.Address('192.168.1.2/24')
     interface = objects.Interface('em1')
     bridge = objects.LinuxBridge('br-ctlplane',
                                  members=[interface],
                                  addresses=[v4_addr])
     self.provider.add_interface(interface)
     self.provider.add_bridge(bridge)
     self.assertEqual(_LINUX_BRIDGE_IFCFG, self.get_interface_config())
     self.assertEqual(_LINUX_BRIDGE_STATIC,
                      self.provider.bridge_data['br-ctlplane'])
Esempio n. 12
0
    def test_network_apply(self):
        route = objects.Route('192.168.1.1', '172.19.0.0/24')
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('eth0',
                                      addresses=[v4_addr],
                                      routes=[route])
        self.provider.addInterface(interface)

        self.provider.apply()
        iface_data = utils.get_file_data(self.temp_config_file.name)
        self.assertEqual((_V4_IFACE_STATIC_IP + _RTS), iface_data)
Esempio n. 13
0
    def test_apply_noactivate(self):
        route1 = objects.Route('192.168.1.1', '172.19.0.0/24')
        route2 = objects.Route('192.168.1.5', '172.20.0.0/24',
                               route_options="metric 100")
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('eth0', addresses=[v4_addr],
                                      routes=[route1, route2])
        self.provider.add_interface(interface)

        self.provider.apply(activate=False)
        iface_data = utils.get_file_data(self.temp_config_file.name)
        self.assertEqual((_V4_IFACE_STATIC_IP + _RTS), iface_data)
        self.assertEqual([], self.ifup_interface_names)
Esempio n. 14
0
 def test_dhclient_stop_on_iface_activate(self):
     self.stop_dhclient_interfaces = []
     v4_addr = objects.Address('192.168.1.2/24')
     interface = objects.Interface('em1', addresses=[v4_addr])
     interface2 = objects.Interface('em2', use_dhcp=True)
     interface3 = objects.Interface('em3', use_dhcp=False)
     self.provider.add_interface(interface)
     self.provider.add_interface(interface2)
     self.provider.add_interface(interface3)
     self.provider.apply()
     # stop dhclient on em1 due to static IP and em3 due to no IP
     self.assertIn('em1', self.stop_dhclient_interfaces)
     self.assertIn('em3', self.stop_dhclient_interfaces)
     self.assertNotIn('em2', self.stop_dhclient_interfaces)
Esempio n. 15
0
    def test_network_apply(self):
        route1 = objects.Route('192.168.1.1', default=True)
        route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('em1',
                                      addresses=[v4_addr],
                                      routes=[route1, route2])
        self.provider.add_interface(interface)

        self.provider.apply()

        ifcfg_data = utils.get_file_data(self.temp_ifcfg_file.name)
        self.assertEqual(_V4_IFCFG, ifcfg_data)
        route_data = utils.get_file_data(self.temp_route_file.name)
        self.assertEqual(_ROUTES, route_data)
Esempio n. 16
0
 def test_network_ivs_with_uplink_and_interface(self):
     interface = objects.Interface('em1')
     v4_addr = objects.Address('172.16.2.7/24')
     ivs_interface = objects.IvsInterface(vlan_id=5,
                                          name='storage',
                                          addresses=[v4_addr])
     bridge = objects.IvsBridge(members=[interface, ivs_interface])
     self.provider.add_interface(interface)
     self.provider.add_ivs_interface(ivs_interface)
     self.provider.add_bridge(bridge)
     self.assertEqual(_IVS_UPLINK, self.get_interface_config())
     self.assertEqual(_IVS_INTERFACE,
                      self.provider.ivsinterface_data[ivs_interface.name])
     data = self.provider.generate_ivs_config(['em1'], ['storage5'])
     self.assertEqual(_IVS_CONFIG, data)
Esempio n. 17
0
 def test_network_ovs_bridge_with_tunnel(self):
     interface = objects.OvsTunnel('tun0')
     interface.type = 'ovs_tunnel'
     interface.tunnel_type = 'gre'
     interface.ovs_options = ['options:remote_ip=192.168.1.1']
     interface.bridge_name = 'br-ctlplane'
     self.provider.add_interface(interface)
     v4_addr = objects.Address('192.168.1.2/24')
     bridge = objects.OvsBridge('br-ctlplane',
                                members=[interface],
                                addresses=[v4_addr])
     self.provider.add_bridge(bridge)
     self.provider.add_interface(interface)
     self.assertEqual(_OVS_IFCFG_TUNNEL, self.get_interface_config('tun0'))
     self.assertEqual(_OVS_BRIDGE_STATIC,
                      self.provider.bridge_data['br-ctlplane'])
Esempio n. 18
0
 def test_network_nfvswitch_with_interfaces_and_internal_interfaces(self):
     interface = objects.Interface('em1')
     v4_addr = objects.Address('172.16.2.7/24')
     nfvswitch_internal = objects.NfvswitchInternal(vlan_id=5,
                                                    name='storage',
                                                    addresses=[v4_addr])
     iface_name = nfvswitch_internal.name
     bridge = objects.NfvswitchBridge(
         members=[interface, nfvswitch_internal], options="-c 2,3,4,5")
     self.provider.add_interface(interface)
     self.provider.add_nfvswitch_internal(nfvswitch_internal)
     self.provider.add_nfvswitch_bridge(bridge)
     self.assertEqual(_NFVSWITCH_INTERFACE, self.get_interface_config())
     self.assertEqual(_NFVSWITCH_INTERNAL,
                      self.provider.nfvswitch_intiface_data[iface_name])
     data = self.provider.generate_nfvswitch_config(['em1'], ['storage5'])
     self.assertEqual(_NFVSWITCH_CONFIG, data)
Esempio n. 19
0
    def test_add_interface_map_persisted(self):
        def test_interface_mac(name):
            macs = {'em1': 'a1:b2:c3:d4:e5'}
            return macs[name]

        self.stubs.Set(utils, 'interface_mac', test_interface_mac)

        nic_mapping = {'nic1': 'em1'}
        self.stubbed_numbered_nics = nic_mapping
        v4_addr = objects.Address('192.168.1.2/24')
        interface = objects.Interface('nic1',
                                      addresses=[v4_addr],
                                      nic_mapping=nic_mapping,
                                      persist_mapping=True)
        self.assertEqual('a1:b2:c3:d4:e5', interface.hwaddr)
        self.provider.add_interface(interface)
        self.assertEqual(_V4_IFCFG_MAPPED, self.get_interface_config('nic1'))
        self.assertEqual('', self.get_route_config('nic1'))
Esempio n. 20
0
 def test_interface_addresses(self):
     v4_addr = objects.Address('192.168.1.1/24')
     v6_addr = objects.Address('2001:abc:a::/64')
     interface = objects.Interface('foo', addresses=[v4_addr, v6_addr])
     self.assertEqual("192.168.1.1", interface.v4_addresses()[0].ip)
     self.assertEqual("2001:abc:a::", interface.v6_addresses()[0].ip)
Esempio n. 21
0
 def test_add_interface_with_v4(self):
     v4_addr = objects.Address('192.168.1.2/24')
     interface = self._default_interface([v4_addr])
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFACE_STATIC_IP, self.get_interface_config())
Esempio n. 22
0
 def test_add_interface_with_hotplug(self):
     v4_addr = objects.Address('192.168.1.2/24')
     interface = self._default_interface(addr=[v4_addr], hotplug=True)
     self.provider.add_interface(interface)
     self.assertEqual(_IFACE_HOTPLUG, self.get_interface_config())
Esempio n. 23
0
 def test_add_interface_with_v6(self):
     v6_addr = objects.Address('fe80::2677:3ff:fe7d:4c')
     interface = self._default_interface([v6_addr])
     self.provider.add_interface(interface)
     self.assertEqual(_V6_IFACE_STATIC_IP, self.get_interface_config())
Esempio n. 24
0
 def test_ipv4_address(self):
     address = objects.Address('192.168.1.1/24')
     self.assertEqual("192.168.1.1", address.ip)
     self.assertEqual("255.255.255.0", address.netmask)
     self.assertEqual(4, address.version)
Esempio n. 25
0
 def test_add_interface_with_v6(self):
     v6_addr = objects.Address('2001:abc:a::/64')
     interface = objects.Interface('em1', addresses=[v6_addr])
     self.provider.add_interface(interface)
     self.assertEqual(_V6_IFCFG, self.get_interface_config())
Esempio n. 26
0
 def test_ipv6_address(self):
     address = objects.Address('2001:abc:a::/64')
     self.assertEqual("2001:abc:a::", address.ip)
     self.assertEqual("ffff:ffff:ffff:ffff::", address.netmask)
     self.assertEqual(6, address.version)
Esempio n. 27
0
 def test_add_interface_with_v4(self):
     v4_addr = objects.Address('192.168.1.2/24')
     interface = objects.Interface('em1', addresses=[v4_addr])
     self.provider.add_interface(interface)
     self.assertEqual(_V4_IFCFG, self.get_interface_config())
     self.assertEqual('', self.get_route_config())