From d2bd788bdbe51463f82fda61d32d822e8c7a396e Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Sat, 10 Jan 2009 15:19:13 +0000 Subject: More Plugin rework (Structure Validator implementation complete) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5007 ce84e21b-d406-0410-9b95-82705330c041 --- doc/1.0-roadmap | 10 +++++----- doc/plugin-roles | 34 ++++++++++++++++++++++++---------- 2 files changed, 29 insertions(+), 15 deletions(-) (limited to 'doc') diff --git a/doc/1.0-roadmap b/doc/1.0-roadmap index 2d90d6f66..dc2236879 100644 --- a/doc/1.0-roadmap +++ b/doc/1.0-roadmap @@ -1,12 +1,12 @@ This document details the major work needed before Bcfg2 is ready for -a 1.0 release. +a 1.0 release. The high-level goal for 1.0 is to fix long-standing +architecture warts and provide a reasonable internal API for the +server. * Goals for 1.0 ** Fix the POSIX path problem ** Build a comprehensive server plugin architecture -*** Metadata Connectors (done) -*** Multi-stats -*** Structure Verifier/Modifier -*** Configuration Validator/Modifier +*** see plugin-roles for details and implementation status ** Version Control Backend ** Clean up client/server statistics data format +** Multithreaded server (sync from Cobalt) diff --git a/doc/plugin-roles b/doc/plugin-roles index d34a88c77..5d072dcbd 100644 --- a/doc/plugin-roles +++ b/doc/plugin-roles @@ -18,13 +18,27 @@ This documents available plugin roles. | Syncing | Syncing | none | |---------------+--------------------+---------------| - -2) Configuration of plugins - -3) Implementation Plan - -* Switch Plugin.__name__ => Plugin.name (Fix spurious pylint errors) [done] -* Switch all plugins to new class hierarchy [done] -* Fix Core to use memberships in new classes - - +2) Interactions between plugins and the core +* Metadata Construction +** Get Base Metadata from (single) Metadata plugin instance +** Get additional data from each Connector plugin instance +** Merge in additional connector data into single ClientMetadata instance +* + +3) Configuration of plugins + +Plugin configuration will be simplified substantially. Now, a single +list of plugins (including plugins of all capabilities) is specified +upon startup (either via bcfg2.conf or equivalent). This mechanism +replaces the current split configuration mechanism where generators, +structures, and other plugins are listed independently. Instead, all +plugins included in the startup list will be initialized, and each +will be enabled in all roles that it supports. This will remove a +current source of confusion and potential configuration errors, +wherein a plugin is enabled for an improper set of goals. (ie Cfg +enabled as a structure, etc) This does remove the possibility of +partially enabling a plugin for one of its roles without activating it +across the board, but I think this is a corner case, which will be +poorly supported by plugin implementers. If needed, this use case can +be explicitly supported by the plugin author, through use of a config +file directive. -- cgit v1.2.3-1-g7c22