所有缓存的刷新入口
()
| 236 | |
| 237 | // 所有缓存的刷新入口 |
| 238 | func (c *Cache) Refresh() { |
| 239 | defer c.ResetRefreshSignal(RefreshSignalCallerSelfHeal) |
| 240 | c.triggerTagrecorderHealers() |
| 241 | |
| 242 | if !c.needSelfHealing() { |
| 243 | log.Info("self-healing is disabled", c.metadata.LogPrefixes) |
| 244 | return |
| 245 | } |
| 246 | |
| 247 | log.Infof("cache self-healing started, sequence now: %d", c.Sequence, c.metadata.LogPrefixes) |
| 248 | oldDiffBaseDataSet := c.DiffBaseDataSet |
| 249 | oldToolDataSet := c.ToolDataSet |
| 250 | |
| 251 | c.DiffBaseDataSet = diffbase.NewDataSet(c.metadata) |
| 252 | c.ToolDataSet = tool.NewDataSet(c.metadata) |
| 253 | c.SetLogLevel(logging.DEBUG, RefreshSignalCallerSelfHeal) |
| 254 | c.refreshFailed = false |
| 255 | |
| 256 | // 分类刷新资源的相关缓存 |
| 257 | |
| 258 | // TODO refactor |
| 259 | // sub domain需要使用vpc、vm的映射数据 |
| 260 | c.refreshRegions() |
| 261 | c.refreshAZs() |
| 262 | c.refreshVPCs() |
| 263 | c.refreshHosts() |
| 264 | c.randomSleep() |
| 265 | c.refreshVMs() |
| 266 | c.randomSleep() |
| 267 | |
| 268 | // 仅domain缓存需要刷新的资源 |
| 269 | if c.metadata.GetSubDomainLcuuid() == "" { |
| 270 | c.refreshSubDomains() |
| 271 | vrouterIDs := c.refreshVRouters() |
| 272 | c.refreshRoutingTables(vrouterIDs) |
| 273 | c.refreshDHCPPorts() |
| 274 | c.refreshFloatingIPs() |
| 275 | c.refreshNATGateways() |
| 276 | c.refreshNATRules() |
| 277 | c.refreshNATVMConnections() |
| 278 | c.refreshLBs() |
| 279 | c.refreshLBListeners() |
| 280 | c.refreshLBTargetServers() |
| 281 | c.refreshLBVMConnections() |
| 282 | c.refreshPeeConnections() |
| 283 | c.refreshCENs() |
| 284 | c.refreshRDSInstances() |
| 285 | c.refreshRedisInstances() |
| 286 | c.refreshVIP() |
| 287 | } |
| 288 | |
| 289 | c.refreshPodClusters() |
| 290 | c.refreshPodNodes() |
| 291 | c.refreshVMPodNodeConnections() |
| 292 | c.refreshPodNamespaces() |
| 293 | podIngressIDs := c.refreshPodIngresses() |
| 294 | c.refreshPodIngressRules(podIngressIDs) |
| 295 | c.refreshPodIngresseRuleBackends(podIngressIDs) |
no test coverage detected