def get_ping_dest(vm_session, mac_addr, restart_network=True): """ Get an ip address to ping :param vm_session: The session object to the guest :param mac_addr: mac address of given interface :param restart_network: Whether to restart guest's network :return: ip address """ if restart_network: utils_misc.cmd_status_output("dhclient -r; sleep 5; dhclient", shell=True, session=vm_session) vm_iface_info = utils_net.get_linux_iface_info( mac_addr, vm_session)['addr_info'][0]['local'] return re.sub('\d+$', '1', vm_iface_info)
def check_iface_link(session, mac, stat): """ Check link state of interface inside a vm :param session: vm's session :param mac: mac address of iface :param stat: link state, could be 'up' or 'down' :return: True if check passed, False if failed """ stat_map = {'up': 'yes', 'down': 'no'} expect_str = 'Link detected: %s' % stat_map[stat] iface_in_vm = utils_net.get_linux_iface_info(mac, session) iface_name = iface_in_vm.get('ifname') ethtool_cmd = 'ethtool %s' % iface_name ethtool_output = session.cmd_output(ethtool_cmd) if expect_str in ethtool_output: logging.info('link state check PASSED.') return True else: logging.error('link state check FAILED.') return False