def _get(vdsmnets=None): """ Generate a networking report for all devices. In case vdsmnets is provided, it is used in the report instead of retrieving data from the running config. :return: Dict of networking devices with all their details. """ ipaddrs = getIpAddrs() routes = get_routes() devices_info = _devices_report(ipaddrs, routes) nets_info = _networks_report(vdsmnets, routes, ipaddrs, devices_info) add_qos_info_to_devices(nets_info, devices_info) flat_devs_info = _get_flat_devs_info(devices_info) devices = _get_dev_names(nets_info, flat_devs_info) extra_info = {} if nmstate.is_nmstate_backend(): extra_info.update(_get_devices_info_from_nmstate(devices)) else: extra_info.update(dhclient.dhcp_info(devices)) _update_caps_info(nets_info, flat_devs_info, extra_info) networking_report = {'networks': nets_info} networking_report.update(devices_info) if nmstate.is_nmstate_backend(): networking_report['nameservers'] = nmstate.show_nameservers() else: networking_report['nameservers'] = dns.get_host_nameservers() networking_report['supportsIPv6'] = ipv6_supported() return networking_report
def _canonicalize_nameservers(data): if 'nameservers' not in data: # Nameservers are relevant only for the default route network (usually # the management network) if data['defaultRoute'] and data['bootproto'] != 'dhcp': data['nameservers'] = dns.get_host_nameservers() else: data['nameservers'] = []
def _canonicalize_nameservers(data): if 'nameservers' not in data: # Nameservers are relevant only for the default route network (usually # the management network) if data['defaultRoute'] and data['bootproto'] != 'dhcp': data['nameservers'] = dns.get_host_nameservers() else: data['nameservers'] = []
def _canonicalize_nameservers(data): if 'nameservers' not in data: # Nameservers are relevant only for the default route network (usually # the management network) if data['defaultRoute'] and data['bootproto'] != 'dhcp': data['nameservers'] = dns.get_host_nameservers() # FIXME https://bugzilla.redhat.com/1816043 if nmstate.is_nmstate_backend(): data['nameservers'] = data['nameservers'][:2] else: data['nameservers'] = []
def test_get_host_nameservers(self, mock_open): RESOLV_CONF = ('# Generated by NetworkManager\n' 'search example.com company.net\n' 'domain example.com\n' 'nameserver 192.168.0.100\n' 'nameserver 8.8.8.8\n' 'nameserver 8.8.4.4\n') expected_nameservers = ['192.168.0.100', '8.8.8.8', '8.8.4.4'] resolv_conf_stream = six.StringIO(RESOLV_CONF) mock_open.return_value.__enter__.return_value = resolv_conf_stream resulted_nameservers = dns.get_host_nameservers() assert expected_nameservers == resulted_nameservers
def test_get_host_nameservers(self, mock_open): RESOLV_CONF = ( '# Generated by NetworkManager\n' 'search example.com company.net\n' 'domain example.com\n' 'nameserver 192.168.0.100\n' 'nameserver 8.8.8.8\n' 'nameserver 8.8.4.4\n' ) expected_nameservers = ['192.168.0.100', '8.8.8.8', '8.8.4.4'] resolv_conf_stream = six.StringIO(RESOLV_CONF) mock_open.return_value.__enter__.return_value = resolv_conf_stream resulted_nameservers = dns.get_host_nameservers() self.assertEqual(expected_nameservers, resulted_nameservers)
def _get(vdsmnets=None): """ Generate a networking report for all devices. In case vdsmnets is provided, it is used in the report instead of retrieving data from the running config. :return: Dict of networking devices with all their details. """ ipaddrs = getIpAddrs() routes = get_routes() devices_info = _devices_report(ipaddrs, routes) nets_info = _networks_report(vdsmnets, routes, ipaddrs, devices_info) _update_dhcp_info(nets_info, devices_info) networking_report = {'networks': nets_info} networking_report.update(devices_info) networking_report['nameservers'] = dns.get_host_nameservers() networking_report['supportsIPv6'] = ipv6_supported() return networking_report
def test_read_dns_entries_from_resolv_conf(self): # Assuming at least one DNS entry exists on the host running the tests nameservers = dns.get_host_nameservers() self.assertTrue(nameservers, 'No DNS entries detected')
def test_get_host_nameservers_no_resolvconf(self, mock_open): mock_open.return_value.__enter__.side_effect = IOError() nameservers = dns.get_host_nameservers() self.assertEqual(nameservers, [])
def _translate_nameservers(attributes): nservers = dns.get_host_nameservers() if attributes['defaultRoute'] else [] attributes['nameservers'] = nservers
def test_read_dns_entries_from_resolv_conf(self): # Assuming at least one DNS entry exists on the host running the tests nameservers = dns.get_host_nameservers() self.assertTrue(nameservers, 'No DNS entries detected')
def test_get_host_nameservers_no_resolvconf(self, mock_open): mock_open.return_value.__enter__.side_effect = IOError() nameservers = dns.get_host_nameservers() self.assertEqual(nameservers, [])
def _translate_nameservers(attributes): nservers = dns.get_host_nameservers() if attributes['defaultRoute'] else [] attributes['nameservers'] = nservers