Opened 8 years ago

Closed 6 years ago

#2263 closed task (wontfix)

be able to select cfgmgr plugins

Reported by: jreed Owned by:
Priority: medium Milestone: Remaining BIND10 tickets
Component: configuration Version: bind10-old
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: Core Feature Depending on Ticket:
Estimated Difficulty: need plan or info Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

Maybe allow the admin to enable/disable cfgmgr plugins.

Or maybe even the loading (and unloading) of a specific plugin can be automated, such as when a user of the plugin is started (or stopped). For example if b10-auth starts, then the cfgmgr can be told that the data_sources plugin is needed?

Currently the configurations are always available not matter if they aren't needed; for example the DNS specific code is loaded even if running a DHCP server only.

It is loaded at startup and plugins can't currently be unloaded. It just looks in a directory and loads everything there. For example, share/bind10-devel/config_plugins/ currently contains b10logging, datasrc_config_plugin, and tsig_keys.

I don't know if it is possible to never load the b10logging plugin, but the others could be skipped.

Also while here consider using a consistent naming scheme for these plugin files. Even their corresponding spec files may have different base names.

Subtickets

Change History (5)

comment:1 Changed 8 years ago by vorner

I think we want to think about this in much broader topic. It probably could be
hacked to enable or disable the configurations somehow (though probably not by
not loading the plugin, we wan't to have a look inside to know what it serves).
But that would be another ad-hoc hack on top of the plugins hack (yes, the
current implementation was a proof of concept thing I wrote in something like 3
hours).

However, we want to have a new configuration guts. Also, I'd very much like to
have „nested“ spec files ‒ so a module or hook or something can place a bit of
it's configuration somewhere deeper, not just the top level. Some on-demand
loading could be considered too, I think. But I'd very much like to see
configuration of things that are not currently running on the other hand.

comment:2 Changed 7 years ago by shane

  • Milestone New Tasks deleted

comment:3 Changed 7 years ago by jreed

Also the plugins are installed by default when installing cfgmgr. So if the python isc.dns is not installed, then you get problems like:

Traceback (most recent call last):
  File "/usr/libexec/bind10/b10-cfgmgr", line 131, in <module>
    sys.exit(main())
  File "/usr/libexec/bind10/b10-cfgmgr", line 117, in main
    load_plugins(ppath, cm)
  File "/usr/libexec/bind10/b10-cfgmgr", line 76, in load_plugins
    module = imp.load_source(name, plugin)
  File "/usr/lib64/python3.3/imp.py", line 109, in load_source
    return _LoadSourceCompatibility(name, pathname, file).load_module(name)
  File "<frozen importlib._bootstrap>", line 586, in _check_name_wrapper
  File "<frozen importlib._bootstrap>", line 1023, in load_module
  File "<frozen importlib._bootstrap>", line 1004, in load_module
  File "<frozen importlib._bootstrap>", line 562, in module_for_loader_wrapper
  File "<frozen importlib._bootstrap>", line 869, in _load_module
  File "<frozen importlib._bootstrap>", line 313, in _call_with_frames_removed
  File "/usr/share/bind10/config_plugins/datasrc_config_plugin.py", line 19, in <module>
    import isc.dns
ImportError: No module named 'isc.dns'

We should also have feature to selectively install the plugins too (not just enabling).

comment:4 Changed 6 years ago by tomek

  • Milestone set to Remaining BIND10 tickets

comment:5 Changed 6 years ago by tomek

  • Resolution set to wontfix
  • Status changed from new to closed
  • Version set to old-bind10

This issue is related to bind10 code that is no longer part of Kea.

If you are interested in BIND10/Bundy framework or its DNS components,
please check http://bundy-dns.de.

Closing ticket.

Note: See TracTickets for help on using tickets.