From 7610bc38dcd479fae050161a4a586244be6e3f0f Mon Sep 17 00:00:00 2001 From: Konrad Sztyber Date: Tue, 21 Sep 2021 15:21:31 +0200 Subject: [PATCH] scripts: move python modules to python directory Up until now, importing an SPDK RPC python module was just a matter of `import rpc`. It's fine until there's another module called `rpc` installed on the system, in which case it's impossible to import both of them. Therefore, to avoid this problem, all of the modules were moved to a separate directory under the "spdk" namespace. The decision to move to a location under a separate directory was motivated by the fact that a directory called scripts/spdk would look pretty confusing. Moreover, it should make it also easier to package these scripts as a python package. Other than moving the packages, all of the imports were updated to reflect these changes. Files under python now use relative imports, while those under scripts/ use the "spdk" namespace and have their PYTHONPATH extended with python directory. Signed-off-by: Konrad Sztyber Change-Id: Ib43dee73921d590a551dd83885e22870e72451cf Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9692 Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins --- doc/jsonrpc.md | 2 +- examples/interrupt_tgt/interrupt_plugin.py | 2 +- python/spdk/__init__.py | 0 {scripts => python/spdk}/rpc/__init__.py | 0 {scripts => python/spdk}/rpc/app.py | 0 {scripts => python/spdk}/rpc/bdev.py | 0 {scripts => python/spdk}/rpc/blobfs.py | 0 {scripts => python/spdk}/rpc/client.py | 0 {scripts => python/spdk}/rpc/cmd_parser.py | 0 {scripts => python/spdk}/rpc/env_dpdk.py | 0 {scripts => python/spdk}/rpc/helpers.py | 0 {scripts => python/spdk}/rpc/idxd.py | 0 {scripts => python/spdk}/rpc/ioat.py | 0 {scripts => python/spdk}/rpc/iscsi.py | 0 {scripts => python/spdk}/rpc/log.py | 0 {scripts => python/spdk}/rpc/lvol.py | 0 {scripts => python/spdk}/rpc/nbd.py | 0 {scripts => python/spdk}/rpc/notify.py | 0 {scripts => python/spdk}/rpc/nvme.py | 0 {scripts => python/spdk}/rpc/nvmf.py | 0 {scripts => python/spdk}/rpc/pmem.py | 0 {scripts => python/spdk}/rpc/sock.py | 0 {scripts => python/spdk}/rpc/subsystem.py | 0 {scripts => python/spdk}/rpc/trace.py | 0 {scripts => python/spdk}/rpc/vhost.py | 0 {scripts => python/spdk}/rpc/vmd.py | 0 {scripts => python/spdk}/spdkcli/__init__.py | 0 {scripts => python/spdk}/spdkcli/ui_node.py | 2 +- .../spdk}/spdkcli/ui_node_iscsi.py | 2 +- .../spdk}/spdkcli/ui_node_nvmf.py | 2 +- {scripts => python/spdk}/spdkcli/ui_root.py | 3 +-- rpmbuild/spdk.spec | 5 +++++ scripts/iostat.py | 6 +++++- scripts/perf/nvmf/run_nvmf.py | 20 ++++++++++--------- scripts/rpc.py | 11 ++++++---- scripts/rpc_http_proxy.py | 6 +++++- scripts/spdkcli.py | 8 ++++++-- test/app/fuzz/common/fuzz_rpc.py | 4 ++-- test/bdev/bdevio/tests.py | 4 ++-- test/bdev/bdevperf/bdevperf.py | 4 ++-- test/common/autotest_common.sh | 2 +- test/event/scheduler/scheduler_plugin.py | 2 +- test/interrupt/reactor_set_interrupt.sh | 2 +- test/interrupt/reap_unregistered_poller.sh | 2 +- test/json_config/clear_config.py | 5 ++--- test/nvmf/target/multitarget_rpc.py | 4 ++-- test/rpc/rpc.sh | 2 +- test/rpc/rpc_plugin.py | 2 +- 48 files changed, 61 insertions(+), 41 deletions(-) create mode 100644 python/spdk/__init__.py rename {scripts => python/spdk}/rpc/__init__.py (100%) rename {scripts => python/spdk}/rpc/app.py (100%) rename {scripts => python/spdk}/rpc/bdev.py (100%) rename {scripts => python/spdk}/rpc/blobfs.py (100%) rename {scripts => python/spdk}/rpc/client.py (100%) rename {scripts => python/spdk}/rpc/cmd_parser.py (100%) rename {scripts => python/spdk}/rpc/env_dpdk.py (100%) rename {scripts => python/spdk}/rpc/helpers.py (100%) rename {scripts => python/spdk}/rpc/idxd.py (100%) rename {scripts => python/spdk}/rpc/ioat.py (100%) rename {scripts => python/spdk}/rpc/iscsi.py (100%) rename {scripts => python/spdk}/rpc/log.py (100%) rename {scripts => python/spdk}/rpc/lvol.py (100%) rename {scripts => python/spdk}/rpc/nbd.py (100%) rename {scripts => python/spdk}/rpc/notify.py (100%) rename {scripts => python/spdk}/rpc/nvme.py (100%) rename {scripts => python/spdk}/rpc/nvmf.py (100%) rename {scripts => python/spdk}/rpc/pmem.py (100%) rename {scripts => python/spdk}/rpc/sock.py (100%) rename {scripts => python/spdk}/rpc/subsystem.py (100%) rename {scripts => python/spdk}/rpc/trace.py (100%) rename {scripts => python/spdk}/rpc/vhost.py (100%) rename {scripts => python/spdk}/rpc/vmd.py (100%) rename {scripts => python/spdk}/spdkcli/__init__.py (100%) rename {scripts => python/spdk}/spdkcli/ui_node.py (99%) rename {scripts => python/spdk}/spdkcli/ui_node_iscsi.py (99%) rename {scripts => python/spdk}/spdkcli/ui_node_nvmf.py (99%) rename {scripts => python/spdk}/spdkcli/ui_root.py (99%) diff --git a/doc/jsonrpc.md b/doc/jsonrpc.md index e39682de2..22db68ee0 100644 --- a/doc/jsonrpc.md +++ b/doc/jsonrpc.md @@ -139,7 +139,7 @@ argument that adds new RPC calls (subparsers.add_parser()). The new parsers sho functions registered within the external module using the SPDK_RPC_REGISTER() macro. Example: ~~~python -from rpc.client import print_json +from spdk.rpc.client import print_json def example_create(client, num_blocks, block_size, name=None, uuid=None): diff --git a/examples/interrupt_tgt/interrupt_plugin.py b/examples/interrupt_tgt/interrupt_plugin.py index 284cf8955..c27887bc8 100644 --- a/examples/interrupt_tgt/interrupt_plugin.py +++ b/examples/interrupt_tgt/interrupt_plugin.py @@ -1,4 +1,4 @@ -from rpc.client import print_json +from spdk.rpc.client import print_json def reactor_set_interrupt_mode(args): diff --git a/python/spdk/__init__.py b/python/spdk/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/rpc/__init__.py b/python/spdk/rpc/__init__.py similarity index 100% rename from scripts/rpc/__init__.py rename to python/spdk/rpc/__init__.py diff --git a/scripts/rpc/app.py b/python/spdk/rpc/app.py similarity index 100% rename from scripts/rpc/app.py rename to python/spdk/rpc/app.py diff --git a/scripts/rpc/bdev.py b/python/spdk/rpc/bdev.py similarity index 100% rename from scripts/rpc/bdev.py rename to python/spdk/rpc/bdev.py diff --git a/scripts/rpc/blobfs.py b/python/spdk/rpc/blobfs.py similarity index 100% rename from scripts/rpc/blobfs.py rename to python/spdk/rpc/blobfs.py diff --git a/scripts/rpc/client.py b/python/spdk/rpc/client.py similarity index 100% rename from scripts/rpc/client.py rename to python/spdk/rpc/client.py diff --git a/scripts/rpc/cmd_parser.py b/python/spdk/rpc/cmd_parser.py similarity index 100% rename from scripts/rpc/cmd_parser.py rename to python/spdk/rpc/cmd_parser.py diff --git a/scripts/rpc/env_dpdk.py b/python/spdk/rpc/env_dpdk.py similarity index 100% rename from scripts/rpc/env_dpdk.py rename to python/spdk/rpc/env_dpdk.py diff --git a/scripts/rpc/helpers.py b/python/spdk/rpc/helpers.py similarity index 100% rename from scripts/rpc/helpers.py rename to python/spdk/rpc/helpers.py diff --git a/scripts/rpc/idxd.py b/python/spdk/rpc/idxd.py similarity index 100% rename from scripts/rpc/idxd.py rename to python/spdk/rpc/idxd.py diff --git a/scripts/rpc/ioat.py b/python/spdk/rpc/ioat.py similarity index 100% rename from scripts/rpc/ioat.py rename to python/spdk/rpc/ioat.py diff --git a/scripts/rpc/iscsi.py b/python/spdk/rpc/iscsi.py similarity index 100% rename from scripts/rpc/iscsi.py rename to python/spdk/rpc/iscsi.py diff --git a/scripts/rpc/log.py b/python/spdk/rpc/log.py similarity index 100% rename from scripts/rpc/log.py rename to python/spdk/rpc/log.py diff --git a/scripts/rpc/lvol.py b/python/spdk/rpc/lvol.py similarity index 100% rename from scripts/rpc/lvol.py rename to python/spdk/rpc/lvol.py diff --git a/scripts/rpc/nbd.py b/python/spdk/rpc/nbd.py similarity index 100% rename from scripts/rpc/nbd.py rename to python/spdk/rpc/nbd.py diff --git a/scripts/rpc/notify.py b/python/spdk/rpc/notify.py similarity index 100% rename from scripts/rpc/notify.py rename to python/spdk/rpc/notify.py diff --git a/scripts/rpc/nvme.py b/python/spdk/rpc/nvme.py similarity index 100% rename from scripts/rpc/nvme.py rename to python/spdk/rpc/nvme.py diff --git a/scripts/rpc/nvmf.py b/python/spdk/rpc/nvmf.py similarity index 100% rename from scripts/rpc/nvmf.py rename to python/spdk/rpc/nvmf.py diff --git a/scripts/rpc/pmem.py b/python/spdk/rpc/pmem.py similarity index 100% rename from scripts/rpc/pmem.py rename to python/spdk/rpc/pmem.py diff --git a/scripts/rpc/sock.py b/python/spdk/rpc/sock.py similarity index 100% rename from scripts/rpc/sock.py rename to python/spdk/rpc/sock.py diff --git a/scripts/rpc/subsystem.py b/python/spdk/rpc/subsystem.py similarity index 100% rename from scripts/rpc/subsystem.py rename to python/spdk/rpc/subsystem.py diff --git a/scripts/rpc/trace.py b/python/spdk/rpc/trace.py similarity index 100% rename from scripts/rpc/trace.py rename to python/spdk/rpc/trace.py diff --git a/scripts/rpc/vhost.py b/python/spdk/rpc/vhost.py similarity index 100% rename from scripts/rpc/vhost.py rename to python/spdk/rpc/vhost.py diff --git a/scripts/rpc/vmd.py b/python/spdk/rpc/vmd.py similarity index 100% rename from scripts/rpc/vmd.py rename to python/spdk/rpc/vmd.py diff --git a/scripts/spdkcli/__init__.py b/python/spdk/spdkcli/__init__.py similarity index 100% rename from scripts/spdkcli/__init__.py rename to python/spdk/spdkcli/__init__.py diff --git a/scripts/spdkcli/ui_node.py b/python/spdk/spdkcli/ui_node.py similarity index 99% rename from scripts/spdkcli/ui_node.py rename to python/spdk/spdkcli/ui_node.py index f7989994e..f3acb0113 100644 --- a/scripts/spdkcli/ui_node.py +++ b/python/spdk/spdkcli/ui_node.py @@ -1,6 +1,6 @@ from configshell_fb import ConfigNode, ExecutionError from uuid import UUID -from rpc.client import JSONRPCException +from ..rpc.client import JSONRPCException import json diff --git a/scripts/spdkcli/ui_node_iscsi.py b/python/spdk/spdkcli/ui_node_iscsi.py similarity index 99% rename from scripts/spdkcli/ui_node_iscsi.py rename to python/spdk/spdkcli/ui_node_iscsi.py index cb7cbee19..e47660c27 100644 --- a/scripts/spdkcli/ui_node_iscsi.py +++ b/python/spdk/spdkcli/ui_node_iscsi.py @@ -1,5 +1,5 @@ from configshell_fb import ExecutionError -from rpc.client import JSONRPCException +from ..rpc.client import JSONRPCException from .ui_node import UINode diff --git a/scripts/spdkcli/ui_node_nvmf.py b/python/spdk/spdkcli/ui_node_nvmf.py similarity index 99% rename from scripts/spdkcli/ui_node_nvmf.py rename to python/spdk/spdkcli/ui_node_nvmf.py index ccdaa2c08..b54f1c3e6 100644 --- a/scripts/spdkcli/ui_node_nvmf.py +++ b/python/spdk/spdkcli/ui_node_nvmf.py @@ -1,4 +1,4 @@ -from rpc.client import JSONRPCException +from ..rpc.client import JSONRPCException from .ui_node import UINode diff --git a/scripts/spdkcli/ui_root.py b/python/spdk/spdkcli/ui_root.py similarity index 99% rename from scripts/spdkcli/ui_root.py rename to python/spdk/spdkcli/ui_root.py index fabbad6af..33a97059d 100644 --- a/scripts/spdkcli/ui_root.py +++ b/python/spdk/spdkcli/ui_root.py @@ -1,8 +1,7 @@ from .ui_node import UINode, UIBdevs, UILvolStores, UIVhosts from .ui_node_nvmf import UINVMf from .ui_node_iscsi import UIISCSI -import rpc.client -import rpc +from .. import rpc from functools import wraps diff --git a/rpmbuild/spdk.spec b/rpmbuild/spdk.spec index 754abd91a..e3812d9af 100644 --- a/rpmbuild/spdk.spec +++ b/rpmbuild/spdk.spec @@ -33,6 +33,8 @@ Requires: zlib Requires: %(echo "%{requirements_list}") %endif +BuildRequires: python3-devel + %if %{build_requirements} BuildRequires: %(echo "%{build_requirements_list}") %endif @@ -82,6 +84,7 @@ mkdir -p %{buildroot}/usr/libexec/spdk mkdir -p %{buildroot}/etc/bash_completion.d mkdir -p %{buildroot}/etc/profile.d mkdir -p %{buildroot}/etc/ld.so.conf.d +mkdir -p %{buildroot}%{python3_sitelib} cat <<-EOF > %{buildroot}/etc/ld.so.conf.d/spdk.conf /usr/local/lib @@ -96,6 +99,7 @@ export PATH EOF cp -a scripts %{buildroot}/usr/libexec/spdk/scripts +cp -a python/spdk %{buildroot}%{python3_sitelib} ln -s /usr/libexec/spdk/scripts/bash-completion/spdk %{buildroot}/etc/bash_completion.d/ # We need to take into the account the fact that most of the scripts depend on being @@ -111,6 +115,7 @@ ln -s /usr/local/include %{buildroot}/usr/libexec/spdk /etc/bash_completion.d/* /usr/libexec/spdk/* /usr/local/bin/* +%{python3_sitelib}/spdk/* %package devel diff --git a/scripts/iostat.py b/scripts/iostat.py index cb9ebe596..ca21a12ad 100755 --- a/scripts/iostat.py +++ b/scripts/iostat.py @@ -1,10 +1,14 @@ #!/usr/bin/env python3 import logging +import os import sys import argparse import time -import rpc + +sys.path.append(os.path.dirname(__file__) + '/../python') + +import spdk.rpc as rpc # noqa SPDK_CPU_STAT = "/proc/stat" diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index 872c84268..9db1b4d6e 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -17,11 +17,13 @@ from collections import OrderedDict import paramiko import pandas as pd - -import rpc -import rpc.client from common import * +sys.path.append(os.path.dirname(__file__) + '/../../../python') + +import spdk.rpc as rpc # noqa +import spdk.rpc.client as rpc_client # noqa + class Server: def __init__(self, name, general_config, server_config): @@ -1101,7 +1103,7 @@ class SPDKTarget(Target): dif_insert_or_strip=self.dif_insert_strip, sock_priority=self.adq_priority) self.log_print("SPDK NVMeOF transport layer:") - rpc.client.print_dict(rpc.nvmf.nvmf_get_transports(self.client)) + rpc_client.print_dict(rpc.nvmf.nvmf_get_transports(self.client)) if self.null_block: self.spdk_tgt_add_nullblock(self.null_block) @@ -1124,7 +1126,7 @@ class SPDKTarget(Target): rpc.bdev.bdev_null_create(self.client, 102400, block_size + md_size, "Nvme{}n1".format(i), dif_type=self.null_block_dif_type, md_size=md_size) self.log_print("SPDK Bdevs configuration:") - rpc.client.print_dict(rpc.bdev.bdev_get_bdevs(self.client)) + rpc_client.print_dict(rpc.bdev.bdev_get_bdevs(self.client)) def spdk_tgt_add_nvme_conf(self, req_num_disks=None): self.log_print("Adding NVMe bdevs to config via RPC") @@ -1143,7 +1145,7 @@ class SPDKTarget(Target): rpc.bdev.bdev_nvme_attach_controller(self.client, name="Nvme%s" % i, trtype="PCIe", traddr=bdf) self.log_print("SPDK Bdevs configuration:") - rpc.client.print_dict(rpc.bdev.bdev_get_bdevs(self.client)) + rpc_client.print_dict(rpc.bdev.bdev_get_bdevs(self.client)) def spdk_tgt_add_subsystem_conf(self, ips=None, req_num_disks=None): self.log_print("Adding subsystems to config") @@ -1182,7 +1184,7 @@ class SPDKTarget(Target): self.subsystem_info_list.append([port, nqn, ip]) self.log_print("SPDK NVMeOF subsystem configuration:") - rpc.client.print_dict(rpc.nvmf.nvmf_get_subsystems(self.client)) + rpc_client.print_dict(rpc.nvmf.nvmf_get_subsystems(self.client)) def bpf_start(self): self.log_print("Starting BPF Trace scripts: %s" % self.bpf_scripts) @@ -1216,13 +1218,13 @@ class SPDKTarget(Target): if os.path.exists("/var/tmp/spdk.sock"): break time.sleep(1) - self.client = rpc.client.JSONRPCClient("/var/tmp/spdk.sock") + self.client = rpc_client.JSONRPCClient("/var/tmp/spdk.sock") if self.enable_zcopy: rpc.sock.sock_impl_set_options(self.client, impl_name="posix", enable_zerocopy_send_server=True) self.log_print("Target socket options:") - rpc.client.print_dict(rpc.sock.sock_impl_get_options(self.client, impl_name="posix")) + rpc_client.print_dict(rpc.sock.sock_impl_get_options(self.client, impl_name="posix")) if self.enable_adq: rpc.sock.sock_impl_set_options(self.client, impl_name="posix", enable_placement_id=1) diff --git a/scripts/rpc.py b/scripts/rpc.py index 55cee26de..224111ddf 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -1,12 +1,9 @@ #!/usr/bin/env python3 -from rpc.client import print_dict, print_json, JSONRPCException -from rpc.helpers import deprecated_aliases - import logging import argparse import importlib -import rpc +import os import sys import shlex import json @@ -16,6 +13,12 @@ try: except ImportError: from pipes import quote +sys.path.append(os.path.dirname(__file__) + '/../python') + +import spdk.rpc as rpc # noqa +from spdk.rpc.client import print_dict, print_json, JSONRPCException # noqa +from spdk.rpc.helpers import deprecated_aliases # noqa + def print_array(a): print(" ".join((quote(v) for v in a))) diff --git a/scripts/rpc_http_proxy.py b/scripts/rpc_http_proxy.py index 423c94350..2da43c00e 100755 --- a/scripts/rpc_http_proxy.py +++ b/scripts/rpc_http_proxy.py @@ -4,6 +4,7 @@ import argparse import base64 import errno import json +import os import socket import ssl import sys @@ -12,7 +13,10 @@ try: except ImportError: from http.server import HTTPServer from http.server import BaseHTTPRequestHandler -from rpc.client import print_json + +sys.path.append(os.path.dirname(__file__) + '/../python') + +from spdk.rpc.client import print_json # noqa rpc_sock = None diff --git a/scripts/spdkcli.py b/scripts/spdkcli.py index 3d7c63baa..eeb36bacd 100755 --- a/scripts/spdkcli.py +++ b/scripts/spdkcli.py @@ -1,11 +1,15 @@ #!/usr/bin/env python3 +import os import sys import argparse from configshell_fb import ConfigShell, shell, ExecutionError from pyparsing import (alphanums, Optional, Suppress, Word, Regex, removeQuotes, dblQuotedString, OneOrMore) -from rpc.client import JSONRPCException, JSONRPCClient -from spdkcli import UIRoot + +sys.path.append(os.path.dirname(__file__) + '/../python') + +from spdk.rpc.client import JSONRPCException, JSONRPCClient # noqa +from spdk.spdkcli import UIRoot # noqa def add_quotes_to_shell(spdk_shell): diff --git a/test/app/fuzz/common/fuzz_rpc.py b/test/app/fuzz/common/fuzz_rpc.py index 05cb67ed8..27c27b41e 100755 --- a/test/app/fuzz/common/fuzz_rpc.py +++ b/test/app/fuzz/common/fuzz_rpc.py @@ -1,10 +1,10 @@ #!/usr/bin/env python3 -from rpc.client import print_dict, JSONRPCException +from spdk.rpc.client import print_dict, JSONRPCException import logging import argparse -import rpc +import spdk.rpc as rpc import sys import shlex diff --git a/test/bdev/bdevio/tests.py b/test/bdev/bdevio/tests.py index 8b46061d0..6ba764399 100755 --- a/test/bdev/bdevio/tests.py +++ b/test/bdev/bdevio/tests.py @@ -5,8 +5,8 @@ import sys import shlex try: - from rpc.client import print_dict, JSONRPCException - import rpc + from spdk.rpc.client import print_dict, JSONRPCException + import spdk.rpc as rpc except ImportError: print("SPDK RPC library missing. Please add spdk/scripts/ directory to PYTHONPATH:") print("'export PYTHONPATH=$PYTHONPATH:./spdk/scripts/'") diff --git a/test/bdev/bdevperf/bdevperf.py b/test/bdev/bdevperf/bdevperf.py index 178d90c34..5839d33f9 100755 --- a/test/bdev/bdevperf/bdevperf.py +++ b/test/bdev/bdevperf/bdevperf.py @@ -6,8 +6,8 @@ import sys import shlex try: - from rpc.client import print_dict, JSONRPCException - import rpc + from spdk.rpc.client import print_dict, JSONRPCException + import spdk.rpc as rpc except ImportError: print("SPDK RPC library missing. Please add spdk/scripts/ directory to PYTHONPATH:") print("'export PYTHONPATH=$PYTHONPATH:./spdk/scripts/'") diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index b0c2f2592..222029c63 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -171,7 +171,7 @@ export PCI_BLOCK_SYNC_ON_RESET=yes # Export PYTHONPATH with addition of RPC framework. New scripts can be created # specific use cases for tests. -export PYTHONPATH=$PYTHONPATH:$rootdir/scripts +export PYTHONPATH=$PYTHONPATH:$rootdir/python # Don't create Python .pyc files. When running with sudo these will be # created with root ownership and can cause problems when cleaning the repository. diff --git a/test/event/scheduler/scheduler_plugin.py b/test/event/scheduler/scheduler_plugin.py index 46e79070c..608cab286 100644 --- a/test/event/scheduler/scheduler_plugin.py +++ b/test/event/scheduler/scheduler_plugin.py @@ -1,4 +1,4 @@ -from rpc.client import print_json +from spdk.rpc.client import print_json def thread_create(args): diff --git a/test/interrupt/reactor_set_interrupt.sh b/test/interrupt/reactor_set_interrupt.sh index 55f2835e3..a7516331e 100755 --- a/test/interrupt/reactor_set_interrupt.sh +++ b/test/interrupt/reactor_set_interrupt.sh @@ -5,7 +5,7 @@ rootdir=$(readlink -f $testdir/../..) source $rootdir/test/common/autotest_common.sh source $testdir/interrupt_common.sh -export PYTHONPATH=$rootdir/examples/interrupt_tgt +export PYTHONPATH=$PYTHONPATH:$rootdir/examples/interrupt_tgt function reactor_set_intr_mode() { local spdk_pid=$1 diff --git a/test/interrupt/reap_unregistered_poller.sh b/test/interrupt/reap_unregistered_poller.sh index 162de33cf..a2989026a 100755 --- a/test/interrupt/reap_unregistered_poller.sh +++ b/test/interrupt/reap_unregistered_poller.sh @@ -5,7 +5,7 @@ rootdir=$(readlink -f $testdir/../..) source $rootdir/test/common/autotest_common.sh source $testdir/interrupt_common.sh -export PYTHONPATH=$rootdir/examples/interrupt_tgt +export PYTHONPATH=$PYTHONPATH:$rootdir/examples/interrupt_tgt # Set reactors with intr_tgt in intr mode start_intr_tgt diff --git a/test/json_config/clear_config.py b/test/json_config/clear_config.py index 03ddbe0d8..592cfb237 100755 --- a/test/json_config/clear_config.py +++ b/test/json_config/clear_config.py @@ -4,9 +4,8 @@ import os import sys import argparse import logging -sys.path.append(os.path.join(os.path.dirname(__file__), "../../scripts")) -import rpc # noqa -from rpc.client import print_dict, JSONRPCException # noqa +import spdk.rpc as rpc +from spdk.rpc.client import print_dict, JSONRPCException def get_bdev_name_key(bdev): diff --git a/test/nvmf/target/multitarget_rpc.py b/test/nvmf/target/multitarget_rpc.py index c5ccbcece..f01c53745 100755 --- a/test/nvmf/target/multitarget_rpc.py +++ b/test/nvmf/target/multitarget_rpc.py @@ -2,11 +2,11 @@ # Not for use in production. Please see the changelog for v19.10. -from rpc.client import print_dict, JSONRPCException +from spdk.rpc.client import print_dict, JSONRPCException import logging import argparse -import rpc +import spdk.rpc as rpc import sys import shlex diff --git a/test/rpc/rpc.sh b/test/rpc/rpc.sh index 8f02afe28..9e56fa2c3 100755 --- a/test/rpc/rpc.sh +++ b/test/rpc/rpc.sh @@ -42,7 +42,7 @@ spdk_pid=$! trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT waitforlisten $spdk_pid -export PYTHONPATH=$testdir +export PYTHONPATH=$PYTHONPATH:$testdir # basic integrity test rpc=rpc_cmd diff --git a/test/rpc/rpc_plugin.py b/test/rpc/rpc_plugin.py index 18c2d7c51..85d9bdef6 100644 --- a/test/rpc/rpc_plugin.py +++ b/test/rpc/rpc_plugin.py @@ -1,4 +1,4 @@ -from rpc.client import print_json +from spdk.rpc.client import print_json def malloc_create(args):