VPP-1508 Python3 abstract classes

Update the syntax to support abstract classes in python 2 and python 3.

Depends on: new style classes -- https://gerrit.fd.io/r/16166

Change-Id: Iad2c1240149f38b3faca1b37ab95d3d210e1daee
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
diff --git a/test/vpp_object.py b/test/vpp_object.py
index 1b0fada..a0b9fe3 100644
--- a/test/vpp_object.py
+++ b/test/vpp_object.py
@@ -1,32 +1,33 @@
 """ abstract vpp object and object registry """
 
-from abc import ABCMeta, abstractmethod
+import abc
+import six
 
 from six import moves
 
 
+@six.add_metaclass(abc.ABCMeta)
 class VppObject(object):
     """ Abstract vpp object """
-    __metaclass__ = ABCMeta
 
-    @abstractmethod
+    @abc.abstractmethod
     def add_vpp_config(self):
         """ Add the configuration for this object to vpp. """
         pass
 
-    @abstractmethod
+    @abc.abstractmethod
     def query_vpp_config(self):
         """Query the vpp configuration.
 
         :return: True if the object is configured"""
         pass
 
-    @abstractmethod
+    @abc.abstractmethod
     def remove_vpp_config(self):
         """ Remove the configuration for this object from vpp. """
         pass
 
-    @abstractmethod
+    @abc.abstractmethod
     def object_id(self):
         """ Return a unique string representing this object. """
         pass