mirror of https://github.com/k3s-io/k3s
pkg/proxy/config: clean up file.Run()
parent
93d45c1e71
commit
78cad3fd5e
|
@ -77,35 +77,38 @@ func (impl ConfigSourceFile) Run() {
|
||||||
data, err := ioutil.ReadFile(impl.filename)
|
data, err := ioutil.ReadFile(impl.filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("Couldn't read file: %s : %v", impl.filename, err)
|
glog.Errorf("Couldn't read file: %s : %v", impl.filename, err)
|
||||||
} else {
|
continue
|
||||||
var config ConfigFile
|
|
||||||
err = json.Unmarshal(data, &config)
|
|
||||||
if err != nil {
|
|
||||||
glog.Errorf("Couldn't unmarshal configuration from file : %s %v", data, err)
|
|
||||||
} else {
|
|
||||||
if !bytes.Equal(lastData, data) {
|
|
||||||
lastData = data
|
|
||||||
// Ok, we have a valid configuration, send to channel for
|
|
||||||
// rejiggering.
|
|
||||||
newServices := make([]api.Service, len(config.Services))
|
|
||||||
newEndpoints := make([]api.Endpoints, len(config.Services))
|
|
||||||
for i, service := range config.Services {
|
|
||||||
newServices[i] = api.Service{JSONBase: api.JSONBase{ID: service.Name}, Port: service.Port}
|
|
||||||
newEndpoints[i] = api.Endpoints{Name: service.Name, Endpoints: service.Endpoints}
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(lastServices, newServices) {
|
|
||||||
serviceUpdate := ServiceUpdate{Op: SET, Services: newServices}
|
|
||||||
impl.serviceChannel <- serviceUpdate
|
|
||||||
lastServices = newServices
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(lastEndpoints, newEndpoints) {
|
|
||||||
endpointsUpdate := EndpointsUpdate{Op: SET, Endpoints: newEndpoints}
|
|
||||||
impl.endpointsChannel <- endpointsUpdate
|
|
||||||
lastEndpoints = newEndpoints
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if bytes.Equal(lastData, data) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
lastData = data
|
||||||
|
|
||||||
|
config := new(ConfigFile)
|
||||||
|
if err = json.Unmarshal(data, config); err != nil {
|
||||||
|
glog.Errorf("Couldn't unmarshal configuration from file : %s %v", data, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Ok, we have a valid configuration, send to channel for
|
||||||
|
// rejiggering.
|
||||||
|
newServices := make([]api.Service, len(config.Services))
|
||||||
|
newEndpoints := make([]api.Endpoints, len(config.Services))
|
||||||
|
for i, service := range config.Services {
|
||||||
|
newServices[i] = api.Service{JSONBase: api.JSONBase{ID: service.Name}, Port: service.Port}
|
||||||
|
newEndpoints[i] = api.Endpoints{Name: service.Name, Endpoints: service.Endpoints}
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(lastServices, newServices) {
|
||||||
|
serviceUpdate := ServiceUpdate{Op: SET, Services: newServices}
|
||||||
|
impl.serviceChannel <- serviceUpdate
|
||||||
|
lastServices = newServices
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(lastEndpoints, newEndpoints) {
|
||||||
|
endpointsUpdate := EndpointsUpdate{Op: SET, Endpoints: newEndpoints}
|
||||||
|
impl.endpointsChannel <- endpointsUpdate
|
||||||
|
lastEndpoints = newEndpoints
|
||||||
|
}
|
||||||
|
|
||||||
time.Sleep(5 * time.Second)
|
time.Sleep(5 * time.Second)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue