Run starts the Engine.
()
| 137 | |
| 138 | // Run starts the Engine. |
| 139 | func (e *Engine) Run() { |
| 140 | log.Infof("Seesaw Engine starting for %s", e.config.ClusterName) |
| 141 | |
| 142 | e.initNetwork() |
| 143 | |
| 144 | n, err := config.NewNotifier(e.config) |
| 145 | if err != nil { |
| 146 | log.Fatalf("config.NewNotifier() failed: %v", err) |
| 147 | } |
| 148 | e.notifier = n |
| 149 | |
| 150 | if e.config.AnycastEnabled { |
| 151 | go e.bgpManager.run() |
| 152 | } |
| 153 | go e.hcManager.run() |
| 154 | |
| 155 | go e.syncClient.run() |
| 156 | go e.syncServer.run() |
| 157 | |
| 158 | go e.syncRPC() |
| 159 | go e.engineIPC() |
| 160 | go e.gratuitousARP() |
| 161 | |
| 162 | e.manager() |
| 163 | } |
| 164 | |
| 165 | // Shutdown attempts to perform a graceful shutdown of the engine. |
| 166 | func (e *Engine) Shutdown() { |