执行任务
(rpcClient *rpc.RPCClient, task *pb.NodeTask)
| 66 | |
| 67 | // 执行任务 |
| 68 | func (this *Node) execTask(rpcClient *rpc.RPCClient, task *pb.NodeTask) error { |
| 69 | var err error |
| 70 | switch task.Type { |
| 71 | case "ipItemChanged": |
| 72 | err = this.execIPItemChangedTask() |
| 73 | case "configChanged": |
| 74 | err = this.execConfigChangedTask(task) |
| 75 | case "nodeVersionChanged": |
| 76 | err = this.execNodeVersionChangedTask() |
| 77 | case "scriptsChanged": |
| 78 | err = this.execScriptsChangedTask() |
| 79 | case "nodeLevelChanged": |
| 80 | err = this.execNodeLevelChangedTask(rpcClient) |
| 81 | case "ddosProtectionChanged": |
| 82 | err = this.execDDoSProtectionChangedTask(rpcClient) |
| 83 | case "globalServerConfigChanged": |
| 84 | err = this.execGlobalServerConfigChangedTask(rpcClient) |
| 85 | case "userServersStateChanged": |
| 86 | err = this.execUserServersStateChangedTask(rpcClient, task) |
| 87 | case "uamPolicyChanged": |
| 88 | err = this.execUAMPolicyChangedTask(rpcClient) |
| 89 | case "httpCCPolicyChanged": |
| 90 | err = this.execHTTPCCPolicyChangedTask(rpcClient) |
| 91 | case "http3PolicyChanged": |
| 92 | err = this.execHTTP3PolicyChangedTask(rpcClient) |
| 93 | case "httpPagesPolicyChanged": |
| 94 | err = this.execHTTPPagesPolicyChangedTask(rpcClient) |
| 95 | case "updatingServers": |
| 96 | err = this.execUpdatingServersTask(rpcClient) |
| 97 | case "plusChanged": |
| 98 | err = this.notifyPlusChange() |
| 99 | case "toaChanged": |
| 100 | err = this.execTOAChangedTask() |
| 101 | case "networkSecurityPolicyChanged": |
| 102 | err = this.execNetworkSecurityPolicyChangedTask(rpcClient) |
| 103 | case "webPPolicyChanged": |
| 104 | err = this.execWebPPolicyChangedTask(rpcClient) |
| 105 | case "planChanged": |
| 106 | err = this.execPlanChangedTask(rpcClient) |
| 107 | default: |
| 108 | // 特殊任务 |
| 109 | if strings.HasPrefix(task.Type, "ipListDeleted") { // 删除IP名单 |
| 110 | err = this.execDeleteIPList(task.Type) |
| 111 | } else { // 未处理的任务 |
| 112 | remotelogs.Error("NODE", "task '"+types.String(task.Id)+"', type '"+task.Type+"' has not been handled") |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | return err |
| 117 | } |
| 118 | |
| 119 | // 更新IP条目变更 |
| 120 | func (this *Node) execIPItemChangedTask() error { |
no test coverage detected