X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=extras%2Fvpp_config%2Fvpp_config.py;h=75423b84ad1f8e7315409884661e2a0aa9028406;hb=4d3739dddb00277690025aa85caad08d30f8f4ab;hp=69e7de706e55d94a43868c2033f9c0a81e82900b;hpb=ddecfb3d9f5960b69d964f9e870a6ded78a52f1f;p=vpp.git diff --git a/extras/vpp_config/vpp_config.py b/extras/vpp_config/vpp_config.py index 69e7de706e5..75423b84ad1 100755 --- a/extras/vpp_config/vpp_config.py +++ b/extras/vpp_config/vpp_config.py @@ -323,6 +323,7 @@ def autoconfig_apply(ask_questions=True): # Everything is configured start vpp VPPUtil.start(node) + def autoconfig_dryrun(ask_questions=True): """ Execute the dryrun function. @@ -463,14 +464,16 @@ def autoconfig_ipv4_setup(): acfg.ipv4_interface_setup() -def autoconfig_create_vm(): +def autoconfig_create_iperf_vm(): """ Setup IPv4 interfaces """ acfg = AutoConfig(rootdir, VPP_AUTO_CONFIGURATION_FILE) - acfg.create_and_bridge_virtual_interfaces() + acfg.destroy_iperf_vm('iperf-server') + acfg.create_and_bridge_iperf_virtual_interface() + acfg.create_iperf_vm('iperf-server') def autoconfig_not_implemented(): @@ -490,13 +493,9 @@ def autoconfig_basic_test_menu(): basic_menu_text = '\nWhat would you like to do?\n\n\ 1) List/Create Simple IPv4 Setup\n\ +2) Create an iperf VM and Connect to VPP an interface\n\ 9 or q) Back to main menu.' - # 1) List/Create Simple IPv4 Setup\n\ - # 2) List/Create Create VM and Connect to VPP interfaces\n\ - # 9 or q) Back to main menu.' - - print "{}".format(basic_menu_text) input_valid = False @@ -534,8 +533,8 @@ def autoconfig_basic_test(): answer = autoconfig_basic_test_menu() if answer == '1': autoconfig_ipv4_setup() - # elif answer == '2': - # autoconfig_create_vm() + elif answer == '2': + autoconfig_create_iperf_vm() elif answer == '9' or answer == 'q': return else: @@ -550,12 +549,10 @@ def autoconfig_main_menu(): main_menu_text = '\nWhat would you like to do?\n\n\ 1) Show basic system information\n\ -2) Dry Run (Will save the configuration files in {}/vpp/vpp-config/dryrun for inspection)\n\ - and user input in {}/vpp/vpp-config/configs/auto-config.yaml\n\ +2) Dry Run (Saves the configuration files in {}/vpp/vpp-config/dryrun.\n\ 3) Full configuration (WARNING: This will change the system configuration)\n\ 4) List/Install/Uninstall VPP.\n\ -5) Execute some basic tests.\n\ -9 or q) Quit'.format(rootdir, rootdir) +q) Quit'.format(rootdir, rootdir) # 5) Dry Run from {}/vpp/vpp-config/auto-config.yaml (will not ask questions).\n\ # 6) Install QEMU patch (Needed when running openstack).\n\ @@ -569,14 +566,12 @@ def autoconfig_main_menu(): if len(answer) > 1: print "Please enter only 1 character." continue - if re.findall(r'[Qq1-79]', answer): + if re.findall(r'[Qq1-4]', answer): input_valid = True answer = answer[0].lower() else: - print "Please enter a character between 1 and 5 or 9." + print "Please enter a character between 1 and 4 or q." - if answer == '9': - answer = 'q' return answer @@ -600,9 +595,7 @@ def autoconfig_main(): autoconfig_apply() elif answer == '4': autoconfig_install() - elif answer == '5': - autoconfig_basic_test() - elif answer == '9' or answer == 'q': + elif answer == 'q': return else: autoconfig_not_implemented() @@ -618,8 +611,6 @@ def autoconfig_setup(ask_questions=True): global rootdir - logging.basicConfig(level=logging.ERROR) - distro = VPPUtil.get_linux_distro() if distro[0] == 'Ubuntu': rootdir = '/usr/local' @@ -659,7 +650,14 @@ def autoconfig_setup(ask_questions=True): (os.path.isfile(VPP_REAL_GRUB_FILE) is True): autoconfig_cp(node, VPP_REAL_GRUB_FILE, '{}'.format(rootdir + VPP_GRUB_FILE)) + # Be sure the uio_pci_generic driver is installed + cmd = 'modprobe uio_pci_generic' + (ret, stdout, stderr) = VPPUtil.exec_command(cmd) + if ret != 0: + logging.warning('{} failed on node {} {}'. format(cmd, node['host'], stderr)) + +# noinspection PyUnresolvedReferences def execute_with_args(args): """ Execute the configuration utility with agruments. @@ -692,9 +690,16 @@ def config_main(): if not os.geteuid() == 0: sys.exit('\nPlease run the VPP Configuration Utility as root.') + if len(sys.argv) > 1 and ((sys.argv[1] == '-d') or (sys.argv[1] == '--debug')): + logging.basicConfig(level=logging.DEBUG) + else: + logging.basicConfig(level=logging.ERROR) + # If no arguments were entered, ask the user questions to get the main parameters if len(sys.argv) == 1: - # Main menu + autoconfig_main() + return + elif len(sys.argv) == 2 and (sys.argv[1] == '-d' or sys.argv[1] == '--debug'): autoconfig_main() return @@ -717,5 +722,4 @@ in an interactive mode' if __name__ == '__main__': - config_main()