mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-04-25 22:32:32 -07:00
make pubsub topics configurable
Also for pubsub trips back to CV1/CV2, rather than having 2 queues for each service (networks & members), theres now only a single queue for each change type, and `frontend = (cv1|cv2)` attribute is set on the message for filtering.
This commit is contained in:
parent
cb2de5aae1
commit
6113bad61e
10 changed files with 74 additions and 50 deletions
|
|
@ -4,12 +4,14 @@
|
|||
|
||||
namespace ZeroTier {
|
||||
|
||||
PubSubChangeNotifier::PubSubChangeNotifier(std::string controllerID, std::string project)
|
||||
PubSubChangeNotifier::PubSubChangeNotifier(
|
||||
std::string controllerID,
|
||||
std::string project,
|
||||
std::string memberChangeTopic,
|
||||
std::string networkChangeTopic)
|
||||
: ControllerChangeNotifier()
|
||||
, _cv1networkChangeWriter(std::make_shared<PubSubWriter>(project, "ctl-to-cv1-network-change-stream", controllerID))
|
||||
, _cv1memberChangeWriter(std::make_shared<PubSubWriter>(project, "ctl-to-cv1-member-change-stream", controllerID))
|
||||
, _cv2networkChangeWriter(std::make_shared<PubSubWriter>(project, "ctl-to-cv2-network-change-stream", controllerID))
|
||||
, _cv2memberChangeWriter(std::make_shared<PubSubWriter>(project, "ctl-to-cv2-member-change-stream", controllerID))
|
||||
, _networkChangeWriter(std::make_shared<PubSubWriter>(project, networkChangeTopic, controllerID))
|
||||
, _memberChangeWriter(std::make_shared<PubSubWriter>(project, memberChangeTopic, controllerID))
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -22,15 +24,7 @@ void PubSubChangeNotifier::notifyNetworkChange(
|
|||
const nlohmann::json& newNetwork,
|
||||
const std::string& frontend)
|
||||
{
|
||||
if (frontend == "cv1") {
|
||||
_cv1networkChangeWriter->publishNetworkChange(oldNetwork, newNetwork);
|
||||
}
|
||||
else if (frontend == "cv2") {
|
||||
_cv2networkChangeWriter->publishNetworkChange(oldNetwork, newNetwork);
|
||||
}
|
||||
else {
|
||||
throw std::runtime_error("Unknown frontend: " + frontend);
|
||||
}
|
||||
_networkChangeWriter->publishNetworkChange(oldNetwork, newNetwork, frontend);
|
||||
}
|
||||
|
||||
void PubSubChangeNotifier::notifyMemberChange(
|
||||
|
|
@ -38,15 +32,7 @@ void PubSubChangeNotifier::notifyMemberChange(
|
|||
const nlohmann::json newMember,
|
||||
const std::string& frontend)
|
||||
{
|
||||
if (frontend == "cv1") {
|
||||
_cv1memberChangeWriter->publishMemberChange(oldMember, newMember);
|
||||
}
|
||||
else if (frontend == "cv2") {
|
||||
_cv2memberChangeWriter->publishMemberChange(oldMember, newMember);
|
||||
}
|
||||
else {
|
||||
throw std::runtime_error("Unknown frontend: " + frontend);
|
||||
}
|
||||
_memberChangeWriter->publishMemberChange(oldMember, newMember, frontend);
|
||||
}
|
||||
|
||||
} // namespace ZeroTier
|
||||
Loading…
Add table
Add a link
Reference in a new issue