vpp_config: Rework for Python2/3 compatibility.

On ubuntu:
   $cd <basedir>/extras/vpp_config
   $./scripts/clean.sh
   $./scripts/cp-data.sh
   $sudo apt-get install python3-pip python3-setuptools
   $python3 -m pip install .
   $vpp-config

Changes:
   * Convert to print() function.
   * raw_input changes.
   * floor division changes.
   * replace vpp-config.py with a setuptools 'vpp-config' entry_point.
   * replace netaddr with ipaddress from the standard library and backport.
   * .decode() subprocess.Popen's stdout because in python3 they are bytes.

Change-Id: Id98894ee54e0c31a0ba0304134b159caef415705
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
diff --git a/extras/vpp_config/setup.py b/extras/vpp_config/setup.py
index d3d0e51..fca08f6 100644
--- a/extras/vpp_config/setup.py
+++ b/extras/vpp_config/setup.py
@@ -1,25 +1,33 @@
 from setuptools import setup
 
 setup(name="vpp_config",
-      version="18.10.4",
+      version="19.01.1",
       author="John DeNisco",
       author_email="jdenisco@cisco.com",
       description="VPP Configuration Utility",
-      license = 'Apache-2.0',
+      license='Apache-2.0',
       keywords="vppconfig",
-      url = 'https://wiki.fd.io/view/VPP',
+      url='https://wiki.fd.io/view/VPP',
       py_modules=['vpp_config'],
-      install_requires=['pyyaml','netaddr', 'requests'],
+      install_requires=['pyyaml', 'requests'],
+      extra_requires=["ipaddress; python_version < '3.3'"],
       packages=['vpplib'],
-      scripts=['scripts/vpp-config'],
+      entry_points={
+          'console_scripts': ['vpp-config=vpp_config:config_main'],
+      },
       data_files=[('vpp/vpp-config/scripts', ['scripts/dpdk-devbind.py']),
                   ('vpp/vpp-config/configs', ['data/auto-config.yaml']),
                   ('vpp/vpp-config/configs', ['data/cloud-config.iso']),
-                  ('vpp/vpp-config/configs', ['data/iperf-centos.xml.template']),
-                  ('vpp/vpp-config/configs', ['data/iperf-ubuntu.xml.template']),
-                  ('vpp/vpp-config/dryrun/sysctl.d', ['data/80-vpp.conf.template']),
+                  ('vpp/vpp-config/configs',
+                   ['data/iperf-centos.xml.template']),
+                  ('vpp/vpp-config/configs',
+                   ['data/iperf-ubuntu.xml.template']),
+                  ('vpp/vpp-config/dryrun/sysctl.d',
+                   ['data/80-vpp.conf.template']),
                   ('vpp/vpp-config/dryrun/default', ['data/grub.template']),
-                  ('vpp/vpp-config/dryrun/vpp', ['data/startup.conf.template']),
-      ],
-      long_description="The VPP configuration utility can be used to easily configure VPP.",
+                  ('vpp/vpp-config/dryrun/vpp',
+                   ['data/startup.conf.template']),
+                  ],
+      long_description="The VPP configuration utility can be used to "
+                       "easily configure VPP.",
       )