MCPcopy
hub / github.com/google/seesaw / updateVservers

Method updateVservers

engine/core.go:488–520  ·  view source on GitHub ↗

updateVservers processes a list of vserver configurations then stops deleted vservers, spawns new vservers and updates the existing vservers.

()

Source from the content-addressed store, hash-verified

486// updateVservers processes a list of vserver configurations then stops
487// deleted vservers, spawns new vservers and updates the existing vservers.
488func (e *Engine) updateVservers() {
489 e.clusterLock.RLock()
490 cluster := e.cluster
491 e.clusterLock.RUnlock()
492
493 // Delete vservers that no longer exist in the new configuration.
494 for name, vserver := range e.vservers {
495 if cluster.Vservers[name] == nil {
496 log.Infof("Stopping unconfigured vserver %s", name)
497 vserver.stop()
498 <-vserver.stopped
499 delete(e.vservers, name)
500 e.vserverLock.Lock()
501 delete(e.vserverSnapshots, name)
502 e.vserverLock.Unlock()
503 }
504 }
505
506 // Spawn new vservers and provide current configurations.
507 for _, config := range cluster.Vservers {
508 if e.vservers[config.Name] == nil {
509 vserver := newVserver(e)
510 go vserver.run()
511 e.vservers[config.Name] = vserver
512 }
513 }
514 for _, override := range e.overrides {
515 e.distributeOverride(override)
516 }
517 for _, config := range cluster.Vservers {
518 e.vservers[config.Name].updateConfig(config)
519 }
520}
521
522// updateARPMap goes through the new config and updates the internal ARP map so that
523// the gratutious arp loop adopts to new changes.

Callers 1

managerMethod · 0.95

Implementers 3

EngineClientha/engine_client.go
DummyEngineha/engine_client.go
SeesawEngineengine/ipc.go

Calls 5

distributeOverrideMethod · 0.95
newVserverFunction · 0.85
updateConfigMethod · 0.80
stopMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected