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>
This commit is contained in:
Paul Vinciguerra
2018-12-19 02:05:25 -08:00
committed by Dave Barach
parent 6ad7231c00
commit 339bc6b51d
12 changed files with 548 additions and 400 deletions

View File

@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import print_function
"""VPP PCI Utility libraries"""
import re
@ -44,7 +46,7 @@ class VppPCIUtil(object):
ids = re.findall(PCI_DEV_ID_REGEX, device_string)
descriptions = re.findall(r'\'([\s\S]*?)\'', device_string)
unused = re.findall(r'unused=[\w,]+', device_string)
unused = re.findall(r'unused=\w+|unused=', device_string)
for i, j in enumerate(ids):
device = {'description': descriptions[i]}
@ -268,8 +270,8 @@ class VppPCIUtil(object):
dashseparator = ("-" * (len(header) - 2))
if show_header is True:
print header
print dashseparator
print (header)
print (dashseparator)
for dit in devices.items():
dvid = dit[0]
device = dit[1]
@ -282,11 +284,11 @@ class VppPCIUtil(object):
else:
interface = interfaces[i]
print "{:15} {:25} {:50}".format(
dvid, interface, device['description'])
print ("{:15} {:25} {:50}".format(
dvid, interface, device['description']))
else:
print "{:15} {:50}".format(
dvid, device['description'])
print ("{:15} {:50}".format(
dvid, device['description']))
@staticmethod
def unbind_vpp_device(node, device_id):