def iface_update_numa_node(node): """For all interfaces from topology file update numa node based on information from the node. :param node: Node from topology. :type node: dict :returns: Nothing. :raises ValueError: If numa node ia less than 0. :raises RuntimeError: If update of numa node failes. """ ssh = SSH() for if_key in Topology.get_node_interfaces(node): if_pci = Topology.get_interface_pci_addr(node, if_key) ssh.connect(node) cmd = "cat /sys/bus/pci/devices/{}/numa_node".format(if_pci) for _ in range(3): (ret, out, _) = ssh.exec_command(cmd) if ret == 0: try: numa_node = int(out) if numa_node < 0: raise ValueError except ValueError: logger.trace('Reading numa location failed for: {0}'\ .format(if_pci)) else: Topology.set_interface_numa_node(node, if_key, numa_node) break else: raise RuntimeError('Update numa node failed for: {0}'\ .format(if_pci))
def install_sfc_test(node): """Prepare the NSH SFC test envrionment. :param node: Dictionary created from topology :type node: dict :returns: nothing """ logger.console('Install the NSH SFC on {0}'.format(node['host'])) if_name_list = Topology.get_node_interfaces(node) ssh = SSH() ssh.connect(node) (ret_code, _, stderr) = ssh.exec_command( 'cd {0}/tests/nsh_sfc/sfc_scripts/ && ./install_sfc.sh {1} {2}' .format(con.REMOTE_FW_DIR, if_name_list[0], if_name_list[1]), \ timeout=600) if ret_code != 0: logger.error('Install the NSH SFC error: {0}'.format(stderr)) raise RuntimeError('Install the NSH SFC failed') else: logger.console('Install the NSH SFC on {0} success!'. format(node['host']))