@@ -3264,4 +3264,33 @@ TEST_F(CacheManagerTest, TestGetCacheLocationsByBackendWithBackendSelectors) {
32643264
32653265 dsm->storage_map_ .erase (" vineyard_default" );
32663266}
3267+
3268+ TEST_F (CacheManagerTest, TestReportEventUsesLegacyVineyardBackendWhenEventCandidatesMissing) {
3269+ auto metrics_registry = cache_manager_->metrics_registry_ ;
3270+ auto vineyard_backend = std::make_shared<VineyardBackend>(metrics_registry);
3271+ StorageConfig v6d_config;
3272+ v6d_config.set_global_unique_name (" v6d_test_instance" );
3273+ v6d_config.set_type (DataStorageType::DATA_STORAGE_TYPE_VINEYARD );
3274+ v6d_config.set_storage_spec (std::make_shared<VineyardStorageSpec>());
3275+ ASSERT_EQ (EC_OK , vineyard_backend->Open (v6d_config, " test_trace" ));
3276+
3277+ auto dsm = registry_manager_->data_storage_manager_ ;
3278+ dsm->storage_map_ [" v6d_test_instance" ] = vineyard_backend;
3279+ registry_manager_->instance_group_configs_ [" default" ]->set_event_reporting_storage_candidates ({});
3280+
3281+ proto::meta::ReportEventRequest req;
3282+ req.set_instance_id (" test_instance" );
3283+ req.set_host_ip_port (" 192.168.10.1:8080" );
3284+ req.set_storage_type (proto::meta::ST_VINEYARD );
3285+ auto *reg = req.add_events ();
3286+ reg->set_event_type (proto::meta::EVENT_NODE_REGISTER );
3287+ reg->mutable_node_register ()->add_mediums (" mem" );
3288+
3289+ proto::meta::ReportEventResponse resp;
3290+ ASSERT_EQ (EC_OK , cache_manager_->ReportEvent (request_context_.get (), &req, &resp));
3291+ EXPECT_TRUE (vineyard_backend->IsNodeAvailable (" test_instance" , " 192.168.10.1:8080" ));
3292+
3293+ dsm->storage_map_ .erase (" v6d_test_instance" );
3294+ }
3295+
32673296} // namespace kv_cache_manager
0 commit comments