mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-15 10:25:40 +00:00
feat(web): full-power RPC access + typed JSON proxy endpoint (#1983)
- extend web controller bindings to cover full RPC service set - update rpc_service API wiring and session/controller integration - generate trait-level json_call_method in rpc codegen - route restful proxy-rpc requests via scoped typed clients - add json-call regression tests and required Sync bound fixes~
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::{
|
||||
instance_manager::NetworkInstanceManager,
|
||||
rpc_service::instance_manage::InstanceManageRpcService, web_client::WebClientHooks,
|
||||
instance_manager::NetworkInstanceManager, proto::rpc_impl::service_registry::ServiceRegistry,
|
||||
rpc_service::api::register_api_rpc_service, web_client::WebClientHooks,
|
||||
};
|
||||
|
||||
pub struct Controller {
|
||||
@@ -39,8 +39,8 @@ impl Controller {
|
||||
self.hostname.clone()
|
||||
}
|
||||
|
||||
pub fn get_rpc_service(&self) -> InstanceManageRpcService {
|
||||
InstanceManageRpcService::new(self.manager.clone(), self.hooks.clone())
|
||||
pub fn register_api_rpc_service(&self, registry: &ServiceRegistry) {
|
||||
register_api_rpc_service(&self.manager, registry, Some(self.hooks.clone()));
|
||||
}
|
||||
|
||||
pub(super) fn notify_manager_stopping(&self) {
|
||||
|
||||
@@ -9,7 +9,6 @@ use tokio::{
|
||||
use crate::{
|
||||
common::{constants::EASYTIER_VERSION, get_machine_id},
|
||||
proto::{
|
||||
api::manage::WebClientServiceServer,
|
||||
rpc_impl::bidirect::BidirectRpcManager,
|
||||
rpc_types::controller::BaseController,
|
||||
web::{
|
||||
@@ -43,10 +42,7 @@ impl Session {
|
||||
let rpc_mgr = BidirectRpcManager::new();
|
||||
rpc_mgr.run_with_tunnel(tunnel);
|
||||
|
||||
rpc_mgr.rpc_server().registry().register(
|
||||
WebClientServiceServer::new(controller.get_rpc_service()),
|
||||
"",
|
||||
);
|
||||
controller.register_api_rpc_service(rpc_mgr.rpc_server().registry());
|
||||
|
||||
let (tx, _rx1) = broadcast::channel(2);
|
||||
let heartbeat_ctx = HeartbeatCtx {
|
||||
|
||||
Reference in New Issue
Block a user