From be5f7d5b051075866fe4091d77ecc1ea13fea102 Mon Sep 17 00:00:00 2001 From: Luis Gomez Date: Tue, 1 Jun 2021 12:29:09 +0200 Subject: [PATCH 1/6] feature: plugin configuration by file Signed-off-by: Luis Gomez --- aries_cloudagent/config/argparse.py | 30 +++++++++++++++++++ aries_cloudagent/config/default_context.py | 3 +- .../config/tests/test_argparse.py | 28 +++++++++++++++++ .../config/tests/test_plugins_config.yaml | 7 +++++ aries_cloudagent/core/plugin_registry.py | 7 +++-- 5 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 aries_cloudagent/config/tests/test_plugins_config.yaml diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index d7ac977d98..63bebd8244 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -3,6 +3,7 @@ import abc from os import environ +import yaml from configargparse import ArgumentParser, Namespace, YAMLConfigFileParser from typing import Type @@ -477,6 +478,20 @@ def add_arguments(self, parser: ArgumentParser): "instances of this parameter can be specified." ), ) + + parser.add_argument( + "--plugin-config", + dest="plugin_config", + type=str, + required=False, + metavar="", + env_var="ACAPY_PLUGIN_CONFIG", + help=( + "Load as external plugin module config. Multiple " + "instances of this parameter can be specified." + ), + ) + parser.add_argument( "--storage-type", type=str, @@ -545,6 +560,21 @@ def get_settings(self, args: Namespace) -> dict: settings = {} if args.external_plugins: settings["external_plugins"] = args.external_plugins + + if args.plugin_config: + with open(args.plugin_config, 'r') as stream: + plugins_conf = yaml.safe_load(stream) + + if not settings.get("external_plugins"): + settings["external_plugins"] = [] + + settings["plugins_config"] = {} + for plugin in plugins_conf.get("plugins"): + plug_dir = plugin.get("local_directory") + plug_conf = plugin.get("config") + settings["external_plugins"].append(plug_dir) + settings["plugins_config"][plug_dir] = plug_conf + if args.storage_type: settings["storage_type"] = args.storage_type diff --git a/aries_cloudagent/config/default_context.py b/aries_cloudagent/config/default_context.py index 6f0ebc8c66..6506e20dbc 100644 --- a/aries_cloudagent/config/default_context.py +++ b/aries_cloudagent/config/default_context.py @@ -133,4 +133,5 @@ async def load_plugins(self, context: InjectionContext): plugin_registry.register_plugin(plugin_path) # Register message protocols - await plugin_registry.init_context(context) + plugins_config = self.settings.get("plugins_config", {}) + await plugin_registry.init_context(context, plugins_config) diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index a7631174be..143d757a9e 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -173,6 +173,34 @@ async def test_general_settings_file(self): assert settings.get("external_plugins") == ["foo"] assert settings.get("storage_type") == "bar" + async def test_plugin_config_file(self): + """Test file argument parsing.""" + + parser = argparse.create_argument_parser() + group = argparse.GeneralGroup() + group.add_arguments(parser) + + with async_mock.patch.object(parser, "exit") as exit_parser: + parser.parse_args(["-h"]) + exit_parser.assert_called_once() + + result = parser.parse_args( + [ + "--endpoint", + "localhost", + "--plugin-config", + "./aries_cloudagent/config/tests/test_plugins_config.yaml" + ] + ) + + assert result.plugin_config == "./aries_cloudagent/config/tests/test_plugins_config.yaml" + + settings = group.get_settings(result) + + assert settings.get("external_plugins") == ["mock_resolver"] + assert settings.get("plugins_config").get("mock_resolver") ==\ + {"methods": ["sov", "btcr"]} + async def test_transport_settings_file(self): """Test file argument parsing.""" diff --git a/aries_cloudagent/config/tests/test_plugins_config.yaml b/aries_cloudagent/config/tests/test_plugins_config.yaml new file mode 100644 index 0000000000..3a592f3989 --- /dev/null +++ b/aries_cloudagent/config/tests/test_plugins_config.yaml @@ -0,0 +1,7 @@ +plugins: + - plugin_name: Mock Resolver + local_directory: mock_resolver + config: + methods: + - "sov" + - "btcr" \ No newline at end of file diff --git a/aries_cloudagent/core/plugin_registry.py b/aries_cloudagent/core/plugin_registry.py index c345d27ec4..c4d03c12fd 100644 --- a/aries_cloudagent/core/plugin_registry.py +++ b/aries_cloudagent/core/plugin_registry.py @@ -193,11 +193,12 @@ def register_package(self, package_name: str) -> Sequence[ModuleType]: ) ) - async def init_context(self, context: InjectionContext): + async def init_context(self, context: InjectionContext, plugins_config: dict = {}): """Call plugin setup methods on the current context.""" - for plugin in self._plugins.values(): + for key, plugin in self._plugins.items(): if hasattr(plugin, "setup"): - await plugin.setup(context) + plugin_conf = plugins_config.get(key, {}) + await plugin.setup(context, **plugin_conf) else: await self.load_protocols(context, plugin) From b50ed6e1deb880d27fc81078dc0beafd1f79f165 Mon Sep 17 00:00:00 2001 From: Luis Gomez Date: Wed, 2 Jun 2021 11:36:06 +0200 Subject: [PATCH 2/6] refine plugin configuration & test Signed-off-by: Luis Gomez --- aries_cloudagent/config/argparse.py | 12 ++++++----- .../config/tests/test_argparse.py | 21 +++++++++++++++---- .../tests/test_wrong_plugins_config.yaml | 8 +++++++ 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 aries_cloudagent/config/tests/test_wrong_plugins_config.yaml diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index 63bebd8244..8a7dd3ac04 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -484,11 +484,9 @@ def add_arguments(self, parser: ArgumentParser): dest="plugin_config", type=str, required=False, - metavar="", env_var="ACAPY_PLUGIN_CONFIG", help=( - "Load as external plugin module config. Multiple " - "instances of this parameter can be specified." + "Load YAML file path that defines external plugin setup." ), ) @@ -569,9 +567,13 @@ def get_settings(self, args: Namespace) -> dict: settings["external_plugins"] = [] settings["plugins_config"] = {} - for plugin in plugins_conf.get("plugins"): + for plugin in plugins_conf.get("plugins", []): plug_dir = plugin.get("local_directory") - plug_conf = plugin.get("config") + if not plug_dir: + raise ArgsParseError(f"plugin {plugin.get('plugin_name','')} in " + f"plugin-config file has not " + f"'local_directory' key") + plug_conf = plugin.get("config", {}) settings["external_plugins"].append(plug_dir) settings["plugins_config"][plug_dir] = plug_conf diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index 143d757a9e..fb7be1c24b 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -3,6 +3,7 @@ from asynctest import TestCase as AsyncTestCase, mock as async_mock from .. import argparse +from ..error import ArgsParseError from ..util import BoundedInt, ByteSize @@ -180,10 +181,6 @@ async def test_plugin_config_file(self): group = argparse.GeneralGroup() group.add_arguments(parser) - with async_mock.patch.object(parser, "exit") as exit_parser: - parser.parse_args(["-h"]) - exit_parser.assert_called_once() - result = parser.parse_args( [ "--endpoint", @@ -201,6 +198,22 @@ async def test_plugin_config_file(self): assert settings.get("plugins_config").get("mock_resolver") ==\ {"methods": ["sov", "btcr"]} + async def test_wrong_plugin_config_file(self): + """Test file argument parsing.""" + + parser = argparse.create_argument_parser() + group = argparse.GeneralGroup() + group.add_arguments(parser) + result = parser.parse_args( + [ + "--endpoint", + "localhost", + "--plugin-config", + "./aries_cloudagent/config/tests/test_wrong_plugins_config.yaml" + ] + ) + assert result.external_plugins == None + async def test_transport_settings_file(self): """Test file argument parsing.""" diff --git a/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml b/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml new file mode 100644 index 0000000000..d32ee1fb32 --- /dev/null +++ b/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml @@ -0,0 +1,8 @@ +plugins: + - plugin_name: Mock Resolver + # Missing local directory + # local_directory: mock_resolver + config: + methods: + - "sov" + - "btcr" \ No newline at end of file From d7fe44a55cc500263a175584b2e2bc98be1fa40b Mon Sep 17 00:00:00 2001 From: Luis Gomez Date: Wed, 2 Jun 2021 12:04:02 +0200 Subject: [PATCH 3/6] black reformat Signed-off-by: Luis Gomez --- aries_cloudagent/config/argparse.py | 14 +++++++------- aries_cloudagent/config/tests/test_argparse.py | 14 +++++++++----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index 8a7dd3ac04..e6da581d26 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -485,9 +485,7 @@ def add_arguments(self, parser: ArgumentParser): type=str, required=False, env_var="ACAPY_PLUGIN_CONFIG", - help=( - "Load YAML file path that defines external plugin setup." - ), + help=("Load YAML file path that defines external plugin setup."), ) parser.add_argument( @@ -560,7 +558,7 @@ def get_settings(self, args: Namespace) -> dict: settings["external_plugins"] = args.external_plugins if args.plugin_config: - with open(args.plugin_config, 'r') as stream: + with open(args.plugin_config, "r") as stream: plugins_conf = yaml.safe_load(stream) if not settings.get("external_plugins"): @@ -570,9 +568,11 @@ def get_settings(self, args: Namespace) -> dict: for plugin in plugins_conf.get("plugins", []): plug_dir = plugin.get("local_directory") if not plug_dir: - raise ArgsParseError(f"plugin {plugin.get('plugin_name','')} in " - f"plugin-config file has not " - f"'local_directory' key") + raise ArgsParseError( + f"plugin {plugin.get('plugin_name','')} in " + f"plugin-config file has not " + f"'local_directory' key" + ) plug_conf = plugin.get("config", {}) settings["external_plugins"].append(plug_dir) settings["plugins_config"][plug_dir] = plug_conf diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index fb7be1c24b..2572795768 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -186,17 +186,21 @@ async def test_plugin_config_file(self): "--endpoint", "localhost", "--plugin-config", - "./aries_cloudagent/config/tests/test_plugins_config.yaml" + "./aries_cloudagent/config/tests/test_plugins_config.yaml", ] ) - assert result.plugin_config == "./aries_cloudagent/config/tests/test_plugins_config.yaml" + assert ( + result.plugin_config + == "./aries_cloudagent/config/tests/test_plugins_config.yaml" + ) settings = group.get_settings(result) assert settings.get("external_plugins") == ["mock_resolver"] - assert settings.get("plugins_config").get("mock_resolver") ==\ - {"methods": ["sov", "btcr"]} + assert settings.get("plugins_config").get("mock_resolver") == { + "methods": ["sov", "btcr"] + } async def test_wrong_plugin_config_file(self): """Test file argument parsing.""" @@ -209,7 +213,7 @@ async def test_wrong_plugin_config_file(self): "--endpoint", "localhost", "--plugin-config", - "./aries_cloudagent/config/tests/test_wrong_plugins_config.yaml" + "./aries_cloudagent/config/tests/test_wrong_plugins_config.yaml", ] ) assert result.external_plugins == None From 2073b35716a7359946fbc3f1f677e3a873c329a1 Mon Sep 17 00:00:00 2001 From: Luis Gomez Date: Thu, 3 Jun 2021 11:17:02 +0200 Subject: [PATCH 4/6] plugin config setted in context.settings Signed-off-by: Luis Gomez --- aries_cloudagent/config/argparse.py | 15 ++++----------- aries_cloudagent/config/tests/test_argparse.py | 16 ---------------- .../config/tests/test_plugins_config.yaml | 7 ++----- .../config/tests/test_wrong_plugins_config.yaml | 8 -------- aries_cloudagent/core/plugin_registry.py | 5 +++-- 5 files changed, 9 insertions(+), 42 deletions(-) delete mode 100644 aries_cloudagent/config/tests/test_wrong_plugins_config.yaml diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index e6da581d26..7cbd8a5fdc 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -565,17 +565,10 @@ def get_settings(self, args: Namespace) -> dict: settings["external_plugins"] = [] settings["plugins_config"] = {} - for plugin in plugins_conf.get("plugins", []): - plug_dir = plugin.get("local_directory") - if not plug_dir: - raise ArgsParseError( - f"plugin {plugin.get('plugin_name','')} in " - f"plugin-config file has not " - f"'local_directory' key" - ) - plug_conf = plugin.get("config", {}) - settings["external_plugins"].append(plug_dir) - settings["plugins_config"][plug_dir] = plug_conf + for plugin, conf in plugins_conf.items(): + + settings["external_plugins"].append(plugin) + settings["plugins_config"][plugin] = conf if args.storage_type: settings["storage_type"] = args.storage_type diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index 2572795768..f3b87aa10d 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -202,22 +202,6 @@ async def test_plugin_config_file(self): "methods": ["sov", "btcr"] } - async def test_wrong_plugin_config_file(self): - """Test file argument parsing.""" - - parser = argparse.create_argument_parser() - group = argparse.GeneralGroup() - group.add_arguments(parser) - result = parser.parse_args( - [ - "--endpoint", - "localhost", - "--plugin-config", - "./aries_cloudagent/config/tests/test_wrong_plugins_config.yaml", - ] - ) - assert result.external_plugins == None - async def test_transport_settings_file(self): """Test file argument parsing.""" diff --git a/aries_cloudagent/config/tests/test_plugins_config.yaml b/aries_cloudagent/config/tests/test_plugins_config.yaml index 3a592f3989..eb2c7dec95 100644 --- a/aries_cloudagent/config/tests/test_plugins_config.yaml +++ b/aries_cloudagent/config/tests/test_plugins_config.yaml @@ -1,7 +1,4 @@ -plugins: - - plugin_name: Mock Resolver - local_directory: mock_resolver - config: - methods: +mock_resolver: + methods: - "sov" - "btcr" \ No newline at end of file diff --git a/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml b/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml deleted file mode 100644 index d32ee1fb32..0000000000 --- a/aries_cloudagent/config/tests/test_wrong_plugins_config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -plugins: - - plugin_name: Mock Resolver - # Missing local directory - # local_directory: mock_resolver - config: - methods: - - "sov" - - "btcr" \ No newline at end of file diff --git a/aries_cloudagent/core/plugin_registry.py b/aries_cloudagent/core/plugin_registry.py index c4d03c12fd..202755acd6 100644 --- a/aries_cloudagent/core/plugin_registry.py +++ b/aries_cloudagent/core/plugin_registry.py @@ -197,8 +197,9 @@ async def init_context(self, context: InjectionContext, plugins_config: dict = { """Call plugin setup methods on the current context.""" for key, plugin in self._plugins.items(): if hasattr(plugin, "setup"): - plugin_conf = plugins_config.get(key, {}) - await plugin.setup(context, **plugin_conf) + plugin_conf = plugins_config.get(key) + context.update_settings({"plugin_conf": plugin_conf}) + await plugin.setup(context) else: await self.load_protocols(context, plugin) From 63bfd6fe2c87928e8b09528db5affb00ae412458 Mon Sep 17 00:00:00 2001 From: Luis Gomez Date: Fri, 4 Jun 2021 12:04:23 +0200 Subject: [PATCH 5/6] simplify the settings flow & plugins-config subordination to the plugin argument Signed-off-by: Luis Gomez --- aries_cloudagent/config/argparse.py | 30 +++++++++++-------- aries_cloudagent/config/default_context.py | 3 +- .../config/tests/test_argparse.py | 6 ++-- aries_cloudagent/core/plugin_registry.py | 8 +++-- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index 7cbd8a5fdc..163caa3ef4 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -480,12 +480,16 @@ def add_arguments(self, parser: ArgumentParser): ) parser.add_argument( - "--plugin-config", - dest="plugin_config", + "--plugins-config", + dest="plugins_config", type=str, required=False, - env_var="ACAPY_PLUGIN_CONFIG", - help=("Load YAML file path that defines external plugin setup."), + env_var="ACAPY_PLUGINS_CONFIG", + help="Load YAML file path that defines external plugins configuration. " + "The plugin should be loaded first by --plugin arg. " + "Then the config file must be a key-value mapping. " + "The key is the plugin argument and " + "the value of the specific configuration for that plugin.", ) parser.add_argument( @@ -557,18 +561,18 @@ def get_settings(self, args: Namespace) -> dict: if args.external_plugins: settings["external_plugins"] = args.external_plugins - if args.plugin_config: - with open(args.plugin_config, "r") as stream: - plugins_conf = yaml.safe_load(stream) + if args.plugins_config: + with open(args.plugins_config, "r") as stream: + plugins_conf = yaml.safe_load(stream) - if not settings.get("external_plugins"): - settings["external_plugins"] = [] + plugins_config = {} + for plugin, conf in plugins_conf.items(): - settings["plugins_config"] = {} - for plugin, conf in plugins_conf.items(): + if plugin in settings["external_plugins"]: + plugins_config[plugin] = conf - settings["external_plugins"].append(plugin) - settings["plugins_config"][plugin] = conf + if plugins_config: + settings["plugins_config"] = plugins_config if args.storage_type: settings["storage_type"] = args.storage_type diff --git a/aries_cloudagent/config/default_context.py b/aries_cloudagent/config/default_context.py index 6506e20dbc..6f0ebc8c66 100644 --- a/aries_cloudagent/config/default_context.py +++ b/aries_cloudagent/config/default_context.py @@ -133,5 +133,4 @@ async def load_plugins(self, context: InjectionContext): plugin_registry.register_plugin(plugin_path) # Register message protocols - plugins_config = self.settings.get("plugins_config", {}) - await plugin_registry.init_context(context, plugins_config) + await plugin_registry.init_context(context) diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index f3b87aa10d..94d48e01c6 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -185,13 +185,15 @@ async def test_plugin_config_file(self): [ "--endpoint", "localhost", - "--plugin-config", + "--plugin", + "mock_resolver", + "--plugins-config", "./aries_cloudagent/config/tests/test_plugins_config.yaml", ] ) assert ( - result.plugin_config + result.plugins_config == "./aries_cloudagent/config/tests/test_plugins_config.yaml" ) diff --git a/aries_cloudagent/core/plugin_registry.py b/aries_cloudagent/core/plugin_registry.py index 202755acd6..39bbd5d237 100644 --- a/aries_cloudagent/core/plugin_registry.py +++ b/aries_cloudagent/core/plugin_registry.py @@ -193,13 +193,15 @@ def register_package(self, package_name: str) -> Sequence[ModuleType]: ) ) - async def init_context(self, context: InjectionContext, plugins_config: dict = {}): + async def init_context(self, context: InjectionContext): """Call plugin setup methods on the current context.""" + plugins_config = context.settings.get("plugins_config", {}) + context.update_settings({"plugins_config": None}) for key, plugin in self._plugins.items(): if hasattr(plugin, "setup"): - plugin_conf = plugins_config.get(key) - context.update_settings({"plugin_conf": plugin_conf}) + context.update_settings({"plugin_config": plugins_config.get(key)}) await plugin.setup(context) + context.update_settings({"plugin_config": None}) else: await self.load_protocols(context, plugin) From d925877a0a43df1a56a5a82f70f450e947efecf7 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Sat, 5 Jun 2021 21:27:07 -0400 Subject: [PATCH 6/6] refactor: simplify plugin configuration Signed-off-by: Daniel Bluhm --- aries_cloudagent/config/argparse.py | 27 +++++++------------ .../config/tests/test_argparse.py | 9 +++---- aries_cloudagent/core/plugin_registry.py | 6 +---- 3 files changed, 13 insertions(+), 29 deletions(-) diff --git a/aries_cloudagent/config/argparse.py b/aries_cloudagent/config/argparse.py index 163caa3ef4..07506475c9 100644 --- a/aries_cloudagent/config/argparse.py +++ b/aries_cloudagent/config/argparse.py @@ -480,16 +480,16 @@ def add_arguments(self, parser: ArgumentParser): ) parser.add_argument( - "--plugins-config", - dest="plugins_config", + "--plugin-config", + dest="plugin_config", type=str, required=False, env_var="ACAPY_PLUGINS_CONFIG", help="Load YAML file path that defines external plugins configuration. " - "The plugin should be loaded first by --plugin arg. " - "Then the config file must be a key-value mapping. " - "The key is the plugin argument and " - "the value of the specific configuration for that plugin.", + "The plugin should be loaded first by --plugin arg. " + "Then the config file must be a key-value mapping. " + "The key is the plugin argument and " + "the value of the specific configuration for that plugin.", ) parser.add_argument( @@ -561,18 +561,9 @@ def get_settings(self, args: Namespace) -> dict: if args.external_plugins: settings["external_plugins"] = args.external_plugins - if args.plugins_config: - with open(args.plugins_config, "r") as stream: - plugins_conf = yaml.safe_load(stream) - - plugins_config = {} - for plugin, conf in plugins_conf.items(): - - if plugin in settings["external_plugins"]: - plugins_config[plugin] = conf - - if plugins_config: - settings["plugins_config"] = plugins_config + if args.plugin_config: + with open(args.plugin_config, "r") as stream: + settings["plugin_config"] = yaml.safe_load(stream) if args.storage_type: settings["storage_type"] = args.storage_type diff --git a/aries_cloudagent/config/tests/test_argparse.py b/aries_cloudagent/config/tests/test_argparse.py index 94d48e01c6..1d1325dc0f 100644 --- a/aries_cloudagent/config/tests/test_argparse.py +++ b/aries_cloudagent/config/tests/test_argparse.py @@ -185,22 +185,19 @@ async def test_plugin_config_file(self): [ "--endpoint", "localhost", - "--plugin", - "mock_resolver", - "--plugins-config", + "--plugin-config", "./aries_cloudagent/config/tests/test_plugins_config.yaml", ] ) assert ( - result.plugins_config + result.plugin_config == "./aries_cloudagent/config/tests/test_plugins_config.yaml" ) settings = group.get_settings(result) - assert settings.get("external_plugins") == ["mock_resolver"] - assert settings.get("plugins_config").get("mock_resolver") == { + assert settings.get("plugin_config").get("mock_resolver") == { "methods": ["sov", "btcr"] } diff --git a/aries_cloudagent/core/plugin_registry.py b/aries_cloudagent/core/plugin_registry.py index 39bbd5d237..c345d27ec4 100644 --- a/aries_cloudagent/core/plugin_registry.py +++ b/aries_cloudagent/core/plugin_registry.py @@ -195,13 +195,9 @@ def register_package(self, package_name: str) -> Sequence[ModuleType]: async def init_context(self, context: InjectionContext): """Call plugin setup methods on the current context.""" - plugins_config = context.settings.get("plugins_config", {}) - context.update_settings({"plugins_config": None}) - for key, plugin in self._plugins.items(): + for plugin in self._plugins.values(): if hasattr(plugin, "setup"): - context.update_settings({"plugin_config": plugins_config.get(key)}) await plugin.setup(context) - context.update_settings({"plugin_config": None}) else: await self.load_protocols(context, plugin)