Commit d045916f authored by Sebastian Brzezinka's avatar Sebastian Brzezinka Committed by Tomasz Zawadzki
Browse files

sma: loading out-of-tree plugins in sma-client



Change-Id: I7813a31060af7b2f9aea1b0a0d99fb699670509a
Signed-off-by: default avatarSebastian Brzezinka <sebastian.brzezinka@intel.com>
Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11667


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 93a20e79
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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', {}))