mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-02 22:10:26 +08:00
584 lines
20 KiB
Go
584 lines
20 KiB
Go
// Copyright 2021 GoEdge CDN goedge.cdn@gmail.com. All rights reserved.
|
|
|
|
package nodes
|
|
|
|
import (
|
|
"reflect"
|
|
"strings"
|
|
|
|
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services/clients"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services/users"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
// 注册服务
|
|
func (this *APINode) registerServices(server *grpc.Server) {
|
|
{
|
|
var instance = this.serviceInstance(&services.PingService{}).(*services.PingService)
|
|
pb.RegisterPingServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.APITokenService{}).(*services.APITokenService)
|
|
pb.RegisterAPITokenServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.AdminService{}).(*services.AdminService)
|
|
pb.RegisterAdminServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeGrantService{}).(*services.NodeGrantService)
|
|
pb.RegisterNodeGrantServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerService{}).(*services.ServerService)
|
|
pb.RegisterServerServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeService{}).(*services.NodeService)
|
|
pb.RegisterNodeServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeClusterService{}).(*services.NodeClusterService)
|
|
pb.RegisterNodeClusterServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeIPAddressService{}).(*services.NodeIPAddressService)
|
|
pb.RegisterNodeIPAddressServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeIPAddressLogService{}).(*services.NodeIPAddressLogService)
|
|
pb.RegisterNodeIPAddressLogServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeIPAddressThresholdService{}).(*services.NodeIPAddressThresholdService)
|
|
pb.RegisterNodeIPAddressThresholdServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.APINodeService{}).(*services.APINodeService)
|
|
pb.RegisterAPINodeServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.APIMethodStatService{}).(*services.APIMethodStatService)
|
|
pb.RegisterAPIMethodStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.OriginService{}).(*services.OriginService)
|
|
pb.RegisterOriginServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPWebService{}).(*services.HTTPWebService)
|
|
pb.RegisterHTTPWebServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ReverseProxyService{}).(*services.ReverseProxyService)
|
|
pb.RegisterReverseProxyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPGzipService{}).(*services.HTTPGzipService)
|
|
pb.RegisterHTTPGzipServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPHeaderPolicyService{}).(*services.HTTPHeaderPolicyService)
|
|
pb.RegisterHTTPHeaderPolicyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPHeaderService{}).(*services.HTTPHeaderService)
|
|
pb.RegisterHTTPHeaderServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPPageService{}).(*services.HTTPPageService)
|
|
pb.RegisterHTTPPageServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPCachePolicyService{}).(*services.HTTPCachePolicyService)
|
|
pb.RegisterHTTPCachePolicyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPFirewallPolicyService{}).(*services.HTTPFirewallPolicyService)
|
|
pb.RegisterHTTPFirewallPolicyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.FirewallService{}).(*services.FirewallService)
|
|
pb.RegisterFirewallServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPLocationService{}).(*services.HTTPLocationService)
|
|
pb.RegisterHTTPLocationServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPWebsocketService{}).(*services.HTTPWebsocketService)
|
|
pb.RegisterHTTPWebsocketServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPRewriteRuleService{}).(*services.HTTPRewriteRuleService)
|
|
pb.RegisterHTTPRewriteRuleServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.SSLCertService{}).(*services.SSLCertService)
|
|
pb.RegisterSSLCertServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.SSLPolicyService{}).(*services.SSLPolicyService)
|
|
pb.RegisterSSLPolicyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.SysSettingService{}).(*services.SysSettingService)
|
|
pb.RegisterSysSettingServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPFirewallRuleGroupService{}).(*services.HTTPFirewallRuleGroupService)
|
|
pb.RegisterHTTPFirewallRuleGroupServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPFirewallRuleSetService{}).(*services.HTTPFirewallRuleSetService)
|
|
pb.RegisterHTTPFirewallRuleSetServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DBNodeService{}).(*services.DBNodeService)
|
|
pb.RegisterDBNodeServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeLogService{}).(*services.NodeLogService)
|
|
pb.RegisterNodeLogServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeLoginService{}).(*services.NodeLoginService)
|
|
pb.RegisterNodeLoginServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPAccessLogService{}).(*services.HTTPAccessLogService)
|
|
pb.RegisterHTTPAccessLogServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.MessageService{}).(*services.MessageService)
|
|
pb.RegisterMessageServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeGroupService{}).(*services.NodeGroupService)
|
|
pb.RegisterNodeGroupServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeRegionService{}).(*services.NodeRegionService)
|
|
pb.RegisterNodeRegionServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerGroupService{}).(*services.ServerGroupService)
|
|
pb.RegisterServerGroupServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.IPLibraryService{}).(*services.IPLibraryService)
|
|
pb.RegisterIPLibraryServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.IPLibraryFileService{}).(*services.IPLibraryFileService)
|
|
pb.RegisterIPLibraryFileServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.IPLibraryArtifactService{}).(*services.IPLibraryArtifactService)
|
|
pb.RegisterIPLibraryArtifactServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.FileChunkService{}).(*services.FileChunkService)
|
|
pb.RegisterFileChunkServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.FileService{}).(*services.FileService)
|
|
pb.RegisterFileServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.RegionCountryService{}).(*services.RegionCountryService)
|
|
pb.RegisterRegionCountryServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.RegionProvinceService{}).(*services.RegionProvinceService)
|
|
pb.RegisterRegionProvinceServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.RegionCityService{}).(*services.RegionCityService)
|
|
pb.RegisterRegionCityServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.RegionTownService{}).(*services.RegionTownService)
|
|
pb.RegisterRegionTownServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.RegionProviderService{}).(*services.RegionProviderService)
|
|
pb.RegisterRegionProviderServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.IPListService{}).(*services.IPListService)
|
|
pb.RegisterIPListServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.IPItemService{}).(*services.IPItemService)
|
|
pb.RegisterIPItemServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.LogService{}).(*services.LogService)
|
|
pb.RegisterLogServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DNSProviderService{}).(*services.DNSProviderService)
|
|
pb.RegisterDNSProviderServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DNSDomainService{}).(*services.DNSDomainService)
|
|
pb.RegisterDNSDomainServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DNSService{}).(*services.DNSService)
|
|
pb.RegisterDNSServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ACMEUserService{}).(*services.ACMEUserService)
|
|
pb.RegisterACMEUserServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ACMETaskService{}).(*services.ACMETaskService)
|
|
pb.RegisterACMETaskServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ACMEAuthenticationService{}).(*services.ACMEAuthenticationService)
|
|
pb.RegisterACMEAuthenticationServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ACMEProviderService{}).(*services.ACMEProviderService)
|
|
pb.RegisterACMEProviderServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ACMEProviderAccountService{}).(*services.ACMEProviderAccountService)
|
|
pb.RegisterACMEProviderAccountServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&users.UserService{}).(*users.UserService)
|
|
pb.RegisterUserServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.UserIdentityService{}).(*services.UserIdentityService)
|
|
pb.RegisterUserIdentityServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerDailyStatService{}).(*services.ServerDailyStatService)
|
|
pb.RegisterServerDailyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.LoginService{}).(*services.LoginService)
|
|
pb.RegisterLoginServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.LoginSessionService{}).(*services.LoginSessionService)
|
|
pb.RegisterLoginSessionServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.LoginTicketService{}).(*services.LoginTicketService)
|
|
pb.RegisterLoginTicketServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.UserAccessKeyService{}).(*services.UserAccessKeyService)
|
|
pb.RegisterUserAccessKeyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.SysLockerService{}).(*services.SysLockerService)
|
|
pb.RegisterSysLockerServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeTaskService{}).(*services.NodeTaskService)
|
|
pb.RegisterNodeTaskServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeValueService{}).(*services.NodeValueService)
|
|
pb.RegisterNodeValueServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DBService{}).(*services.DBService)
|
|
pb.RegisterDBServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerRegionCityMonthlyStatService{}).(*services.ServerRegionCityMonthlyStatService)
|
|
pb.RegisterServerRegionCityMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerRegionCountryMonthlyStatService{}).(*services.ServerRegionCountryMonthlyStatService)
|
|
pb.RegisterServerRegionCountryMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerRegionProvinceMonthlyStatService{}).(*services.ServerRegionProvinceMonthlyStatService)
|
|
pb.RegisterServerRegionProvinceMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerRegionProviderMonthlyStatService{}).(*services.ServerRegionProviderMonthlyStatService)
|
|
pb.RegisterServerRegionProviderMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&clients.FormalClientSystemService{}).(*clients.FormalClientSystemService)
|
|
pb.RegisterFormalClientSystemServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&clients.FormalClientBrowserService{}).(*clients.FormalClientBrowserService)
|
|
pb.RegisterFormalClientBrowserServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&clients.ClientAgentIPService{}).(*clients.ClientAgentIPService)
|
|
pb.RegisterClientAgentIPServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&clients.ClientAgentService{}).(*clients.ClientAgentService)
|
|
pb.RegisterClientAgentServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerClientSystemMonthlyStatService{}).(*services.ServerClientSystemMonthlyStatService)
|
|
pb.RegisterServerClientSystemMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerClientBrowserMonthlyStatService{}).(*services.ServerClientBrowserMonthlyStatService)
|
|
pb.RegisterServerClientBrowserMonthlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerHTTPFirewallDailyStatService{}).(*services.ServerHTTPFirewallDailyStatService)
|
|
pb.RegisterServerHTTPFirewallDailyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.DNSTaskService{}).(*services.DNSTaskService)
|
|
pb.RegisterDNSTaskServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeClusterFirewallActionService{}).(*services.NodeClusterFirewallActionService)
|
|
pb.RegisterNodeClusterFirewallActionServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.AuthorityNodeService{}).(*services.AuthorityNodeService)
|
|
pb.RegisterAuthorityNodeServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.LatestItemService{}).(*services.LatestItemService)
|
|
pb.RegisterLatestItemServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeThresholdService{}).(*services.NodeThresholdService)
|
|
pb.RegisterNodeThresholdServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPFastcgiService{}).(*services.HTTPFastcgiService)
|
|
pb.RegisterHTTPFastcgiServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPAuthPolicyService{}).(*services.HTTPAuthPolicyService)
|
|
pb.RegisterHTTPAuthPolicyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.MetricItemService{}).(*services.MetricItemService)
|
|
pb.RegisterMetricItemServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.NodeClusterMetricItemService{}).(*services.NodeClusterMetricItemService)
|
|
pb.RegisterNodeClusterMetricItemServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.MetricStatService{}).(*services.MetricStatService)
|
|
pb.RegisterMetricStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
{
|
|
var instance = this.serviceInstance(&services.MetricChartService{}).(*services.MetricChartService)
|
|
pb.RegisterMetricChartServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerStatBoardService{}).(*services.ServerStatBoardService)
|
|
pb.RegisterServerStatBoardServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerStatBoardChartService{}).(*services.ServerStatBoardChartService)
|
|
pb.RegisterServerStatBoardChartServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.PlanService{}).(*services.PlanService)
|
|
pb.RegisterPlanServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.UserPlanService{}).(*services.UserPlanService)
|
|
pb.RegisterUserPlanServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerDomainHourlyStatService{}).(*services.ServerDomainHourlyStatService)
|
|
pb.RegisterServerDomainHourlyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.TrafficDailyStatService{}).(*services.TrafficDailyStatService)
|
|
pb.RegisterTrafficDailyStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPCacheTaskKeyService{}).(*services.HTTPCacheTaskKeyService)
|
|
pb.RegisterHTTPCacheTaskKeyServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.HTTPCacheTaskService{}).(*services.HTTPCacheTaskService)
|
|
pb.RegisterHTTPCacheTaskServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.ServerBandwidthStatService{}).(*services.ServerBandwidthStatService)
|
|
pb.RegisterServerBandwidthStatServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
{
|
|
var instance = this.serviceInstance(&services.UpdatingServerListService{}).(*services.UpdatingServerListService)
|
|
pb.RegisterUpdatingServerListServiceServer(server, instance)
|
|
this.rest(instance)
|
|
}
|
|
|
|
APINodeServicesRegister(this, server)
|
|
|
|
// TODO check service names
|
|
for serviceName := range server.GetServiceInfo() {
|
|
var index = strings.LastIndex(serviceName, ".")
|
|
if index >= 0 {
|
|
serviceName = serviceName[index+1:]
|
|
}
|
|
_, ok := restServicesMap[serviceName]
|
|
if !ok {
|
|
panic("can not find service '" + serviceName + "' in rest")
|
|
}
|
|
}
|
|
}
|
|
|
|
func (this *APINode) rest(instance interface{}) {
|
|
this.serviceInstanceLocker.Lock()
|
|
defer this.serviceInstanceLocker.Unlock()
|
|
|
|
var name = reflect.TypeOf(instance).String()
|
|
var index = strings.LastIndex(name, ".")
|
|
if index >= 0 {
|
|
name = name[index+1:]
|
|
}
|
|
|
|
_, ok := restServicesMap[name]
|
|
if ok {
|
|
return
|
|
}
|
|
restServicesMap[name] = reflect.ValueOf(instance)
|
|
}
|
|
|
|
func (this *APINode) serviceInstance(instance interface{}) interface{} {
|
|
this.serviceInstanceLocker.Lock()
|
|
defer this.serviceInstanceLocker.Unlock()
|
|
|
|
var typeName = reflect.TypeOf(instance).String()
|
|
result, ok := this.serviceInstanceMap[typeName]
|
|
if ok {
|
|
return result
|
|
}
|
|
|
|
this.serviceInstanceMap[typeName] = instance
|
|
return instance
|
|
}
|