sma: loading out-of-tree plugins in sma-client
Change-Id: I7813a31060af7b2f9aea1b0a0d99fb699670509a Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com> Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11667 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
93a20e79ec
commit
d045916f65
@ -3,7 +3,9 @@
|
||||
from argparse import ArgumentParser
|
||||
import grpc
|
||||
import google.protobuf.json_format as json_format
|
||||
import importlib
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
@ -39,6 +41,12 @@ class Client:
|
||||
preserving_proto_field_name=True)
|
||||
|
||||
|
||||
def load_plugins(plugins):
|
||||
for plugin in plugins:
|
||||
logging.debug(f'Loading external plugin: {plugin}')
|
||||
module = importlib.import_module(plugin)
|
||||
|
||||
|
||||
def parse_argv():
|
||||
parser = ArgumentParser(description='Storage Management Agent client')
|
||||
parser.add_argument('--address', '-a', default='localhost',
|
||||
@ -50,6 +58,8 @@ def parse_argv():
|
||||
|
||||
def main(args):
|
||||
argv = parse_argv()
|
||||
logging.basicConfig(level=os.environ.get('SMA_LOGLEVEL', 'WARNING').upper())
|
||||
load_plugins(filter(None, os.environ.get('SMA_PLUGINS', '').split(':')))
|
||||
client = Client(argv.address, argv.port)
|
||||
request = json.loads(sys.stdin.read())
|
||||
result = client.call(request['method'], request.get('params', {}))
|
||||
|
Loading…
Reference in New Issue
Block a user