Changes between Version 6 and Version 7 of ConfigRollback


Ignore:
Timestamp:
Feb 21, 2017, 1:06:00 PM (9 months ago)
Author:
tmark
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ConfigRollback

    v6 v7  
    3131D2 can receive a signal and reload its configuration. There is a plan to implement control channel for D2.
    3232
    33 When receiving new configuration (currently the only was to do it is to use command line parameter or send a signal to re-read existing configuration), the D2Process::configure() is called (see src/bin/d2/d2_process.cc). Much of the configuration change parsing is done in completely generic way in DCfgMgrBase. This is definitely a plus. On the drawback side, there is no recovery. If exception is thrown, the code reports failure, but does not try to revert back to the old configuration (e.g. doesn't reopen old sockets).
     33When receiving new configuration (currently the only was to do it is to use command line parameter or send a signal to re-read existing configuration), the D2Process::configure() is called (see src/bin/d2/d2_process.cc). Much of the configuration change parsing is done in completely generic way in DCfgMgrBase. This is definitely a plus and it also has the mechanisms to revert to the original configuration if the new configuration does not parse correctly. On the drawback side, there is np recovery from a "runtime" error such as a port that is already in use or an IP address that does not exist.o. If exception is thrown, the code reports failure, but does not try to revert back to the old configuration (e.g. doesn't reopen old sockets).
    3434
    3535D2 doesn't seem to have any way to test its configuration.
     
    51511. dhcp::!CfgMgr contains quite a few parameters (echo client-id, data-dir, ddns-enabled etc). Those are should be migrated to !SrvConfig.
    52521. The DCfgMgrBase::parseConfig method splits configuration parameters into params_map and objects_map. This is not necessary and introduces extra intermediate storage - that's something the refactoring in 1.2 eliminated in DHCP components. This part of the D2 configuration should be refactored away. CA seems to be a good example of how to parse configuration without any additional intermediate storage.
    53 1. The naming convention in libprocess and D2 does not follow Kea coding guidelines. What does the initial D stands for?
     531. The naming convention in libprocess and D2 does not follow Kea coding guidelines. What does the initial D stands for?  (At the time I wrote the CPL I hadn't given it a clever acronym nor was it in a separate library and in a misguided effort to group the components together I latched onto prefixing their class names with a "D".  It could just have easily been Q or Z but there you have it. - Thomas)
    54541. The configuration handling in libprocess should be updated to follow this logic:
    5555{{{