From 95b1696401da904e1a1386e2359fa72e4aa03f94 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Wed, 28 Oct 2020 12:39:32 -0700 Subject: [PATCH] [xcvrd] Remove dependence on enum; Add 'sonic-py-common' as dependencies in setup.py (#106) Remove dependence on the 'enum' package, as we are currently transitioning from Python 2 to Python 3 and there are installation conflict issues between the `enum` package and the `enum34` package. Add 'sonic-py-common' as dependencies in setup.py for xcvrd, also add spaces around "equals" signs. --- sonic-xcvrd/scripts/xcvrd | 25 ++++++++++++++++--------- sonic-xcvrd/setup.py | 30 +++++++++++++++++------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/sonic-xcvrd/scripts/xcvrd b/sonic-xcvrd/scripts/xcvrd index 48f110a7317a..07a98e8f3beb 100644 --- a/sonic-xcvrd/scripts/xcvrd +++ b/sonic-xcvrd/scripts/xcvrd @@ -16,10 +16,9 @@ try: import threading import time - from enum import Enum from sonic_py_common import daemon_base, device_info, logger - from swsscommon import swsscommon from sonic_py_common import multi_asic + from swsscommon import swsscommon except ImportError, e: raise ImportError (str(e) + " - required module not found") @@ -46,13 +45,21 @@ XCVRD_MAIN_THREAD_SLEEP_SECS = 60 SFP_STATUS_REMOVED = '0' SFP_STATUS_INSERTED = '1' -# SFP error code enum, new elements can be added to the enum if new errors need to be supported. -SFP_STATUS_ERR_ENUM = Enum('SFP_STATUS_ERR_ENUM', ['SFP_STATUS_ERR_I2C_STUCK', 'SFP_STATUS_ERR_BAD_EEPROM', - 'SFP_STATUS_ERR_UNSUPPORTED_CABLE', 'SFP_STATUS_ERR_HIGH_TEMP', - 'SFP_STATUS_ERR_BAD_CABLE'], start=2) - -# Convert the error code to string and store them in a set for convenience -errors_block_eeprom_reading = set(str(error_code.value) for error_code in SFP_STATUS_ERR_ENUM) +# SFP error codes, stored as strings. Can add more as needed. +SFP_STATUS_ERR_I2C_STUCK = '2' +SFP_STATUS_ERR_BAD_EEPROM = '3' +SFP_STATUS_ERR_UNSUPPORTED_CABLE = '4' +SFP_STATUS_ERR_HIGH_TEMP = '5' +SFP_STATUS_ERR_BAD_CABLE = '6' + +# Store the error codes in a set for convenience +errors_block_eeprom_reading = { + SFP_STATUS_ERR_I2C_STUCK, + SFP_STATUS_ERR_BAD_EEPROM, + SFP_STATUS_ERR_UNSUPPORTED_CABLE, + SFP_STATUS_ERR_HIGH_TEMP, + SFP_STATUS_ERR_BAD_CABLE +} EVENT_ON_ALL_SFP = '-1' # events definition diff --git a/sonic-xcvrd/setup.py b/sonic-xcvrd/setup.py index 2f8e6d64fe20..ad5148d8c975 100644 --- a/sonic-xcvrd/setup.py +++ b/sonic-xcvrd/setup.py @@ -1,22 +1,26 @@ from setuptools import setup setup( - name='sonic-xcvrd', - version='1.0', - description='Transceiver monitoring daemon for SONiC', - license='Apache 2.0', - author='SONiC Team', - author_email='linuxnetdev@microsoft.com', - url='https://github.com/Azure/sonic-platform-daemons', - maintainer='Kebo Liu', - maintainer_email='kebol@mellanox.com', - scripts=[ + name = 'sonic-xcvrd', + version = '1.0', + description = 'Transceiver monitoring daemon for SONiC', + license = 'Apache 2.0', + author = 'SONiC Team', + author_email = 'linuxnetdev@microsoft.com', + url = 'https://github.com/Azure/sonic-platform-daemons', + maintainer = 'Kebo Liu', + maintainer_email = 'kebol@mellanox.com', + scripts = [ 'scripts/xcvrd', ], - setup_requires= [ + install_requires = [ + # NOTE: This package also requires swsscommon, but it is not currently installed as a wheel + 'sonic-py-common', + ], + setup_requires = [ 'wheel' ], - classifiers=[ + classifiers = [ 'Development Status :: 4 - Beta', 'Environment :: No Input/Output (Daemon)', 'Intended Audience :: Developers', @@ -28,5 +32,5 @@ 'Programming Language :: Python :: 2.7', 'Topic :: System :: Hardware', ], - keywords='sonic SONiC TRANSCEIVER transceiver daemon XCVRD xcvrd', + keywords = 'sonic SONiC TRANSCEIVER transceiver daemon XCVRD xcvrd', )