重载配置调用
(config *nodeconfigs.NodeConfig, reloadAll bool)
| 878 | |
| 879 | // 重载配置调用 |
| 880 | func (this *Node) onReload(config *nodeconfigs.NodeConfig, reloadAll bool) { |
| 881 | nodeconfigs.ResetNodeConfig(config) |
| 882 | sharedNodeConfig = config |
| 883 | |
| 884 | // 并发读写数 |
| 885 | fsutils.ReaderLimiter.SetThreads(config.MaxConcurrentReads) |
| 886 | fsutils.WriterLimiter.SetThreads(config.MaxConcurrentWrites) |
| 887 | |
| 888 | if reloadAll { |
| 889 | // 缓存策略 |
| 890 | var subDirs = config.CacheDiskSubDirs |
| 891 | for _, subDir := range subDirs { |
| 892 | subDir.Path = filepath.Clean(subDir.Path) |
| 893 | } |
| 894 | if len(subDirs) > 0 { |
| 895 | sort.Slice(subDirs, func(i, j int) bool { |
| 896 | return subDirs[i].Path < subDirs[j].Path |
| 897 | }) |
| 898 | } |
| 899 | |
| 900 | var cachePoliciesChanged = !jsonutils.Equal(caches.SharedManager.MaxDiskCapacity, config.MaxCacheDiskCapacity) || |
| 901 | !jsonutils.Equal(caches.SharedManager.MaxMemoryCapacity, config.MaxCacheMemoryCapacity) || |
| 902 | !jsonutils.Equal(caches.SharedManager.MainDiskDir, config.CacheDiskDir) || |
| 903 | !jsonutils.Equal(caches.SharedManager.SubDiskDirs, subDirs) || |
| 904 | !jsonutils.Equal(this.oldHTTPCachePolicies, config.HTTPCachePolicies) |
| 905 | |
| 906 | caches.SharedManager.MaxDiskCapacity = config.MaxCacheDiskCapacity |
| 907 | caches.SharedManager.MaxMemoryCapacity = config.MaxCacheMemoryCapacity |
| 908 | caches.SharedManager.MainDiskDir = config.CacheDiskDir |
| 909 | caches.SharedManager.SubDiskDirs = subDirs |
| 910 | |
| 911 | if cachePoliciesChanged { |
| 912 | // copy |
| 913 | this.oldHTTPCachePolicies = []*serverconfigs.HTTPCachePolicy{} |
| 914 | err := jsonutils.Copy(&this.oldHTTPCachePolicies, config.HTTPCachePolicies) |
| 915 | if err != nil { |
| 916 | remotelogs.Error("NODE", "onReload: copy HTTPCachePolicies failed: "+err.Error()) |
| 917 | } |
| 918 | |
| 919 | // update |
| 920 | if len(config.HTTPCachePolicies) > 0 { |
| 921 | caches.SharedManager.UpdatePolicies(config.HTTPCachePolicies) |
| 922 | } else { |
| 923 | caches.SharedManager.UpdatePolicies([]*serverconfigs.HTTPCachePolicy{}) |
| 924 | } |
| 925 | } |
| 926 | } |
| 927 | |
| 928 | // WAF策略 |
| 929 | // 包含了服务里的WAF策略,所以需要整体更新 |
| 930 | var allFirewallPolicies = config.FindAllFirewallPolicies() |
| 931 | if !jsonutils.Equal(allFirewallPolicies, this.oldHTTPFirewallPolicies) { |
| 932 | // copy |
| 933 | this.oldHTTPFirewallPolicies = []*firewallconfigs.HTTPFirewallPolicy{} |
| 934 | err := jsonutils.Copy(&this.oldHTTPFirewallPolicies, allFirewallPolicies) |
| 935 | if err != nil { |
| 936 | remotelogs.Error("NODE", "onReload: copy HTTPFirewallPolicies failed: "+err.Error()) |
| 937 | } |
no test coverage detected