root/trunk/bcfg2/doc/plugin-roles

Revision 5044, 3.6 KB (checked in by solj, 10 months ago)

Add Version plugin type

The following changes were made:

  • Remove VCS logic out of the Core
  • Add Git/Svn plugins
  • Remove config file directive in bcfg2.conf

Use of the plugins are enabled by adding Git or Svn (or both)
to the plugins line of bcfg2.conf

Signed-off-by: Sol Jerome <solj@…>

Line 
1This documents available plugin roles.
2
31) list of plugin roles
4
5| Role          | Class              | Status |
6|---------------+--------------------+--------|
7| Metadata      | Metadata           | done   |
8| Connector     | Connector          | done   |
9| Probing       | Probing            | done   |
10| Structure     | Structure          | done   |
11| Structure Val | StructureValidator | done   |
12| Generator     | Generator          | done   |
13| Goals Val     | GoalValidator      | done   |
14| Statistics    | Statistics         | done   |
15| Pull Source   | PullSource         | done   |
16| Pull Target   | PullTarget         | done   |
17| Version       | Version            | started|
18| Decision      | Decision           | done   |
19| Remote        | Remote             | none   |
20| Syncing       | Syncing            | none   |
21|---------------+--------------------+--------|
22
232) Plugin Capabilities
24
25* Metadata
26** Initial metadata construction
27** Connector data accumulation
28** ClientMetadata instance delivery
29** Introspection interface (for bcfg2-info & co)
30* Connector
31** Provide additional data for ClientMetadata instances
32* Probing
33** send executable probes to clients and receive data responses
34* Structure
35** Produce a list of configuration entries that should be included in
36   client configurations
37** Each structure plugin is produces a list of structures
38** Core verifies that each bundle listed has been constructed
39* Structure Validation
40** Validate a client entry list's internal consistency, modifying if needed
41* Generator
42* Goals Validation
43** Validate client goals, modifying if needed
44* Pull Source
45** Plugin can provide entry information about clients
46* Pull Target
47** Plugin can accept entry data and merge it into the specification
48* Version
49** Plugin can read revision information from VCS of choice
50** Will provide an interface for producing commits made by the
51   bcfg2-server
52* Decision
53
543) Configuration of plugins
55
56Plugin configuration will be simplified substantially. Now, a single
57list of plugins (including plugins of all capabilities) is specified
58upon startup (either via bcfg2.conf or equivalent). This mechanism
59replaces the current split configuration mechanism where generators,
60structures, and other plugins are listed independently. Instead, all
61plugins included in the startup list will be initialized, and each
62will be enabled in all roles that it supports. This will remove a
63current source of confusion and potential configuration errors,
64wherein a plugin is enabled for an improper set of goals. (ie Cfg
65enabled as a structure, etc) This does remove the possibility of
66partially enabling a plugin for one of its roles without activating it
67across the board, but I think this is a corner case, which will be
68poorly supported by plugin implementers. If needed, this use case can
69be explicitly supported by the plugin author, through use of a config
70file directive.
71
724) User Visible Changes
73
74Connector data is added to ClientMetadata instances using the name of
75the connector plugin. This means that the dictionary of key/val probe
76pairs included with metadata is now available as metadata.Probes
77(instead of metadata.probes). Once properties are available the same
78way, they will likewise change names to metadata.Properties from their
79current name.
80
81Plugin configuration will change. A single field "plugins" in
82bcfg2.conf will supercede the combination of the "generators" and
83"structures" fields.
84
85Default loading of needed plugins is now explicit; this means that
86Statistics (if used) should be listed in the plugins line of
87bcfg2.conf.
88
895) Notes
90* Need to ensure bundle accumulation occurs with connector groups
Note: See TracBrowser for help on using the browser.