From ea5c91b0e93f9196daed6c64c9b17e809babae97 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Thu, 2 Apr 2026 10:04:23 -0700 Subject: [PATCH] Remove smee from CentralDB. Now handled in CV1 on new member join via pubsub integration when a new member comes through --- nonfree/controller/CentralDB.cpp | 74 -------------------------------- nonfree/controller/CentralDB.hpp | 47 ++++++-------------- 2 files changed, 14 insertions(+), 107 deletions(-) diff --git a/nonfree/controller/CentralDB.cpp b/nonfree/controller/CentralDB.cpp index 6e65a90f2..82b315b2f 100644 --- a/nonfree/controller/CentralDB.cpp +++ b/nonfree/controller/CentralDB.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #include // #define REDIS_TRACE 1 @@ -74,15 +73,12 @@ CentralDB::CentralDB(const Identity& myId, , _redis(NULL) , _cluster(NULL) , _redisMemberStatus(false) - , _smee(NULL) { auto provider = opentelemetry::trace::Provider::GetTracerProvider(); auto tracer = provider->GetTracer("CentralDB"); auto span = tracer->StartSpan("CentralDB::CentralDB"); auto scope = tracer->WithActiveSpan(span); - rustybits::init_async_runtime(); - char myAddress[64]; _myAddressStr = myId.address().toString(myAddress); _connString = std::string(connString); @@ -238,19 +234,10 @@ CentralDB::CentralDB(const Identity& myId, _commitThread[i] = std::thread(&CentralDB::commitThread, this); } _onlineNotificationThread = std::thread(&CentralDB::onlineNotificationThread, this); - - configureSmee(); } CentralDB::~CentralDB() { - if (_smee != NULL) { - rustybits::smee_client_delete(_smee); - _smee = NULL; - } - - rustybits::shutdown_async_runtime(); - _run = 0; std::this_thread::sleep_for(std::chrono::milliseconds(100)); @@ -262,39 +249,6 @@ CentralDB::~CentralDB() _onlineNotificationThread.join(); } -void CentralDB::configureSmee() -{ - auto provider = opentelemetry::trace::Provider::GetTracerProvider(); - auto tracer = provider->GetTracer("CentralDB"); - auto span = tracer->StartSpan("CentralDB::configureSmee"); - auto scope = tracer->WithActiveSpan(span); - - const char* TEMPORAL_SCHEME = "ZT_TEMPORAL_SCHEME"; - const char* TEMPORAL_HOST = "ZT_TEMPORAL_HOST"; - const char* TEMPORAL_PORT = "ZT_TEMPORAL_PORT"; - const char* TEMPORAL_NAMESPACE = "ZT_TEMPORAL_NAMESPACE"; - const char* SMEE_TASK_QUEUE = "ZT_SMEE_TASK_QUEUE"; - - const char* scheme = getenv(TEMPORAL_SCHEME); - if (scheme == NULL) { - scheme = "http"; - } - const char* host = getenv(TEMPORAL_HOST); - const char* port = getenv(TEMPORAL_PORT); - const char* ns = getenv(TEMPORAL_NAMESPACE); - const char* task_queue = getenv(SMEE_TASK_QUEUE); - - if (scheme != NULL && host != NULL && port != NULL && ns != NULL && task_queue != NULL) { - fprintf(stderr, "creating smee client\n"); - std::string hostPort = - std::string(scheme) + std::string("://") + std::string(host) + std::string(":") + std::string(port); - this->_smee = rustybits::smee_client_new(hostPort.c_str(), ns, task_queue); - } - else { - fprintf(stderr, "Smee client not configured\n"); - } -} - bool CentralDB::waitForReady() { while (_ready < 2) { @@ -1337,24 +1291,6 @@ void CentralDB::commitThread() } } - if (_smee != NULL && isNewMember) { - // TODO: Smee Notifications for New Members - // pqxx::row row = w.exec_params1( - // "SELECT " - // " count(h.hook_id) " - // "FROM " - // " ztc_hook h " - // " INNER JOIN ztc_org o ON o.org_id = h.org_id " - // " INNER JOIN ztc_network n ON n.owner_id = o.owner_id " - // " WHERE " - // "n.id = $1 ", - // networkId); - // int64_t hookCount = row[0].as(); - // if (hookCount > 0) { - // notifyNewMember(networkId, memberId); - // } - } - const uint64_t nwidInt = OSUtils::jsonIntHex(config["nwid"], 0ULL); const uint64_t memberidInt = OSUtils::jsonIntHex(config["id"], 0ULL); if (nwidInt && memberidInt) { @@ -1586,16 +1522,6 @@ void CentralDB::commitThread() fprintf(stderr, "%s commitThread finished\n", _myAddressStr.c_str()); } -void CentralDB::notifyNewMember(const std::string& networkID, const std::string& memberID) -{ - auto provider = opentelemetry::trace::Provider::GetTracerProvider(); - auto tracer = provider->GetTracer("CentralDB"); - auto span = tracer->StartSpan("CentralDB::notifyNewMember"); - auto scope = tracer->WithActiveSpan(span); - - rustybits::smee_client_notify_network_joined(_smee, networkID.c_str(), memberID.c_str()); -} - void CentralDB::onlineNotificationThread() { waitForReady(); diff --git a/nonfree/controller/CentralDB.hpp b/nonfree/controller/CentralDB.hpp index 94210114a..51b8fadae 100644 --- a/nonfree/controller/CentralDB.hpp +++ b/nonfree/controller/CentralDB.hpp @@ -16,10 +16,6 @@ #include #include -namespace rustybits { -struct SmeeClient; -} - namespace ZeroTier { struct RedisConfig; struct ControllerConfig; @@ -40,13 +36,12 @@ class CentralDB : public DB { STATUS_WRITER_MODE_BIGTABLE = 2, }; - CentralDB( - const Identity& myId, - const char* connString, - int listenPort, - CentralDB::ListenerMode mode, - CentralDB::StatusWriterMode statusMode, - const ControllerConfig* cc); + CentralDB(const Identity& myId, + const char* connString, + int listenPort, + CentralDB::ListenerMode mode, + CentralDB::StatusWriterMode statusMode, + const ControllerConfig* cc); virtual ~CentralDB(); virtual bool waitForReady(); @@ -55,34 +50,25 @@ class CentralDB : public DB { virtual void eraseNetwork(const uint64_t networkId); virtual void eraseMember(const uint64_t networkId, const uint64_t memberId); virtual void nodeIsOnline(const uint64_t networkId, const uint64_t memberId, const InetAddress& physicalAddress); - virtual void nodeIsOnline( - const uint64_t networkId, - const uint64_t memberId, - const InetAddress& physicalAddress, - const char* osArch); + virtual void nodeIsOnline(const uint64_t networkId, + const uint64_t memberId, + const InetAddress& physicalAddress, + const char* osArch); virtual AuthInfo getSSOAuthInfo(const nlohmann::json& member, const std::string& redirectURL); virtual bool ready() - { - return _ready == 2; - } + { return _ready == 2; } virtual void _memberChanged(nlohmann::json& old, nlohmann::json& memberConfig, bool notifyListeners) - { - DB::_memberChanged(old, memberConfig, notifyListeners); - } + { DB::_memberChanged(old, memberConfig, notifyListeners); } virtual void _networkChanged(nlohmann::json& old, nlohmann::json& networkConfig, bool notifyListeners) - { - DB::_networkChanged(old, networkConfig, notifyListeners); - } + { DB::_networkChanged(old, networkConfig, notifyListeners); } protected: struct _PairHasher { inline std::size_t operator()(const std::pair& p) const - { - return (std::size_t)(p.first ^ p.second); - } + { return (std::size_t)(p.first ^ p.second); } }; private: @@ -93,9 +79,6 @@ class CentralDB : public DB { void commitThread(); void onlineNotificationThread(); - void configureSmee(); - void notifyNewMember(const std::string& networkID, const std::string& memberID); - nlohmann::json _getNetworkMember(pqxx::work& tx, const std::string networkID, const std::string memberID); nlohmann::json _getNetwork(pqxx::work& tx, const std::string networkID); @@ -152,8 +135,6 @@ class CentralDB : public DB { std::shared_ptr _redis; std::shared_ptr _cluster; bool _redisMemberStatus; - - rustybits::SmeeClient* _smee; }; } // namespace ZeroTier