VOL-2241: Python 3 migration
- rename adapter class file and remove unneeded __init__ to make imports work without major rearrange
- venv and Dockerfile fixups needed for new pyvoltha (cannot install old first)
- clean up yaml config file as it contained empty entries that failed to parse
- clean up imports
- remove itervalues iter*
- convert to list() as needed
- test with python 3.6
- skip non-dict items in tcont loop
- update to voltha-protos 2.1.0
- migrate socketserver and simplehttpserver to python3 import
Change-Id: Id8efa72b6796a3055b1927716503a33544bb6548
diff --git a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
index cd221a5..0cb381f 100644
--- a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
+++ b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
@@ -18,14 +18,16 @@
Broadcom OpenOMCI OLT/ONU adapter handler.
"""
-import ast
+from __future__ import absolute_import
+import six
import arrow
import structlog
+import json
from collections import OrderedDict
-from twisted.internet import reactor, task
-from twisted.internet.defer import DeferredQueue, inlineCallbacks, returnValue, TimeoutError
+from twisted.internet import reactor
+from twisted.internet.defer import DeferredQueue, inlineCallbacks
from heartbeat import HeartBeat
from pyvoltha.adapters.extensions.events.device_events.onu.onu_active_event import OnuActiveEvent
@@ -35,8 +37,10 @@
import pyvoltha.common.openflow.utils as fd
from pyvoltha.common.utils.registry import registry
+from pyvoltha.common.utils.nethelpers import mac_str_to_tuple
from pyvoltha.common.config.config_backend import ConsulStore
from pyvoltha.common.config.config_backend import EtcdStore
+from voltha_protos.logical_device_pb2 import LogicalPort
from voltha_protos.common_pb2 import OperStatus, ConnectStatus, AdminState
from voltha_protos.openflow_13_pb2 import OFPXMC_OPENFLOW_BASIC, ofp_port, OFPPS_LIVE, OFPPF_FIBER, OFPPF_1GB_FD
from voltha_protos.inter_container_pb2 import InterAdapterMessageType, \
@@ -49,14 +53,15 @@
from omci.brcm_tp_service_specific_task import BrcmTpServiceSpecificTask
from omci.brcm_uni_lock_task import BrcmUniLockTask
from omci.brcm_vlan_filter_task import BrcmVlanFilterTask
-from onu_gem_port import *
-from onu_tcont import *
-from pon_port import *
-from uni_port import *
-from onu_traffic_descriptor import *
+from onu_gem_port import OnuGemPort
+from onu_tcont import OnuTCont
+from pon_port import PonPort
+from uni_port import UniPort, UniType
+from onu_traffic_descriptor import OnuTrafficDescriptor
from pyvoltha.common.tech_profile.tech_profile import TechProfile
from pyvoltha.adapters.extensions.omci.tasks.omci_test_request import OmciTestRequest
from pyvoltha.adapters.extensions.omci.omci_entities import AniG
+from pyvoltha.adapters.extensions.omci.omci_defs import EntityOperations, ReasonCodes
OP = EntityOperations
RC = ReasonCodes
@@ -154,10 +159,10 @@
@property
def uni_ports(self):
- return self._unis.values()
+ return list(self._unis.values())
def uni_port(self, port_no_or_name):
- if isinstance(port_no_or_name, (str, unicode)):
+ if isinstance(port_no_or_name, six.string_types):
return next((uni for uni in self.uni_ports
if uni.name == port_no_or_name), None)
@@ -448,8 +453,9 @@
tp_path=tp_path)
return
- tp = self.kv_client[tp_path]
- tp = ast.literal_eval(tp)
+ tpstored = self.kv_client[tp_path]
+ tpstring = tpstored.decode('ascii')
+ tp = json.loads(tpstring)
self.log.debug("tp-instance", tp=tp)
self._do_tech_profile_configuration(uni_id, tp)
@@ -993,7 +999,7 @@
uni_entities[entity_id] = UniType.VEIP
uni_id = 0
- for entity_id, uni_type in uni_entities.iteritems():
+ for entity_id, uni_type in uni_entities.items():
try:
yield self._add_uni_port(device, entity_id, uni_id, uni_type)
uni_id += 1
@@ -1074,7 +1080,7 @@
self._unis[uni_port.port_number] = uni_port
self._onu_omci_device.alarm_synchronizer.set_alarm_params(onu_id=self._onu_indication.onu_id,
- uni_ports=self._unis.values(), serial_number=device.serial_number)
+ uni_ports=self.uni_ports, serial_number=device.serial_number)
# TODO NEW CORE: Figure out how to gain this knowledge from the olt. for now cheat terribly.
def mk_uni_port_num(self, intf_id, onu_id, uni_id):