diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2008-12-20 23:49:59 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2008-12-20 23:49:59 +0000 |
commit | 425cc2679d54ba90d24972356b988252461039bd (patch) | |
tree | 0ed3dfd98a421e05a2a58fb97e1205b486f7f4e2 | |
parent | 45b4a330dcf8a862ab271a50cd7b052a77a2e0db (diff) | |
download | bcfg2-425cc2679d54ba90d24972356b988252461039bd.tar.gz bcfg2-425cc2679d54ba90d24972356b988252461039bd.tar.bz2 bcfg2-425cc2679d54ba90d24972356b988252461039bd.zip |
add initial revision of metadata redesign doc
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4996 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r-- | doc/composable-metadata | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/composable-metadata b/doc/composable-metadata new file mode 100644 index 000000000..29673b315 --- /dev/null +++ b/doc/composable-metadata @@ -0,0 +1,46 @@ +This documents the redesign of the Metadata subsystem. + +Goals +* Separate core metadata (groups, etc) functionality from augmentors +* Enable metadata integration with external data sources +* Make metadata features (group inclusion, categories) usable from + external datasources + +The basic idea of this redesign is to split Metadata functions into +two major components. One master MetadataPlugin instance handles +client identification/authentication, profile assertion, group +categories, and metadata instance construction. Multiple +MetadataConnectorPlugin instances each contribute additional group +memberships and a set of per-instance key/value pairs. This data is +merged into the client metadata instance by the master +MetadataPlugin. + +Use Cases +* Mapping external data into client metadata instances +** Probes +** Properties +** External network management +** Monitoring +** LDAP data + + +API + +* Bcfg2.Server.Core.Core +** get_metadata() +* Bcfg2.Server.Plugin.MetadataPlugin +** add_client() +** remove_client() +** set_profile() +** resolve_client() +** get_initial_metadata() +** merge_additional_metadata() +* Bcfg2.Server.Plugin.MetadataConnectorPlugin +** get_additional_metadata() + +Metadata Resolution Control Flow +1. B.S.P.MP.resolve_client() -> canonical client name +2. B.S.P.MP.get_initial_metadata() -> partial ClientMetadata inst +3. [B.S.P.MCP.get_additional_metadata()] -> + [([group list], {data dictionary})] +4. [B.S.P.MP.merge_additional_metadata()] |