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>
This commit is contained in:
parent
e5e43f9615
commit
f0f65d240d
@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from argparse import ArgumentParser
|
||||
import grpc
|
||||
import google.protobuf.json_format as json_format
|
||||
import json
|
||||
@ -38,8 +39,18 @@ class Client:
|
||||
preserving_proto_field_name=True)
|
||||
|
||||
|
||||
def parse_argv():
|
||||
parser = ArgumentParser(description='Storage Management Agent client')
|
||||
parser.add_argument('--address', '-a', default='localhost',
|
||||
help='IP address of SMA instance to connect to')
|
||||
parser.add_argument('--port', '-p', default=8080, type=int,
|
||||
help='Port number of SMA instance to connect to')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main(args):
|
||||
client = Client('localhost', 8080)
|
||||
argv = parse_argv()
|
||||
client = Client(argv.address, argv.port)
|
||||
request = json.loads(sys.stdin.read())
|
||||
result = client.call(request['method'], request.get('params', {}))
|
||||
print(json.dumps(result, indent=2))
|
||||
|
@ -11,8 +11,22 @@ import spdk.sma as sma # noqa
|
||||
from spdk.rpc.client import JSONRPCClient # noqa
|
||||
|
||||
|
||||
def build_client():
|
||||
return JSONRPCClient('/var/tmp/spdk.sock')
|
||||
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):
|
||||
@ -21,7 +35,8 @@ def register_device(agent, device):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
argv = parse_argv()
|
||||
logging.basicConfig(level=os.environ.get('SMA_LOGLEVEL', 'WARNING').upper())
|
||||
agent = sma.StorageManagementAgent('localhost', 8080)
|
||||
register_device(agent, sma.NvmfTcpDeviceManager(build_client))
|
||||
agent = sma.StorageManagementAgent(argv.address, argv.port)
|
||||
register_device(agent, sma.NvmfTcpDeviceManager(get_build_client(argv.socket)))
|
||||
agent.run()
|
||||
|
Loading…
Reference in New Issue
Block a user