Modules can implement a second, separate class
that has access to very little state about the
system and can't implement commands.
They have just enough information to redirect
or forward incoming requests/traffic to the
active instance of the module on the active mgr.
This enables module authors to create modules
that end users can access via any (running) mgr node
at any time, rather than having to first work out
which mgr node is active.
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit
25566d1edca638bd15b3ba3326ee7e4d3e573cbb)
mgr/DaemonServer.cc
mgr/ClusterState.cc
mgr/ActivePyModules.cc
+ mgr/StandbyPyModules.cc
mgr/PyModuleRegistry.cc
mgr/PyFormatter.cc
mgr/PyOSDMap.cc
mgr/BaseMgrModule.cc
+ mgr/BaseMgrStandbyModule.cc
mgr/ActivePyModule.cc
mgr/MgrStandby.cc
mgr/Mgr.cc