Add support for 18.01.
Fixed bugs.
Improved some config as the result of Tetration experience.

Change-Id: Ie4b8d2d77ca3ad165675c42fa2d9a4798d871f9d
Signed-off-by: John DeNisco <jdenisco@cisco.com>
diff --git a/extras/vpp_config/vpp_config.py b/extras/vpp_config/vpp_config.py
index 69e7de7..dc1bc51 100755
--- a/extras/vpp_config/vpp_config.py
+++ b/extras/vpp_config/vpp_config.py
@@ -323,6 +323,7 @@
         # Everything is configured start vpp
         VPPUtil.start(node)
 
+
 def autoconfig_dryrun(ask_questions=True):
     """
     Execute the dryrun function.
@@ -496,7 +497,6 @@
     # 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
@@ -535,7 +535,7 @@
         if answer == '1':
             autoconfig_ipv4_setup()
         # elif answer == '2':
-         #    autoconfig_create_vm()
+        #    autoconfig_create_vm()
         elif answer == '9' or answer == 'q':
             return
         else:
@@ -618,8 +618,6 @@
 
     global rootdir
 
-    logging.basicConfig(level=logging.ERROR)
-
     distro = VPPUtil.get_linux_distro()
     if distro[0] == 'Ubuntu':
         rootdir = '/usr/local'
@@ -659,6 +657,12 @@
                 (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:
+            raise RuntimeError('{} failed on node {} {}'. format(cmd, node['host'], stderr))
+
 
 def execute_with_args(args):
     """
@@ -692,9 +696,16 @@
     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 +728,4 @@
 
 
 if __name__ == '__main__':
-
     config_main()