mwatts@redhat.com has uploaded this change for review.

View Change

CONFIG: %plugin architectyure

This is a mechanism to load in code to read in custom configuration and
using that to augment the actions of fsals on a per-export basis.

Included is logic so that a plugin can request to handle configuration at a
"global" level. After the plugin registers itself, at the appropriate
time, logic in main will call back into the plugin giving it the chance
to find and claim its configuration bits.

Also included is logic to allow custom configuration values per-export.
This uses the "CONFIG_RELAX" mechanism in config to parse the export block
several times: first time is to pick up the standard options including
the mandatory "export_id" parameter. The second (and optional) pass
can be made by extension plugins. Those passes must capture export_id if
they want to locate the corresponding gsh_export structure. The last
pass accepts no parameters, it runs without CONFIG_RELAX to verify all
parameters were "found".

Also included is a "callback" mechanism so that extensions
can implement configuration changes after the root object is set.
If the callback indicates failure, the export is not made available.

Change-Id: Ibdae1aa89250a1992faaf711efd2de03264365c8
Signed-off-by: Marcus Watts <mwatts@redhat.com>
---
M src/CMakeLists.txt
M src/MainNFSD/libganesha_nfsd.ver
M src/MainNFSD/nfs_init.c
M src/MainNFSD/nfs_main.c
A src/PLUGIN/CMakeLists.txt
M src/config_parsing/conf_lex.l
M src/config_parsing/conf_url.c
M src/config_parsing/conf_url_rados.c
M src/include/conf_url.h
M src/include/export_mgr.h
M src/support/export_mgr.c
M src/support/exports.c
12 files changed, 518 insertions(+), 10 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/97/1221497/1

To view, visit change 1221497. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ibdae1aa89250a1992faaf711efd2de03264365c8
Gerrit-Change-Number: 1221497
Gerrit-PatchSet: 1
Gerrit-Owner: mwatts@redhat.com