diff options
author | Yaroslav Brustinov <ybrustin@cisco.com> | 2016-03-24 21:08:56 +0200 |
---|---|---|
committer | Yaroslav Brustinov <ybrustin@cisco.com> | 2016-03-24 21:08:56 +0200 |
commit | 764ef2e77a5f344bf1f30f717f610f49d21f869d (patch) | |
tree | fbc2fa711e3b4163094b57f551de231d11cffae5 /scripts/automation/trex_control_plane/client_utils/external_packages.py | |
parent | 6bee94506d7ed8f6843be352acf61112a728fa0b (diff) |
return client_utils
Diffstat (limited to 'scripts/automation/trex_control_plane/client_utils/external_packages.py')
-rw-r--r-- | scripts/automation/trex_control_plane/client_utils/external_packages.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/scripts/automation/trex_control_plane/client_utils/external_packages.py b/scripts/automation/trex_control_plane/client_utils/external_packages.py new file mode 100644 index 00000000..c682dc18 --- /dev/null +++ b/scripts/automation/trex_control_plane/client_utils/external_packages.py @@ -0,0 +1,72 @@ +#!/router/bin/python + +import sys +import os +import warnings + +CURRENT_PATH = os.path.dirname(os.path.realpath(__file__)) +ROOT_PATH = os.path.abspath(os.path.join(CURRENT_PATH, os.pardir)) # path to trex_control_plane directory +PATH_TO_PYTHON_LIB = os.path.abspath(os.path.join(ROOT_PATH, os.pardir, os.pardir, 'external_libs')) + +CLIENT_UTILS_MODULES = ['dpkt-1.8.6', + 'yaml-3.11', + 'texttable-0.8.4', + 'scapy-2.3.1' + ] + +def import_client_utils_modules(): + + # must be in a higher priority + sys.path.insert(0, PATH_TO_PYTHON_LIB) + + sys.path.append(ROOT_PATH) + import_module_list(CLIENT_UTILS_MODULES) + + +def import_module_list(modules_list): + assert(isinstance(modules_list, list)) + for p in modules_list: + full_path = os.path.join(PATH_TO_PYTHON_LIB, p) + fix_path = os.path.normcase(full_path) + sys.path.insert(1, full_path) + + + import_platform_dirs() + + + +def import_platform_dirs (): + # handle platform dirs + + # try fedora 18 first and then cel5.9 + # we are using the ZMQ module to determine the right platform + + full_path = os.path.join(PATH_TO_PYTHON_LIB, 'platform/fedora18') + fix_path = os.path.normcase(full_path) + sys.path.insert(0, full_path) + try: + # try to import and delete it from the namespace + import zmq + del zmq + return + except: + sys.path.pop(0) + pass + + full_path = os.path.join(PATH_TO_PYTHON_LIB, 'platform/cel59') + fix_path = os.path.normcase(full_path) + sys.path.insert(0, full_path) + try: + # try to import and delete it from the namespace + import zmq + del zmq + return + + except: + sys.path.pop(0) + sys.modules['zmq'] = None + warnings.warn("unable to determine platform type for ZMQ import") + + + +import_client_utils_modules() |