Spdk/scripts/sma.py
sberbz f0f65d240d sma: make SMA parameters configurable
It's now possible to specify the gRPC interface listen address and the
SPDK-RPC socket path.

Change-Id: I957cf4ca4e03eac6f4f6f7ffab5ee95c5b6f7521
Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10979
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-05-18 07:24:06 +00:00

43 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
from argparse import ArgumentParser
import logging
import os
import sys
sys.path.append(os.path.dirname(__file__) + '/../python')
import spdk.sma as sma # noqa
from spdk.rpc.client import JSONRPCClient # noqa
def parse_argv():
parser = ArgumentParser(description='Storage Management Agent command line interface')
parser.add_argument('--address', '-a', default='localhost',
help='IP address to listen on')
parser.add_argument('--socket', '-s', default='/var/tmp/spdk.sock',
help='SPDK RPC socket')
parser.add_argument('--port', '-p', default=8080, type=int,
help='IP port to listen on')
return parser.parse_args()
def get_build_client(sock):
def build_client():
return JSONRPCClient(sock)
return build_client
def register_device(agent, device):
device.init(None)
agent.register_device(device)
if __name__ == '__main__':
argv = parse_argv()
logging.basicConfig(level=os.environ.get('SMA_LOGLEVEL', 'WARNING').upper())
agent = sma.StorageManagementAgent(argv.address, argv.port)
register_device(agent, sma.NvmfTcpDeviceManager(get_build_client(argv.socket)))
agent.run()