def autoconfig_dryrun(ask_questions=True): """ Execute the dryrun function. :param ask_questions: When true ask the user for paraameters :type ask_questions: bool """ acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE, clean=True) # Stop VPP on each node nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] VPPUtil.stop(node) # Discover acfg.discover() # Check the system resources nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] if not acfg.min_system_resources(node): return # Modify the devices if ask_questions: acfg.modify_devices() else: acfg.update_interfaces_config() # If there are no interfaces, just return for i in nodes.items(): node = i[1] if not acfg.has_interfaces(node): print("\nThere are no VPP interfaces configured, please configure at least 1.") return # Modify CPU acfg.modify_cpu(ask_questions) # Calculate the cpu parameters acfg.calculate_cpu_parameters() # Acquire TCP stack parameters if ask_questions: acfg.acquire_tcp_params() # Apply the startup acfg.apply_vpp_startup() # Apply the grub configuration acfg.apply_grub_cmdline() # Huge Pages if ask_questions: acfg.modify_huge_pages() acfg.apply_huge_pages()
def autoconfig_dryrun(ask_questions=True): """ Execute the dryrun function. :param ask_questions: When true ask the user for paraameters :type ask_questions: bool """ vutil = VPPUtil() pkgs = vutil.get_installed_vpp_pkgs() if len(pkgs) == 0: print "\nVPP is not installed, please install VPP." return acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE, clean=True) # Stop VPP on each node nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] VPPUtil.stop(node) # Discover acfg.discover() # Check the system resources nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] if not acfg.min_system_resources(node): return # Modify the devices if ask_questions: acfg.modify_devices() else: acfg.update_interfaces_config() # Modify CPU acfg.modify_cpu(ask_questions) # Calculate the cpu parameters acfg.calculate_cpu_parameters() # Acquire TCP stack parameters if ask_questions: acfg.acquire_tcp_params() # Apply the startup acfg.apply_vpp_startup() # Apply the grub configuration acfg.apply_grub_cmdline() # Huge Pages if ask_questions: acfg.modify_huge_pages() acfg.apply_huge_pages()
def autoconfig_apply(ask_questions=True): """ Apply the configuration. Show the diff of the dryrun file and the actual configuration file Copy the files from the dryrun directory to the actual file. Peform the system function :param ask_questions: When true ask the user questions :type ask_questions: bool """ vutil = VPPUtil() pkgs = vutil.get_installed_vpp_pkgs() if len(pkgs) == 0: print "\nVPP is not installed, Install VPP with option 4." return acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE) if ask_questions: print "\nWe are now going to configure your system(s).\n" answer = autoconfig_yn("Are you sure you want to do this [Y/n]? ", 'y') if answer == 'n': return nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] # Check the system resources if not acfg.min_system_resources(node): return # Stop VPP VPPUtil.stop(node) # Huge Pages ret = autoconfig_hugepage_apply(node, ask_questions) if ret != 0: return # VPP ret = autoconfig_vpp_apply(node, ask_questions) if ret != 0: return # Grub ret = autoconfig_grub_apply(node, ask_questions) if ret != 0: # We can still start VPP, even if we haven't configured grub VPPUtil.start(node) return # Everything is configured start vpp VPPUtil.start(node)
def autoconfig_apply(ask_questions=True): """ Apply the configuration. Show the diff of the dryrun file and the actual configuration file Copy the files from the dryrun directory to the actual file. Peform the system function :param ask_questions: When true ask the user questions :type ask_questions: bool """ vutil = VPPUtil() pkgs = vutil.get_installed_vpp_pkgs() if len(pkgs) == 0: print ("\nVPP is not installed, Install VPP with option 4.") return acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE) if ask_questions: print ("\nWe are now going to configure your system(s).\n") answer = autoconfig_yn("Are you sure you want to do this [Y/n]? ", 'y') if answer == 'n': return nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] # Check the system resources if not acfg.min_system_resources(node): return # Stop VPP VPPUtil.stop(node) # Huge Pages ret = autoconfig_hugepage_apply(node, ask_questions) if ret != 0: return # VPP ret = autoconfig_vpp_apply(node, ask_questions) if ret != 0: return # Grub ret = autoconfig_grub_apply(node, ask_questions) if ret != 0: # We can still start VPP, even if we haven't configured grub VPPUtil.start(node) return # Everything is configured start vpp VPPUtil.start(node)
def autoconfig_apply(): """ Apply the configuration. Show the diff of the dryrun file and the actual configuration file Copy the files from the dryrun directory to the actual file. Peform the system function """ vutil = VPPUtil() pkgs = vutil.get_installed_vpp_pkgs() if len(pkgs) == 0: print "\nVPP is not installed, Install VPP with option 4." return acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE) print "\nWe are now going to configure your system(s).\n" answer = autoconfig_yn("Are you sure you want to do this [Y/n]? ", 'y') if answer == 'n': return nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] # Check the system resources if not acfg.min_system_resources(node): return # Huge Pages ret = autoconfig_hugepage_apply(node) if ret != 0: return # VPP ret = autoconfig_vpp_apply(node) if ret != 0: return # Grub ret = autoconfig_grub_apply(node) if ret != 0: return # Everything is configured start vpp cmd = "service vpp start" (ret, stdout, stderr) = VPPUtil.exec_command(cmd) if ret != 0: raise RuntimeError('{} failed on node {} {} {}'.format( cmd, node['host'], stdout, stderr))
def autoconfig_dryrun(): """ Execute the dryrun function. """ vutil = VPPUtil() pkgs = vutil.get_installed_vpp_pkgs() if len(pkgs) == 0: print "\nVPP is not installed, install VPP with option 4." return acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE) # Stop VPP on each node nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] VPPUtil.stop(node) # Discover acfg.discover() # Check the system resources nodes = acfg.get_nodes() for i in nodes.items(): node = i[1] if not acfg.min_system_resources(node): return # Modify the devices acfg.modify_devices() # Modify CPU acfg.modify_cpu() # Calculate the cpu parameters acfg.calculate_cpu_parameters() # Acquire TCP stack parameters acfg.acquire_tcp_params() # Apply the startup acfg.apply_vpp_startup() # Apply the grub configuration acfg.apply_grub_cmdline() # Huge Pages acfg.modify_huge_pages() acfg.apply_huge_pages()